Disabilitare i check di Nagios durante determinate fasce orarie

Creato il 15 aprile 2013 da Nightfly

Scenario

Windows Server 2008 R2 che funge da Domain Controller ed Exchange server (si tratta di una piccola LAN, ergo, non è indispensabile dislocare tali servizi su due macchine differenti). Per monitorarne le risorse (in termini di RAM, CPU e di spazio sul disco), utilizzo delle query WMI, instradate dall'NMS (Nagios) ad un servizio dedicato in ascolto sul server (ovvero NRPE_NT - per approfondire l'argomento vi consiglio di consultare questo post).

Problema

Poichè sul server in questione viene eseguito il backup dell'intero sistema operativo (compreso il DB di Exchange) a partire dalle 22 di ogni sera, durante tale lasso di tempo, Nagios produce una miriade di allarmi recanti l'errore Socket timeout after 10 seconds. Questo, in soldoni, significa che il DC non è stato in grado di servire la richiesta in quanto troppo impegnato (oppure la richiesta gli è giunta proprio durante il backup dei file utilizzati da NRPE_NT).

Soluzione

Disabilitare le query WMI di Nagios dalle 22 alle 23.

Per fare questo si possono seguire due strade:

1) utilizzare uno script bash creato ad hoc per disabilitare i check specifici, da lanciare mediante cron;

2) lavorare direttamente sul file di configurazione dell'NMS in questione.

Personalmente preferisco la seconda soluzione, in quanto più pulita (poichè coinvolge direttamente Nagios senza passare per uno script aggiuntivo e per cron - less is more).

Per prima cosa, occorre lavorare sul file timeperiods.cfg presente nella directory /etc/nagios/objects, creando l'oggetto NRPE_off:

define timeperiod{
   timeperiod_name NRPE_off
   alias   24 Hours A Day, 7 Days A Week
   sunday   00:00-22:00,23:00-24:00
   monday   00:00-22:00,23:00-24:00
   tuesday   00:00-22:00,23:00-24:00
   wednesday   00:00-22:00,23:00-24:00
   thursday   00:00-22:00,23:00-24:00
   friday   00:00-22:00,23:00-24:00
   saturday   00:00-22:00,23:00-24:00
   }

A questo punto è necessario modificare l'oggetto windows-service, presente nel file templates.cfg. Nella fattispecie, l'opzione da editare è check_period il cui valore dovrà essere NRPE_off:

define service{
   name   windows-service
        check_period            NRPE_off

   ...

Ovviamente, le query WMI definite su Nagios sfruttano il template windows-service e quindi ereditano come check_period NRPE_off (precedentemente definito).

Per completezza, riporto uno stralcio della configurazione relativa alla query WMI che ha il compito di monitorare la RAM allocata:

define service{
   use   windows-service   ; Name of service template to use
   host_name   domain-controller
   service_description   query WMI Memory for Microsoft Windows Machine
   check_command   check_WMI_mem!_TOTAL!85,95
}

Lanciamo un restart di Nagios per rendere effettive le suddette modifiche:

[root@nagios objects]# service nagios restart

ed abbiamo finito.

Alla prossima.


Potrebbero interessarti anche :

Possono interessarti anche questi articoli :