Como posso fazer check_nrpe esperar que meu script remoto termine de executar?

1

Eu tenho um script python que está sendo usado como um plugin para o NRPE. Esse script verifica se um processo está sendo executado em uma máquina virtual fazendo uma linha única de SSH com um "processo ps ax | grep" anexado. Ao executar o script manualmente, ele funciona como esperado e retorna uma única linha de saída para NRPE, bem como um status com base no processo estar ou não em execução.

Quando eu tento executar o comando setup para executar este script (do meu servidor Nagios), eu instantaneamente obtém a saída "NRPE: não é possível ler a saída", no entanto quando eu executo o script manualmente leva cerca de um segundo antes de retornar a saída. Outros comandos rodam muito bem, então parece que o NRPE precisa esperar um segundo ou dois pela saída, em vez de falhar instantaneamente, mas não consegui encontrar nenhuma maneira de realizar 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 nrpe plugin para ssh do host na VM para verificar o processo.

    
por Rauffle 18.11.2011 / 00:06

3 respostas

2

Você pode alterar o tempo limite seguindo as instruções aqui ou pesquisando o tempo limite na < href="http://nagios.sourceforge.net/docs/nrpe/NRPE.pdf"> nrpe documentation , embora eu não ache que este é o seu problema, ou você veria um erro como este :

CHECK_NRPE: Socket timeout after 270 seconds.

Existe também provavelmente um plugin nagios que irá retornar os dados que você quer que já tenham sido escritos.

    
por 18.11.2011 / 00:19
1

Por que não usar o plug-in check_proc ?

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>'
    
por 18.11.2011 / 03:54
0

Acho que o tempo limite padrão é de cerca de 10 segundos, então provavelmente não é isso.

Se você estiver usando o ssh para executar uma verificação, lembre-se de que o nrpe provavelmente está sendo executado como "nagios" do usuário (dependendo das opções de instalação). Esse usuário tem as teclas certas e opções ssh?

    
por 18.11.2011 / 00:39