
Eu tenho um script python que está sendo usado como plugin para NRPE. Este script verifica se um processo está sendo executado em uma máquina virtual, executando uma linha SSH com um "processo ps ax | grep" anexado. Ao executar o script manualmente, ele funciona conforme o esperado e retorna uma única linha de saída para NRPE, bem como um status com base no fato de o processo estar ou não em execução.
Quando tento executar o comando setup para executar este script (do meu servidor Nagios), euimediatamenteobtenho a saída "NRPE: Não é possível ler a saída", no entanto, quando executo o script manualmente, leva cerca de um segundo antes que ele retorne a saída. Outros comandos funcionam bem, então parece que o NRPE precisa esperar um ou dois segundos pela saída, em vez de falhar instantaneamente, mas não consegui encontrar nenhuma maneira de fazer isso; alguma dica?
PS: As máquinas virtuais não são acessíveis de qualquer lugar que não seja a máquina host, daí a necessidade do plugin nrpe fazer ssh do host para a VM para verificar o processo.
Responder1
Você pode alterar o tempo limite seguindo as instruçõesaquiou pesquisando o tempo limite nodocumentação nrpe, embora eu não ache que esse seja o seu problema, ou você veria um erro como este:
CHECK_NRPE: Socket timeout after 270 seconds.
Provavelmente também existe um plugin nagios que retornará os dados que você deseja e que já foram gravados.
Responder2
Por que não usarcheck_procplugar?
Na máquina virtual, defina um comando para seu serviço em /etc/nagios/nrpe.cfg
:
command[check_<service_name>]=/usr/lib64/nagios/plugins/check_procs -c 1:1 -C <service_name>
e do servidor Nagios:
define service{
use critical-service
host_name xx
service_description <service_name>
check_command check_nrpe!check_<service_name>
event_handler autostart_<service_name>!xx
process_perf_data 0
contact_groups admin
}
um resultado de amostra:
# su - nagios -s /bin/bash
-bash-3.2$ /usr/local/nagios/libexec/check_nrpe -H xx -c check_<service_name>
PROCS OK: 1 process with command name '<service_name>'
Responder3
Acho que o tempo limite padrão é de cerca de 10 segundos, então provavelmente não é isso.
Se você estiver usando ssh para executar uma verificação, lembre-se que o nrpe provavelmente está rodando como usuário "nagios" (dependendo das opções de instalação). Esse usuário tem as chaves e opções ssh corretas?