Nagios notifikacije putem Google Hangouts

Nagios je, kao što kolega Toni Pralas navodi u članku "O nagiosu" (http://sistemac.carnet.hr/node/809), moćan sustav nadzora koji organizacijama omogućava da prepoznaju i riješe probleme vezane uz infrastrukturu informacijskih sustava prije nego oni počnu utjecati na kritične poslovne procese.

Notifikacije se najčešće šalju putem e-mailova i SMS poruka. Zamislimo na trenutak da smo podigli vlastiti Nagios server, dodali nekoliko nadziranih hostova i servisa, te, naravno, želimo biti obaviješteni o ispadu ili problemu. No postoji problem, a to je da nismo u mogućnosti upogoniti vlastiti ili zakupiti vanjski SMS hosting. Morat ćemo se snaći na neki drugi način, a to je u ovom slučaju Google Hangouts.

Ukratko ćemo opisati proceduru konfiguriranja notifikacija preko Google Hangouts-a.

Prvi korak je instalacija alata "sendxmpp" putem kojeg ćemo slati xmpp poruke. Alat je dostupan u standardnom Debianovom repozitoriju.

root@srv-access:~$ apt-get install sendxmpp

Nakon instalacije alata sendxmpp kreiramo datoteku u koju ćemo upisati podatke korisničkog računa s kojeg ćemo slati poruke, drugim riječima upisujemo korisničko ime i lozinku:

root@srv-access:~$ cat /etc/nagios3/xmpp.cfg
username@talk.google.com password

Korisnik nagios mora biti vlasnik kreirane datoteke, pa ćemo pomoću naredbe chown samo njemu dati pravo čitanja:

root@srv-access:~$ chown nagios:nagios /etc/nagios3/xmpp.cfg
root@srv-access:~$ chmod 400 /etc/nagios3/xmpp.cfg

Sada možemo testirati:

root@srv-access:~$ echo -e "Linija 1\n Linija 2\n Linija 3" |\
/usr/bin/sendxmpp -t -f /etc/nagios3/xmpp.cfg -o gmail.com "destination"@gmail.com
you must own /etc/nagios3/xmpp.cfg

Ova poruka o greški je logična, jer je konfiguracijska datoteka u vlasnistvu korisnika Nagios, a ne root. Popravit ćemo problem:

root@srv-access:~$ echo -e "Linija 1\n Linija 2\n Linija 3" |\
sudo -u nagios /usr/bin/sendxmpp -t -f /etc/nagios3/xmpp.cfg -o gmail.com "destination"@gmail.com
root@srv-access:~$ echo $?
0

Ukoliko sve prođe uredno, neće se ispisati poruka o uspješnom slanju. No, izlazni status će biti "0", pa možete provjeriti na taj način, ili jednostavno provjerite mobitel ili browser gdje vas čeka poruka :)

Sada je potrebno u Nagiosu definirati naredbu za slanje putem xmpp-a (Extensible Messaging and Presence Protocol). Možemo koristiti posebnu konfiguracijsku datoteku ili dodati postavke u neku već postojeću datoteku. U našem slučaju ćemo dodati u postojeću:

root@srv-access:~$ less /etc/nagios3/commands.cfg
[...]
# 'notify-service-by-jabber' command definition
define command{
command_name notify-service-by-jabber
command_line /bin/echo -e '***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n' | /usr/bin/sendxmpp -t -f /etc/nagios3/xmpp.cfg -o gmail.com $_CONTACTJABBER$
}
[...]

Varijabla _CONTACTHANGOUTS nam je potrebna ako imamo više korisnika kojima šaljemo poruke. Za svaki kontakt kojem želite slati poruke potrebno ga je definirati:

root@srv-access:~$ less /etc/nagios3/conf.d/contacts.cfg
define contact{
contact_name mrva
alias Stjepan Mikulic
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-service-by-hangouts
host_notification_commands notify-host-by-hangouts
email korisnik@gmail.com
pager
_HANGOUTS korisnik@gmail.com
}

Gornja dva primjera su za slanje obavijesti o servisima, no ista logika se može primjenite za hostove.

Naredbu koja dolazi sa Nagiosom "notify-host-by-email" prilagodite kako biste primali poruke i za hostove. U našem primjeru je to "notify-host-by-hangouts".

 

Vijesti: 
Kategorije: 
Vote: 
5
Vaša ocjena: Nema Average: 5 (1 vote)