Não sei se sabemos o suficiente sobre o problema para ser definitivo. Este não é um comportamento normal para o check_tcp
plugin:
[madhatta@nagios plugins]$ ./check_tcp -H localhost -p 1234
Connection refused
[madhatta@nagios plugins]$ echo $?
2
[madhatta@nagios plugins]$
Você pode nos dizer o que acontece quando você invoca o plug-in manualmente? Como o NAGIOS está invocando agora?
Editar : você terá que percorrer sua configuração NAGIOS, da entrada check_command
na definição de serviço, através do arquivo de definição de comandos, até sabermos exatamente qual comando on-disc é sendo executado e com quais sinalizadores.
Editar 2 : Eu suspeito que o problema esteja no pipeline. Não sei quem decidiu que | sed 's/,/./g'
precisava ser adicionado, nem por que, mas o status de saída de um pipeline é o status de saída do último comando existente . Compare isso com a saída acima:
[madhatta@nagios plugins]$ ./check_tcp -H localhost -p 1234 | sed 's/n/N/g'
CoNNectioN refused
[madhatta@nagios plugins]$ echo $?
0
[madhatta@nagios plugins]$
O sed
, sendo o último comando no pipeline, funciona bem, então o status de saída do pipeline é 0, significando "sim, estou bem", fazendo com que NAGIOS diga "sim, está tudo bem" .
Se você acha que precisa arrumar tudo, precisará escrever um script de shell que execute o% realcheck_tcp
, salve o status de terminação e a saída, produza a saída executada através do sed, mas termine com o armazenamento armazenado. status de rescisão. Melhor ainda, pare de se preocupar com pontos e vírgulas e comece a se preocupar se o servidor está inativo ou não.