После многих дней работы и поиска в сети я обращаюсь к вам как к последнему шансу на помощь. На самом деле я работаю над мониторингом процесса unix с помощью nagios core 4.4.3 с nrpe.
Моя цель - проверить, что: ровно 1 процесс с командой "java" работает максимум 23 часа ИСПОЛЬЗУЯ ТОЛЬКО ОДНУ СЕРВИСУ
Этот процесс перезапускается каждый день.
ниже того, что у меня на client_host (/etc/nagios/nrpe.cfg):
command[check_java]=/usr/lib64/nagios/plugins/check_procs -c 1:1 -C java
command[check_java_elapsed]=/usr/lib64/nagios/plugins/check_procs -c :82800 --metric=ELAPSED -C java
На сервере (/usr/local/nagios/etc/client_host.cfg):
define service{
use generic-service
host_name client_host
service_description java_elapsed
check_command check_nrpe!check_java
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 2
}
define service{
use generic-service
host_name client_host
service_description perl_elapsed
check_command check_nrpe!check_java_elapsed
check_period 24x7
max_check_attempts 3
normal_check_interval 1
retry_check_interval 2
}
В целом, я хочу объединить две услуги в одну.
Похоже, команда check_procs не дает заключения по обоим действиям. Я бы предложил создать сценарий оболочки или объединить эти две команды в конфигурации.
Что-то вроде этого:
command[check_java_elapsed]=/usr/lib64/nagios/plugins/check_procs -c 1:1 -C java && /usr/lib64/nagios/plugins/check_procs -c :82800 --metric=ELAPSED -C java
Я тестировал это в nrpe на Debian, и он должен работать. В основном вы получите код возврата 0, если первый и второй пройдут, иначе вы получите только первый (когда java не запущена, нет смысла проверять прошедшее время)