Sapere tempestivamente se un sistema della nostra rete ha un problema è spesso la chiave per ridurre al minimo i disservizi. Non sempre però gli occhi sono puntati sul monitor per controllare che tutto sia up & running, specialmente se la rete è composta da molti dispositivi.
Avere la possibilità di ricevere gli alert via email invece, permette di acquisire l’informazione in tempo reale su diversi dispositivi (pc, blackberry o telefono) senza la necessità di essere fisicamente davanti al monitor di sistema. Questo permette un intervento tempestivo prima di essere sommersi di chiamate da parte degli utenti.
Utilizzando Nagios per monitorare la rete, è utile ricevere le notifiche via email degli alert generati dal sistema al verificarsi di un particolare evento poichè Nagios non ha questa funzione implementata internamente.
Per non complicare troppo il sistema, dotare Nagios del supporto email diventa indolore se ci si affida ad un sistema come ssmtp, un package che permette di inviare in maniera molto semplice le email ad un server SMTP… in pratica effettua il forward delle email generate in automatico ad un indirizzo di posta.
Installazione
Da console procediamo in questo modo:
# wget http://download.fedora.redhat.com/pub/epel/5/i386/ssmtp-2.61-11.8.el5.i386.rpm
# rpm –Uvh ssmtp-2.61-11.8.el5.i386.rpm
In CentOS il file eseguibile viene installato in /usr/sbin/.
Una volta installato il package, bisogna editare il file di configurazione ssmtp.conf per impostare i parametri corretti:
# vi /etc/ssmtp/ssmtp.conf
Testare sSMTP
Per verificare che il tutto funzioni correttamente, inviare una email di prova nella casella di posta configurata:
# ssmtp mail@gmail.com
- Digitare un testo, ad esempio “Test invio email con ssmtp…”
- Premere INVIO
- Premere CTRL+D
Se tutto funziona, riceveremo nella casella specificata una email da root con il testo digitato precedentemente.
Configurare Nagios
Una volta verificato che le email di test arrivano, bisogna configurare il file commands.cfg di Nagios per poter utilizzare ssmtp:
# vi /etc/nagios/objects/commands.cfg (path se installato solo nagios)
# vi /etc/nagiosql/commands.cfg (path se installato nagiosql)
Sostituire /bin/mail con il comando /usr/sbin/ssmtp.
define command{ command_name notify-host-by-email command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail /usr/sbin/ssmtp -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$ } define command{ command_name notify-service-by-email command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /bin/mail /usr/sbin/ssmtp -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ }
Al verificarsi di un alert, Nagios invierà una notifica all’indirizzo email specificato nella configurazione di ssmtp.
Questo ci permette di essere avvisati immediatamente al verificarsi di un problema e quindi di poter intervenire tempestivamente limitando i disservizi al minimo.
Troubleshooting
Se sSMTP funziona inviando la mail manualmente ma Nagios non riesce ad inviare in automatico, verificare come prima cosa il log.
# cat /var/log/nagios/nagios.log
Questo indica che non è stato modificato correttamente il file di configurazione.
# vi /etc/nagios/objects/commands.cfg (path se installato solo nagios)
# vi /etc/nagiosql/commands.cfg (path se installato nagiosql)
Verificare inoltre la configurazione del file /etc/nagiosql/contacts.cfg.
Ricontrollare che SMTP, username, password e l’indirizzo email siano stati inseriti correttamente.
ciao ho seguito la tua guida da terminale mi fa inviare le email ma da nagios niente non mi funziona
mi daresti una mano
Nagios è stato correttamente configurato?
Per ricevere le notifiche via email, devono essere configurati correttamente i parametri in contacts.cfg, contactgroup.cfg.
Verifica inoltre che siano stati specificati i comandi "notify-host-by-email / notify-service-by-email".
E' possibile avere un esempio per contacts.cfg e contacgroup.cfg?
Anche io ho problemi di spedizione email da Nagios.
Per il corretto invio delle email, è importante che il "mezzo" utlizzato per l'invio delle notifiche sia configurato correttamente.
Esattamente quale messaggio di errore ti manda il sistema?
Quale dominio di posta (gmail, yahoo, etc...) e quale SMTP sono utilizzati per l'invio delle email?
I due file di configurazione devono contenere dei parametri simili a quelli riportati qui di seguito:
* contacts.cfg
define contact {
contact_name admin_account_nagios
alias Nagios Admin
email admin@dominio.com
use generic-contactas
}
* contactgroups.cfg
define contactgroup {
contactgroup_name admins
alias Nagios Administrators
members admin_account_nagios
}
Verifica inoltre che /etc/nagiosql/commands.cfg sia stato modificato con l'istruzione /usr/sbin/ssmtp dove richiesto.
ciao ho seguito la tua guisa, funziona tutto, ma se metto
/usr/sbin/ssmtp -s “** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **” $CONTACTEMAIL$
la mail non parte
mentre se lascio solo
/usr/sbin/ssmtp -s $CONTACTEMAIL$
tutte le mail dal nagios, arrivano correttamente ma ovviamente mi lascia il campo "oggetto" della mail, vuoto ""
puoi darmi consigli ?
Grazie
Ciao
complimenti prima di tutto per i tuoi post, questo e il giusto utilizzo di internet la condivisione delle informazioni. Ho messo in piedi un sistema nagios su centos 6.3 e funziona tutto correttamente ho installato ssmtp, e lo ho configurato con teletu ma al test da shell il messaggio mi rimane congelato e non invia nulla, avresti qualche suggerimento in merito grazie
Quale SMTP utilizzi per l'invio?
Non conosco la configurazione richiesta da Teletu, ma alcuni provider vogliono che sia utilizzato il loro SMTP.
ciao utilizzo l'smtp di teletu ovvero
smtp.teletu.it:587
ho risolto per il funzionamento di ssmtp ho semplicemente cambiato smtp di destinazione.
Sul mio nagios ho usato i plugin check _mk per esso vale la configurazione che hi rapresentato nel how to oppure e diversa
Ottimo! Spesso l'SMTP scelto è quello che fa la differenza ed è comunque un buona base di partenza per fare troubleshooting...