. Я пытаюсь настроить Nagios для мониторинга службы nginx на моем балансировщике нагрузки, но мне не удалось заставить его показывать, что служба запущена. Описание команды и службы приведено ниже. Кажется, что любой процесс, который не порожден root, не будет отображаться как запущенный. Процесс nginx запускается данными www -. Я даже попробовал что-то столь же простое, как проверка «верхнего» процесса, который я запускал под другим пользователем. То, что я представил ниже, отлично работает, пока я выбираю процесс, запущенный с правами root. Если процесс порожден любым другим пользователем, он отображается как критический и не работает. Есть предположения?
define command {
command_name check_nginx
command_line $USER1$/check_procs -c 1: -C nginx
}
define service {
use local-service
host_name my_host
service_description Load Balance Service
check_command check_nginx
}
Попробовав все различные параметры, включенные в плагин check_proc, и ничего не добившись, я решил пойти другим путем.Я создал следующий скрипт Python и включил его в каталог плагинов. Имя скрипта Python — check_service.py. Если вы назовете его по-другому, вам придется соответствующим образом изменить сервисы и команды ниже.
import os
status = os.system('systemctl is-active --quiet nginx')
if status == 768:
print('Critical, Service is not running')
exit(2)
elif status == 0:
print('OK, Service is Running')
exit(0)
Затем я добавил следующую команду в файл commands.cfg. $ARG1$ предназначен для будущей версии скрипта, над которым я работаю. Это не требуется.
define command{
command_name check_service
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_service $ARG1$
}
Определил службу следующим образом.
define service {
use local-service
host_name debian
service_description Load Balance Service
check_command check_service
}
Затем на клиенте я добавил эту команду в файл nrpe.cfg.
command[check_service]=python3 /usr/lib/nagios/plugins/check_service.py
Надеюсь, это поможет кому-нибудь в будущем.