Estou tentando configurar o Nagios para monitorar o serviço nginx em meu balanceador de carga, mas não consegui fazer com que ele mostrasse que o serviço estava ativo. O comando e a definição de serviço estão abaixo. Parece que qualquer processo que não seja gerado pelo root não será exibido como em execução. O processo nginx está sendo executado por www-data. Eu até tentei algo tão simples como verificar o processo "principal" que estava executando com um usuário diferente. O que apresentei abaixo funciona bem, desde que eu escolha um processo sendo executado pelo root. Se o processo for gerado por qualquer outro usuário, ele será considerado crítico e não funcionará. Alguma ideia?
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
}
Responder1
Depois de tentar todas as diferentes opções incluídas no plugin check_proc e não chegar a lugar nenhum, decidi seguir um caminho diferente. Criei o seguinte script python e o incluí no diretório de plugins. O nome do script python é check_service.py. Se você der outro nome, terá que modificar os serviços e comandos abaixo de acordo.
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)
Em seguida, adicionei o seguinte comando ao arquivo Commands.cfg. O $ARG1$ existe para uma versão futura do script em que estou trabalhando. Não é obrigatório.
define command{
command_name check_service
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_service $ARG1$
}
Definiu o serviço assim
define service {
use local-service
host_name debian
service_description Load Balance Service
check_command check_service
}
Então, no cliente, adicionei este comando ao arquivo nrpe.cfg
command[check_service]=python3 /usr/lib/nagios/plugins/check_service.py
Espero que isso ajude alguém em algum lugar no futuro.