Nagios check_tcp OK enquanto não deve

1

Eu tenho um problema com o Nagios, e em particular com o plugin check_tcp, usado para verificar a conexão do Citrix em um servidor Windows. O Nagios está na versão 3.3.1 e o nagios está na versão 1.4.15 (que parece ser o último).

Quando a conexão está OK, o status do serviço é OK com as informações de status dizendo: "TCP OK". Mas quando o serviço Citrix não está respondendo, o status do serviço ainda está OK com as informações de status dizendo: "Conexão recusada", que indica claramente que a conexão Citrix não está boa.

Só mais uma coisa, ao iniciar manualmente o comando de verificação, ele retorna 0, o que explica o status OK na interface da web, enquanto deve retornar 1 ou outra coisa para indicar o erro.

Alguém já teve o mesmo problema? E há algo que eu possa fazer para corrigir esse teste?

Agradecemos antecipadamente

Jeremy

    
por Jeremy C. 12.03.2012 / 11:22

2 respostas

2

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.

    
por 12.03.2012 / 11:28
1

Verifique se, no seu servidor, você adicionou -r como uma opção ao comando tcp_check.

 -r, --refuse=ok|warn|crit
    Accept TCP refusals with states ok, warn, crit (default: crit)
    
por 12.03.2012 / 11:27

Tags