Kleine und große Linux AHAs
Ein bisschen grün, ein bisschen gelb und möglichst wenig rot – Nagios per Jabber live und in Farbe [fixed]
Es gibt mittlerweile doch so einige Beiträge im Internet, in denen beschrieben ist wie man Nagios Notifications per Jabber (XMPP) versendet. Was mich dabei immer ein wenig gestört hat war die Unübersichtlichkeit der Meldungen. Prinzipiell wurde die Konfiguration nur auf Jabber umgebogen – auf die Möglichkeiten die sich dadurch vielleicht ergeben wurde nicht eingegangen. Die Variante von der ich hier spreche hätte auch schon bei eMails angewendet werden können – warum nicht? Ich weiß es nicht.
Wohin des Weges?
Was möchte ich überhaupt? Ich möchte die Nagios Notifications per Jabber senden. Aber nicht einfach nur Text und gut, sondern Meldungen in einer vernünftigen Optik und weiteren Funktionen.
Damit meine ich:
- farbige Meldungen -> man sieht sofort welchen Status die Meldung beinhaltet (rot, gelb, grün)
- Links zu weiteren Diensten, die direkt aus dem Jabber Fenster zu weiteren Informationen führen
Prerequisites
Das ganze benötigt quasi nur sendxmpp als Zusatz zu einem funktionsfähigen Nagios. Wie man sendxmpp installiert möchte ich an dieser Stelle nicht beschreiben. Unter Debian Lenny befindet es sich im Repository; für RHEL muss man sich das Paket besorgen.
Es sollte soweit getestet sein, dass der Nagios Account Nachrichten mit Hilfe von sendxmpp senden kann. Dazu wird bspw. eine Konfigurationsdatei sendxmpprc angelegt. Diese habe ich im Nagios Plugins Verzeichnis abgelegt.
Und dann?
Dann geht alles ganz einfach
Ich habe ein sendxmpp_wrapper Script geschrieben. Dieses Script wird von Nagios aufgerufen und verschickt am Ende die Nachricht. Die diversen Informationen werden dabei in ein HTML Gerüst verpackt, wodurch das ganze dann formatiert zum Empfänger geschickt wird. Das Script gibt es hier: sendxmpp_wrapper
# 'host-notify-by-jabber' command definition
define command{
command_name host-notify-by-jabber
command_line /usr/lib/nagios/plugins/sendxmpp_wrapper.sh HOST $CONTACTNAME$\@xmpp.... "$NOTIFICATIONTYPE$" "$HOSTNAME$" "$HOSTOUTPUT$" "$HOSTSTATE$" "$HOSTOUTPUT$"
}
# 'notify-by-jabber' command definition
define command{
command_name notify-by-jabber
command_line /usr/lib/nagios/plugins/sendxmpp_wrapper.sh SERVICE $CONTACTNAME$\@xmpp.... "$NOTIFICATIONTYPE$" "$HOSTNAME$" "$SERVICEDESC$" "$SERVICESTATE$" "$SERVICEOUTPUT$"
}
| Artikel drucken | Dieser Beitrag wurde von Ronny am 16. Juli 2010 um 12:06 veröffentlicht und unter bash, Hints, Monitoring, ScriptHints, Systemmanagement, ubuntuusers.de abgelegt. Du kannst allen Antworten zu diesem Beitrag durch RSS 2.0 folgen. Du kannst direkt zum Ende gehen und einen Kommentar hinterlassen. Pings ist momentan nicht möglich. |








vor 8 Monaten
Hi,
wie kann man das denn wohl für Konfräume verändern? Konnte das irgendwie nicht herausfinden. -c wäre ja der Parameter an sich, aber konnte das im wrapper nicht unterbringen…
vor 8 Monaten
Hallo,
laut der Manpage von sendxmpp sollte das funktionieren. Du kannst den Wrapper einfach per Command Line aufrufen. Wenn Du dann vorher noch -v / -d in den sendxmpp Aufruf im Script hinterlegst, dann solltest Du sehen woran es hängt.
Man könnte das Script noch dahingehend erweitern, als dass man den sendxmpp Aufruf in eine Variable packt und somit Änderungen am Aufruf einfacher an einer Stelle erledigen kann.
Solltest Du Probleme beim Debuggen haben, kannst Dich gerne nochmal melden (bitte per Mail dann).
Ronny
vor 1 Jahr
Datum ändern eines Blogposts weil ein Link berichtigt wurde geht ja mal gar nicht! Denkt doch mal an die RSS-Feed Leser.
vor 1 Jahr
Wird nicht wieder passieren.
vor 1 Jahr
Coole Sache – sieht gut aus nur leider ist der wrapper nicht runter zu laden.
FEHLER 500: Internal Server Error
vor 1 Jahr
Hallo zusammen,
das war wohl ein Problem mit den Dateiendungen. Shell Scripte einfach darf ich nicht und .gz interpretiert der Webserver. Hab nun ein ordinäres zipfile angelegt – das geht.
Sorry an alle!
Ronny
vor 1 Jahr
Hey Ronny,
ich würde mir den Wrapper gerne mal ansehen. Leider scheint es so als würde das Skript irgendwo liegen, wo cgi aktiviert ist
Wäre schön wenn du das irgendwie beheben könntest.
Danke!
vor 1 Jahr
Download-Link geht leider nicht.
vor 1 Jahr
Sieht gut aus, nur gibts ein Problem mit dem Skript. Es hat die Endung .gz obwohl es kein Archiv ist. Einfach das .gz am Ende entfernen, dann gehts.
vor 1 Jahr
Ach doch nicht, irgendwie gibt es vom Webserver her Probleme es runterladen zu können.