Назад | Перейти на главную страницу

Nagios - проверьте procs и --metric = elapsed на той же службе

После многих дней работы и поиска в сети я обращаюсь к вам как к последнему шансу на помощь. На самом деле я работаю над мониторингом процесса 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 не запущена, нет смысла проверять прошедшее время)