Como enviar uma notificação “Tudo está OK” do Nagios?

4

Eu preciso configurar o Nagios para enviar uma notificação que diz que tudo corre bem, se não houver problemas.

Esse tipo de configuração existe ou existe um plugin para isso?

    
por Roman Prykhodchenko 03.08.2011 / 10:28

4 respostas

3

Eu uso a seguinte configuração para enviar um email uma vez por dia. Isso me faz saber que tudo está bem com o meu servidor Nagios, o sistema de e-mail e a configuração do Nagios.

  # nagios/objects/localhost.cfg
  ....
  # Send a message once per day to make sure nagios is working ok
  define service{
        use                     local-service
        host_name               localhost
        service_description     Nagios is OK
        check_command           check_all_is_well
        check_period            morning     ; this is a custom period
        normal_check_interval   60          
            ; setting this to an hour and making the check_period 
            ; interval 59 minutes long each day ensures it only 
            ; happens once per day in a specific window
        }

e no seu arquivo de configuração timeperiods:

# nagios/objects/timeperiods.cfg
....
define timeperiod{
        timeperiod_name morning
        alias           First thing in the am
        monday          06:00-6:59
        tuesday         06:00-6:59
        wednesday       06:00-6:59
        thursday        06:00-6:59
        friday          06:00-6:59
        saturday        06:00-6:59
        sunday          06:00-6:59
        }

E o comando check_all_is_ok é um simples wrapper em torno do sendmail:

# check_all_is_ok
#!/bin/bash

echo "All is well from Nagio on 'hostname'" \
       | /etc/nagios/sendmail -s "Nagios on PIP is OK" <your email address>

echo "OK: nagios is ok on 'hostname'";
exit 0

Ele não verifica se não houve problemas nas 24 horas anteriores, mas você pode adicionar um pouco do grep-ping dos registros, como guanta sugerido, se precisar. Você também pode realizar o requisito de uma vez por dia definindo normal_check_interval como 1440 (24 horas), mas eu quero que a verificação seja executada em uma janela específica a cada dia.

    
por 20.08.2011 / 17:34
1

Se você configurou a rotação de log diário ( log_rotation_method=d ), poderá escrever um script para contar o número de alertas em nagios.log , algo assim:

[ 'grep -c ALERT var/nagios.log' -eq 0 ] && echo "Everything is OK!" | mail -s "Nagios daily report" your@email

Coloque-o em um cron job para executar no final do dia, antes de ir para a cama.

Se você não o fizer, consulte este tópico para filtrar de acordo com a data.

    
por 12.08.2011 / 15:17
0

A solução depende muito de quando você realmente deseja enviar notificações:

  • Em cada execução bem-sucedida de uma verificação ativa: pode fazer sentido executar a etapa de notificação como parte de sua verificação ativa. Uma maneira simples seria colocar o cheque dentro de um script que primeiro faz o cheque, faz uma introspecção no resultado e envia a notificação. Você pode fazer isso usando o Perl incorporado .
  • Quando as coisas costumavam não estar bem, mas estão agora: esse é um comportamento padrão.
  • Nas verificações passivas: Este é realmente um problema interessante para o qual não tenho uma solução no topo da minha cabeça ...

Dependendo do cenário, você deve decidir por uma solução. E lembre-se sempre: faça a coisa mais simples possível.

    
por 03.08.2011 / 23:52
0

Está um pouco atrasado, mas para qualquer outra pessoa que esteja procurando uma solução, há uma maneira fácil de usar o módulo de mediador de livestatus .

Configure o livestatus para usar um socket unix (Shinken, por padrão, ele tem apenas a porta tcp configurada, você pode adicionar o socket como na configuração em esta página ), e você pode pesquisar diretamente usando, por exemplo, um script python.

    
por 13.12.2012 / 17:32