Grupo de contato para alertar após uma hora em Nagios / OMD

1

Estou tentando encontrar uma solução para o cenário abaixo.

Eu tenho algumas centenas de serviços em um Nagios (instalação do OMD com check_mk e outras coisas deliciosas) e eles são definidos como tipos de serviços diferentes, então para diferentes tipos eu tenho diferentes grupos de contatos que serão alertados quando ocorrer um problema.

Ele está funcionando bem, mas eu gostaria de chamar um script se um serviço estiver em status crítico após 1 hora e não tiver sido confirmado / comentado, etc.

Não encontrei nada na documentação de referência.

Obrigado pela sua ajuda antecipadamente

Tipo de serviço típico:

define contact{
    contact_name                    level1          ; Short name of user
    use                             generic-contact         ; Inherit default values from
    alias                           Gravity Level1          ; Full name of user
    email                           [email protected]         ; email for alerting
    }

define contactgroup{
    contactgroup_name       defcon3
    members                 level1, level2
    }

 define service{
   name                            defcon3-service         ; The 'name' of this service template
   active_checks_enabled           0                       ; Active service checks are enabled
   passive_checks_enabled          1                       ; Passive service checks are enabled/accepted
   obsess_over_service             1                       ; We should obsess over this service (if necessary)
   check_freshness                 0                       ; Default is to NOT check service 'freshness'
   notifications_enabled           1                       ; Service notifications are enabled
   event_handler_enabled           1                       ; Service 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  
   is_volatile                     0                       ; The service is not volatile
   check_period                    24x7                    ; The service can be checked at any time of the day
   max_check_attempts              3                       ; Re-check the service up to 3 times in order to 
   normal_check_interval           2                       ; Check the service every 10 minutes under normal 
   retry_check_interval            1                       ; Re-check the service every two minutes until a
   notification_options            w,u,c,r                 ; Send notifications about warning, unknown, 
   notification_interval           60                      ; Re-notify about service problems every hour
   notification_period             24x7                    ; Notifications can be sent out at any time
   contact_groups                  defcon3                 ; default mail to monitoring -v-
   register                        0                       ; DONT REGISTER THIS DEFINITION - ITS NOT A R
}

 define service {
    use                           check_mk_passive_perf
    use                           defcon3-service
    host_name                     gravity-mon
    service_description           CPU load
    contact_groups                +defcon3
    service_groups                +defcon3
    check_command                 check_mk-cpu.loads
}
    
por Gabor Vincze 14.03.2012 / 16:27

1 resposta

3

Eu odeio contradizer diretamente outro pôster, mas NAGIOS pode fazer exatamente isso: o que você está procurando é referido na documentação como escalações de notificação .

Como o doco diz,

Notifications are escalated if and only if one or more escalation definitions matches the current notification that is being sent out. If a host or service notification does not have any valid escalation definitions that applies to it, the contact group(s) specified in either the host group or service definition will be used for the notification.

Então, se você tivesse um serviço chamado HTTP em um host webserver , cuja falha normalmente alertava o grupo sysadmins a cada 30 minutos (digamos), e você queria que o grupo managers ouvisse sobre ele se algumas vezes os alertas não forem confirmados e não forem corrigidos pelo terceiro alerta, você poderá tentar:

define serviceescalation{
    host_name           webserver
    service_description HTTP
    first_notification  3
    last_notification   5
    contact_groups      nt-admins,managers
    }

No seu caso, você não quer notificar as pessoas, mas invocar um script. Para isso, você precisará definir um novo grupo de contatos que contenha um membro, cujo membro tem service_notification_commmand de (por exemplo) /usr/local/bin/my-webserver-handling-script .

Se você não quiser que o script seja chamado repetidamente, será preciso ajustar first_notification e last_notification acima para que essa escalação específica seja aplicada apenas uma vez.

Eu também o aconselho a fazer isso. Eu pessoalmente não sou a favor de sistemas de notificação que também se tornam sistemas de manipulação de incidentes; Eu acho que eles deveriam deixar um ser humano saber que algo não está funcionando direito, e deixar o ser humano lidar com isso, e aqui está o porquê: por definição, o NAGIOS só alerta as pessoas quando coisas não estão indo bem. Se você for automatizar o manuseio disso, você precisa estar extremamente seguro de que eles falharam exatamente da maneira correta. Se, por exemplo, você tiver esse script de ciclo de energia no servidor da Web, é melhor ter certeza de que todas as dependências de host estão configuradas corretamente para que a falha de um roteador intermediário também não cause WebServer para começar a ser reinicializado, causando corrupção do sistema de arquivos que você tem que lidar depois de consertar o roteador.

    
por 14.03.2012 / 16:57