O Nagios verifica a frequência do serviço com base no status do serviço

9

Estou tentando detectar o problema de disco monitorando si, portanto, pelo comando vmstat. Estou monitorando outros serviços usando o nagios e a verificação do serviço ocorre a cada 5 minutos. Para este serviço de thrashing, desejo que os nagios o verifiquem a cada 20 minutos e, se o status retornado não estiver OK (ou seja, aviso ou crítico), o serviço de thrashing deverá ser verificado a cada 3 minutos até que o status retornado pelo serviço se torne OK. O tempo de verificação do serviço para todos os outros serviços permanece inalterado.

Eu sou novo em Nagios e qualquer ajuda sobre isso seria muito apreciada.

APZ
fonte

Respostas:

14

Supondo que a interval_lengthdiretiva esteja configurada para 60 por padrão:

$ grep interval_length /usr/local/nagios/etc/nagios.cfg 
# This value works of the interval_length you specify later.  If you leave
# actual seconds rather than a multiple of the interval_length variable.
interval_length=60

Para os serviços especiais, você precisa definir um modelo diferente para ele em /usr/local/nagios/etc/objects/templates.cfg:

define service{
        name                            special-service    
        ...
        max_check_attempts              3           
        normal_check_interval           20         
        retry_check_interval            3           
        notification_interval           60   
        ...   
        }

Prestar atenção à:

  • normal_check_interval: este serviço é verificado a cada 20 minutos em condições normais
  • retry_check_interval: o número de minutos a aguardar antes de agendar uma nova verificação quando o serviço foi alterado para um estado não OK. Observe que, se o serviço tiver sido tentado novamente max_attemptssem uma alteração em seu status, ele voltará a ser agendado à check_intervaltaxa.

e use este modelo para o seu serviço:

define service{
    use                     special-service
    host_name               xx
    service_description     yy
    check_command           zz
    contact_groups          admins
    }

Você também pode precisar definir uma escalação de serviço para alterar o notification_intervalbaseado no estado do serviço, algo como isto:

define serviceescalation{
    host_name               xx
    service_description     yy
    last_notification       0
    notification_interval   10
    escalation_options      [w,u,c]
    contact_groups          admins
    }

Isso significa que essa escalação de serviço é usada quando o serviço está no estado AVISO, DESCONHECIDO ou CRÍTICO. E agora você tem um novo intervalo de notificação: 10 minutos.

quanta
fonte