10. 03. 2009 Patrick Zambelli Unified Monitoring

Gestione Eventi – “Self healing” con NetEye

Come sarebbe il lavoro di un amministratore di rete, se i sistemi da controllare hanno l’abilita’ di curarsi da solo ? Sicuramente non deve ancora preoccuparsi di non avere nessune attivita’ da svolgere, pero’ ne esiste la possibilita’ di tentatare di ristabilire servizi e processi dopo un eventuale scoperta di un problema.

Questa e’ l’attivita’ die Eventhandling, l’abilita’ di prendere un’azione dopo la scoperta di un problema su un servizio in NetEye. Esempi classici per queste attivita’ sono il riavvio del servizio del SQL server dopo un suo arresto o il riavvio di una macchina se la memoria si riempie. Certamente questa attivita’ non sostituisce il controllo dell’amministratore sul “perche'” di un problema, un riavvio immediato puo’ pero’ evitare lascoperta del disservizio da parte dell’utente.

Questo articolo vuole introdurre la configurazione di un eventhandler che controlla il servizio del MySQL server su un sistema Windows.

La configurazione del sistema Windows:

Installare l’NSClient++ tramite script di Installatione situato sul server NetEye. Ulteriore documentazione e’ inclusa dentro la WiKi di NetEye. Altrimenti si puo’ consultare il sito del progetto http://sourceforge.net/projects/nscplus.

  • Aprire il file NSC.ini nella cartella del NSClient++ e abilitare NSClientListener.dll.
  • Modificare nella sezione  [NRPE]: allow_arguments=1
  • Abilitare nella sezione  [NRPE]: allow_nasty_meta_chars=1
  • Define dentro [NRPE Handlers] il commando: restart_service=scripts\service_start.bat $ARG1$
    Questo NRPE handler va chiamato e lancia il service_start.bat passando come argomento il nome del servizio da avviare.
  • Ora va definito lo script script service_start.bat dentro la cartella del NSClient++ (i.e.:C:\Program Files\NetEyeNSClient++\scripts\service_start.bat)

Lo script potrebbe contenere questa struttura di commandi:

IF NOT ("%1")==("") (GOTO StartService)
echo Please pass the servicename as argument.
exit 1

:StartService
net start %1
exit 0
  • Riavviare il servizio del NSClient++

La configurazione dentro NetEye:

  • Posizionare lo script del eventhandler dentro la cartella eventhandler di nagios.
    Lo scipt “eventhandler-nrpecmd” di questo esempio puo’ essere scaricato qui. (eventhandler-nrpecmd) (Cartella dei script eventhandler in NetEye: /usr/lib/nagios/plugins/eventhandlers/ )
  • In Monarch: Definire il commando “event_restart_mysql” with:$USER2$/eventhandler-nrpecmd $HOSTADDRESS$ $SERVICESTATE$ $SERVICESTATETYPE$ restart_service mysql

Aprire il servizio del host al quale abbinare l’eventhandler. Visualizzare il Tab “Service Detail” e selezionare nella sezione event handler il commando appena configurato.
Attenzione: Assicurarsi di togliere il flag nella riga del eventhandler per evitare che si applici di nuovo il valore del template di default.

Concludendo si esegue in “Commit” delle impostazioni verso Nagios e l’eventhandler entra in funzione al primo critical del servizio “check_mysql”.

La gestione eventi si attiva con la configurazione presente gia’ al primo rilevamento di un problema, il che significa gia’ quando avviene il primo soft warning o critical. Nel nostro caso invece desideriamo tentare il riavvio del servizio MySQL solo una volta ( se dovessero esserci problemi a livello di database tentativi multipli potrebbero causare piu’ danni che risolvere il problema ).
Per questo lo scipt installato a lato server NetEye ignora le chiamate di gestione eventi affinche il tipo di stato di Non-OK e’ soft. Una volta eseguiti tutti i check retry (sempre stato SOFT), il primo risultato di check che ritorna uno stato HARD lancia ancora un ultima volta l’eventhandler: e proprio questo risultato che indica all’eventhandler di lanciare effettivamente il tentativo di riavviare il file .bat sul server remoto per tentare il riavvio del servizio indicato come argomento.

Patrick Zambelli

Patrick Zambelli

Project Manager at Würth Phoenix
After my graduation in Applied Computer Science at the Free University of Bolzano I decided to start my professional career outside the province. With a bit of good timing and good luck I went into the booming IT-Dept. of Geox in the shoe district of Montebelluna, where I realized how a big IT infrastructure has to grow and adapt to quickly changing requirements. During this experience I had also the nice possibility to travel the world, while setting up the various production and retail areas of this company. Arrived at Würth Phoenix I started developing on our monitoring solution NetEye. Today, in my position as Consulting an Project Manager I am continuously heading to implement our solutions to meet the expectation of your enterprise customers.

Author

Patrick Zambelli

After my graduation in Applied Computer Science at the Free University of Bolzano I decided to start my professional career outside the province. With a bit of good timing and good luck I went into the booming IT-Dept. of Geox in the shoe district of Montebelluna, where I realized how a big IT infrastructure has to grow and adapt to quickly changing requirements. During this experience I had also the nice possibility to travel the world, while setting up the various production and retail areas of this company. Arrived at Würth Phoenix I started developing on our monitoring solution NetEye. Today, in my position as Consulting an Project Manager I am continuously heading to implement our solutions to meet the expectation of your enterprise customers.

Leave a Reply

Your email address will not be published. Required fields are marked *

Archive