Definindo dinamicamente um novo intervalo de teste para verificações do Nagios

4

Os intervalos de notificação de verificação do Nagios devem ser > = para um intervalo de verificação, pois isso impede que o Nagios envie notificações de alarme falso, caso um serviço retorne a um status de UP entre as verificações. Eu entendo o raciocínio por trás disso.

Temos várias verificações que são executadas a cada 30 minutos. Isso significa que, se uma verificação falhar, somente uma notificação será enviada sempre que o serviço for verificado após as tentativas serem usadas.

O que eu preciso é ser capaz de continuar importunando o pager do administrador de tarefas a cada dois minutos depois que um cheque for HARD DOWN / CRITICAL. Eu não posso fazer isso porque a próxima notificação só vai sair no próximo cheque, ou seja, em mais 30 minutos.

Um recurso que tínhamos em nosso antigo sistema de monitoramento era definir um novo intervalo de verificação mais baixo assim que a verificação fosse HARD DOWN / CRITICAL. Isso significava que poderíamos continuar verificando novamente a cada dois minutos (e enviando alertas) até que o alerta fosse reconhecido por um ser humano ou alterado seu status para UP, após o qual o intervalo de verificação seria revertido para 30 minutos.

Existe uma maneira de facilitar isso no Nagios?

Eu tive algumas reflexões sobre como escrever um manipulador de eventos que reprogramará um cheque por dois minutos no futuro depois que um cheque for HARD DOWN / CRITICAL (enviando diretamente um comando para o Nagios).

Eu estou querendo saber se alguém mais teve que fazer algo parecido?

Estou executando o Nagios Core 3.2.3.

    
por Kev 07.09.2011 / 04:07

1 resposta

5

Você pode fazer isso usando CHANGE_NORMAL_SVC_CHECK_INTERVAL e CHANGE_NORMAL_HOST_CHECK_INTERVAL .

Adicione um manipulador de eventos para seu serviço:

define service {
    host_name              ...
    service_description    ...
    check_command          ...
    contact_groups         ...
    event_handler          change_check_interval
}

O change_check_interval foi definido em commands.cfg :

define command {
    command_name    change_check_interval
    command_line    $USER1$/eventhandlers/change_check_interval.sh $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ $HOSTADDRESS$
}

O conteúdo de change_check_interval.sh :

#!/bin/bash

now='date +%s'
commandfile='/usr/local/nagios/var/rw/nagios.cmd'

case "$1" in
    OK)
        ;;
    WARNING)
        ;;
    UNKNOWN)
        ;;
    CRITICAL)
        /bin/printf "[%lu] CHANGE_NORMAL_SVC_CHECK_INTERVAL;host1;service1;2\n" $now > $commandfile
        ;;
esac

exit 0

Certifique-se de que os comandos externos estejam ativados em nagios.cfg :

check_external_commands=1
    
por 07.09.2011 / 04:24

Tags