Nagios controlla la frequenza del servizio in base allo stato del servizio


9

Sto cercando di rilevare l'arresto del disco monitorando si, quindi dal comando vmstat. Sto monitorando altri servizi utilizzando nagios e il controllo del servizio avviene ogni 5 minuti. Per questo servizio di thrashing voglio che i nagios lo controllino ogni 20 minuti e se lo stato restituito non è OK (cioè avviso o critico), il servizio di thrashing dovrebbe essere controllato ogni 3 minuti fino a quando lo stato restituito dal servizio diventa OK. Il tempo di controllo del servizio per tutti gli altri servizi rimane invariato.

Sono nuovo di Nagios e qualsiasi aiuto su questo sarebbe molto apprezzato.

Risposte:


14

Supponendo che la interval_lengthdirettiva sia impostata su 60 per impostazione predefinita:

$ 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

Per i servizi speciali, è necessario definire un modello diverso in /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   
        ...   
        }

Prestare attenzione a:

  • normal_check_interval: questo servizio viene controllato ogni 20 minuti in condizioni normali
  • retry_check_interval: il numero di minuti da attendere prima di pianificare un nuovo controllo quando il servizio è passato allo stato non OK. Si noti che se al servizio è stato riprovato il max_attemptstempo senza modificarne lo stato, si tornerà alla pianificazione programmata check_interval.

e usa questo modello per il tuo servizio:

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

Potrebbe anche essere necessario definire un'escalation del servizio per modificare in notification_intervalbase allo stato del servizio, in questo modo:

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

Significa che questa escalation di servizio viene utilizzata quando il servizio è in stato di AVVISO, SCONOSCIUTO o CRITICO. E ora hai un nuovo intervallo di notifica: 10 minuti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.