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

8

Estou tentando detectar o thrashing de disco monitorando o si, portanto, a partir do comando vmstat. Estou monitorando outros serviços usando nagios e a verificação de serviço acontece a cada 5 minutos. Para este serviço de thrashing, quero que o nagios verifique-o a cada 20 minutos e, se o status retornado não estiver OK (aviso ou crítico), o serviço de thrashing deve ser verificado a cada 3 minutos até que o status retornado pelo serviço esteja OK. O tempo de verificação do serviço para todos os outros serviços permanece inalterado.

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

    
por APZ 09.11.2011 / 02:02

1 resposta

13

Supondo que a diretiva interval_length esteja definida como 60 pelo 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   
        ...   
        }

Preste atenção no:

  • normal_check_interval : este serviço é verificado a cada 20 minutos sob condição normal
  • retry_check_interval : o número de minutos a aguardar antes de agendar uma nova verificação quando o serviço foi alterado para o estado não OK. Observe que, se o serviço tiver sido repetido max_attempts time sem uma alteração em seu status, ele será revertido para ser agendado em check_interval rate.

e use este modelo para 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 um escalonamento de serviços para alterar o notification_interval com base no o estado do serviço, algo assim:

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 esse escalonamento de serviço é usado quando o serviço está no estado WARNING, UNKNOWN ou CRITICAL. E agora você tem novos intervalos de notificação: 10 minutos.

    
por 09.11.2011 / 03:51

Tags