Da ich die ICQ Benachrichtigung per imdaemon nicht zum laufen bekommen habe, benutze ich jetzt halt Jabber. Die Idee dafür habe ich auf http://www.ederdrom.de/nagios/jabber bekommen. Danke an Pitchfork für die nette Page.
Das folgende Tut ist unter Debian Linux entstanden.
Als erstes brauchen wir sendxmpp, welches uns an einen Jabber Server Nachrichten schicken kann. Nicht zu vergessen sind 2 Jabber User. Einer, der die Meldung empfängt und ein anderer, der Sie vom Nagios Server her losschickt.
apt-get install sendxmpp
Im Homeverzeichnis des Nagios Users wird als der Nagios User ( in meinem Fall: nagios ) eine Datei erzeugt (.sendxmpp), die den Usernamen und das Passwort des Jabber Users beinhaltet, und von dem aus wir unsere Benachrichtigungen erhalten wollen. Die Datei darf nur für den Besitzer lesbar sein !
echo "user passwort" > ~/.sendxmpprc chmod 600 ~/.sendxmpprc
Jetzt kann man auf der Konsole als User Nagios einen ersten Test machen, ob Sendxmpp richtig funktioniert.
/usr/bin/printf "%b" "***** Nagios Jabber Test **** " | /usr/bin/sendxmpp -s "Jabber Test Alert" nagios_alert@jabber.org
So etwas sollte nun in eurem Jabber Client ankommen
10:19:54: Subject: Jabber Test Alert ***** Nagios Jabber Test ****
Hier werden nur die Service Notifications konfiguriert. Für die Hosts Notifications müsst ihr das noch umbiegen. Ich habe dem Umweg über ein Shellscript gewählt, welches wir erst einmal erzeugen. Die Datei .sendxmpprc muss hier ( zumindest bei mir ) angegeben werden, da es sonst per Nagios nicht funktioniert. Ich habe da was im Hinterkopf, dass per „su - user -c „start nagios“ kein Homeverzeichnis übergeben wird ?!?
#/bin/bash /usr/bin/printf "%b" "***** Nagios *****\n\n\nNotification Type: "$1"\n\nService: "$2"\nHost: "$3"\nAddress: "$4"\nState: "$5"\n\nDate/Time: “$6” \n\nAdditional Info:\n\n “$7” \n\n\n\n\n" | /usr/bin/sendxmpp -f /home/nagios/.sendxmpprc -s "Nagios Alert" “$8”
.
define command{
command_name notify-by-jabber
command_line /usr/local/nagios/libexec/jabber.sh '$NOTIFICATIONTYPE$' '$SERVICEDESC$' '$HOSTALIAS$' '$HOSTADDRESS$' '$SERVICESTATE$' '$LONGDATETIME$' '$SERVICEOUTPUT$' '$CONTACTEMAIL$'
.
Hier gebt ihr den jabber Account an, welcher die Nachrichten bekommen soll. Contactgroups.cfg nicht vergessen !
# 'daemon' contact definition
define contact{
contact_name jabber
alias Nagios Jabber Admin
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-jabber
host_notification_commands host-notify-by-jabber
email nagios_admin@jabber.org
}
.
Ein “/etc/init.d/nagios restart“ schaltet die Jabber Benachrichtigungen scharf und ihr solltet in eurem Jabber Client Nagios Benachrichtigungen erhalten :) Eine nette Idee ist es auch, wie auf Ederdrom beschrieben, die Benachrichtigungen in einen Jabber Chat Raum zu schicken, die dann jeder bekommt, der sich in dem Raum befindet.
you must own /home/nagios/.sendxmpprc
Bei dieser Fehlermeldung habt ihr vergessen ein chmod 600 auszuführen, oder die Datei gehört nicht dem User Nagios