Eu tenho o Nagios rodando em um servidor web. Para esta verificação de serviço do Nagios em particular, se falhar, irá executar um script. Este script é acionado via manipuladores de eventos do Nagios.
Comando do manipulador de eventos Nagios:
define command{
command_name testDisableServer
command_line /usr/local/nagios/etc/objects/event_handlers/testDisableServer.sh
}
Estou executando um script chamado testDisableServer.sh de manipuladores de eventos do Nagios que se parece com isto:
#!/bin/bash
wall "Script execution started";
/usr/bin/sudo /root/scripts/disableServer.sh force
Este script 'testDisableServer.sh' tem as seguintes permissões:
-rwxr-xr-x 1 nagios nagios 2.0K Oct 12 14:57 testDisableServer.sh
Quando o serviço cair, receberei uma mensagem no meu SSH dizendo "Script execution started", mas isso não acionará o script disableServer.sh. Eu tentei colocar outro post no mural dentro de disableServer.sh e ele não o acionou.
Este script está sendo executado pelo usuário 'nagios'. 'nagios' foi adicionado em visudo, como tal:
nagios ALL=(ALL)NOPASSWD:/root/scripts/disableServer.sh
A execução deste script como o usuário 'nagios' de uma linha de comando funciona perfeitamente. No entanto, quando o manipulador de eventos dispara, não há saída. Tentei capturar a saída em um arquivo de log e não consegui nada. Estas são as permissões em /root/scripts/disableServer.sh:
-rwxr-xr-x 1 root root 2.0K Oct 12 15:01 disableServer.sh
Por que o manipulador de eventos atingiu 'testDisableServer.sh', mas não executou 'disableServer.sh' em um manipulador de eventos do Nagios, mas funciona muito bem em uma conexão SSH como o nagios do usuário? BTW, 'testDisableServer.sh' é apenas uma camada extra adicionada para ver se os manipuladores de eventos estavam funcionando, o que eles parecem ser. Isso será removido depois que a execução desse script for resolvida.