Máquinas de monitorização Nagios com verificação ping

Implantei uma nova instância de Nagios numa nova instalação de CentOS 7 através do repositório EPEL. Então a versão principal do Nagios é 3.5.1.

Depois de instalar o nagios e o nagios-plugins-all (via yum), criei uma série de definições de hosts e serviços, testei a minha configuração com nagios -v /etc/nagios/nagios.cfg, e pus o Nagios a funcionar!

Infelizmente, as verificações do meu hospedeiro estão a falhar (embora as minhas verificações de Serviço estejam a funcionar perfeitamente bem).

dentro da interface web de Nagios / Painel de instrumentos, se eu perfurar numa página da máquina com a "informação do Estado da máquina", Vejo isto a ser reportado para " informação do Estado "(endereço IP removido):

informação sobre o estado: / usr / bin/ping - n-U-w 30-C 5 {meu-servidor-endereço ip}

crítico-não foi possível interpretar o resultado do comando ping

enter image description here

então, na minha solução de problemas, perfurei para o directório de Plugins Nagios (/usr / lib64/nagios/plugins), e fiz um teste com o 'plugin' de check_ping consistente com a forma como o check-host-alive executa o comando (veja em baixo para a minha definição do comando check-host-alive):

./check_ping -H {my-ip-address} -w 3000.0,80% -c 5000.0,100% -p 5

Este comando check_ping devolve o seguinte resultado:

PING OK - perda do pacote = 0%, RTA = 0, 63 ms|rta=0.627000 ms;3000.000000;5000.000000;0.000000 pl=0%;80;100;0

Eu não mudei a definição de como o check_ping funciona, e posso confirmar que estou a receber um "PING OK" sempre que o comando é executado da mesma forma que o "check-host-alive" comanda o comando, por isso não consigo perceber o que se passa!

abaixo estão as definições de comandos para check-host-alive, bem como check_ping.

# 'check-host-alive' command definition
define command{
        command_name    check-host-alive
        command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5
        }

{snip}

# 'check_ping' command definition
define command{
        command_name    check_ping
        command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
        }

alguma sugestão sobre como posso corrigir a minha definição de comando check-host-alive para funcionar correctamente e avaliar o resultado do check_ping correctamente?

Editar

abaixo encontra-se o modelo da máquina {} que estou a usar:

define host     {
        host_name                       myers    ; The name of this host template
        alias                           Myers
        address                         [redacted]
        check_command                   check-host-alive
        contact_groups                  admins
        notifications_enabled           0               ; Host notifications are enabled
        event_handler_enabled           1               ; Host event handler is enabled
        flap_detection_enabled          1               ; Flap detection is enabled
        failure_prediction_enabled      1               ; Failure prediction is enabled
        process_perf_data               1               ; Process performance data
        retain_status_information       1               ; Retain status information across program restarts
        retain_nonstatus_information    1               ; Retain non-status information across program restarts
        notification_period             24x7            ; Send host notifications at any time
        register                        1
        max_check_attempts              2
        }
 1
Author: David W, 2014-11-05

3 answers

Não consegui encontrar o ping no /usr/bin / ping

# chmod u+s /bin/ping 

# ls -al /bin/ping 
-rwsr-xr-x 1 root root 40760 Sep 26  2013 /bin/ping*

Finalmente execute o comando abaixo,

 /usr/local/nagios/libexec/check_ping -H 127.0.0.1 -w 100.0,20% -c 500.0,60% -p 5
 3
Author: lakshmikandan, 2015-07-08 10:36:11

Para qualquer outra pessoa que se depare com este problema, há outra opção do que mudar as permissões no ping. Basta mudar o comando de verificação da máquina para usar check_host em vez de check_ping. Embora haja certamente algumas diferenças na funcionalidade, o resultado final geral é o mesmo.

Existem aqueles que vão dizer que esta não é uma boa opção devido à capacidade de alcance do comando {[[1]}, mas deve-se lembrar que as verificações do host nem sequer são executadas até que todas as verificações de Serviço para um a máquina indicada falhou. De qualquer forma, se você está interessado em testar o rendimento, há maneiras muito melhores de fazer isso do que confiar em ICMP, que é o tipo de tráfego de menor prioridade em uma rede.

Tenho a certeza de que a operação já deve ter feito outras coisas, mas espero que outra pessoa que tenha este problema beneficie.
 3
Author: Jeffrey Tackett, 2017-01-01 21:45:15
{[[2]} eu tinha quase a certeza de que correr {[[0]} iria resolver o problema, mas eu estava (e ainda estou) cauteloso sobre os arquivos do sistema chmod'ing. Parece-me que tem de haver uma forma mais segura de o fazer. No entanto, no final, foi o que eu fiz - e funciona. Não gosto disso, do ponto de vista da segurança, mas talvez esteja a ficar com as minhas "cuecas na mão" demasiado por causa disto.
 2
Author: David W, 2015-07-08 11:05:40