Wir möchten einen Server haben, der unser Netzwerk und unsere Services überwacht und ggf. einen Überblick über den Status ausgibt sowie uns im Notfall auf dem Handy alarmiert, wenn etwas wichtiges nicht läuft. Hierzu haben wir uns Nagios
und https://www.icinga.org/ Icinga
angesehen und uns letztlich für letzteres entschieden.
Basissystem#
Als Basis habe ich auf einem ausrangierten Netbook ein Debian
Jessie (Testing Version Juli 2013) installiert. Debian Linux benutzt als Paketmanager das Programm "aptitude", das es erlaubt, einzelne Pakete mitsamt ihren Abhängigkeiten zu installieren oder zu deinstallieren.
Als Zusatz habe ich wie immer joe installiert. Außerdem bietet sich je nach Netzwerkzugang das Paket resolvconf an.
aptitude install joe resolvconf
Netzwerkkonfiguration#
Da der Monitoring-Rechner möglichst viele Aspekte des Netzes testen soll aber gleichzeitig von diesem nicht abhängig sein sollte, konfiguriere ich drei mögliche Netzwerkverbindungen: Ein Netzwerkkabel (eth0), ein WLAN (wlan0) und eine Verbindung über einen UMTS-Stick (ppp0).
...to be done
Jabber#
Die Kommunikation mit der Außenwelt, insbesondere mit einem Mobiltelefon, soll über das XMPP (Jabber)
Protokoll stattfinden.
...to be done
vorläufige Linkliste zum Thema:
- http://www.lug-wr.de/wiki/index.php/UMTS
- http://wiki.debian.org/Wvdial
- http://www.lug-kr.de/wiki/Monitoring.Icinga
- http://www.lug-kr.de/wiki/MobilesInternet
- http://superuser.com/questions/225327/how-can-i-get-wvdial-to-run-from-etc-network-interfaces
- http://manpages.debian.net/cgi-bin/man.cgi?sektion=5&query=interfaces&apropos=0&manpath=sid&locale=en
- http://linux.die.net/man/5/wvdial.conf
- http://wiki.siduction.de/index.php?title=UMTS/GPRS_Internet_Zugang_erstellen_mit_Hilfe_von_wvdial
- http://www.eric-scheibler.de/ericsblog/blog/2012/04/09/Verwenden-des-UMTS-Modems-Huawei-E160-unter-Debian-Squeeze/
Installation#
Ich möchte nicht nur das "nackte" Icinga nutzen, sondern auch die neue, erweiterte Web-Oberfläche. Diese ist im Paket "icinga-web" enthalten. Die klassische Oberfläche ist im Paket "icinga-cgi" enthalten. Will man beide gleichzeitig installieren, ergibt sich ein Konflikt zwischen den zwei empfohlenen Varianten des Apache Webserver
. Deshalb kommt noch das Paket apache2-mpm-prefork hinzu. Des weiteren möchte ich gerne meine Datenbank in einem PostgreSQL-Server und nicht in MySQL haben, weswegen ich noch einige Pakete bzgl. der Anbindung an PostgreSQL hinzugefügt habe:
aptitude install icinga icinga-web apache2-mpm-prefork postgresql php5-pgsql libdbd-pgsql postgresql-client
Bei der Installation werde ich (für das Paket "icinga-cgi", wie man im Titel des Fensterchens sehen kann) nach dem Passwort für den Benutzer icingaadmin gefragt. Das ist der Benutzer, mit dem ich mich später in die klassische Weboberfläche unter http://inicinga.bayen.loc/icinga
einloggen kann.
Für das "icinca-ido" Paket werde ich nach einem Datenbank-Passwort gefragt. Ich richte die Datenbank in PostgreSQL automatisch durch die Debian-Installationsskripte (und nicht manuell) ein und vergebe hier ein Passwort (meins ist leicht ähnlich dem vorhergehenden).
Danach wurde ich nach dem Passwort (für das Paket "icinga-web") für den Benutzer "root" gefragt. Hier kann man ggf. wieder ein ähnliches Passwort wie gerade (oder ein ganz anderes) verwenden. Dieses gilt dann für die neue Weboberfläche unter http://icinga.bayen.loc/icinga-web.
Es erscheint eine Frage, ob ich externe Befehle benutzen möchte. Dies wird als ein potentielles Sicherheitsrisiko beschrieben. Da ich hiermit erst einmal experimentieren möchte, erlaube ich es dennoch.
Icinga-Werte mit Conky auf den Desktop beamen#
Wieso entdecke ich diese spannende Seite erst jetzt?
Danke an Thomas für die ausführliche Anleitung.
Hier ein paar Notizen meiner Gehversuche mit Icinga und Conky.
(Markus Monderkamp, 23.07.2013)
Ist Icinga erst einmal soweit konfiguriert, bietet sich das Zeichnen seiner Sensorenwerte auf den Desktop an.
sudo aptitude install conky
Dann:
- https://github.com/visibilityspots/scripts
:
"script can be used to display the output of icinga on your desktop conky setup.
Usage in conkyrc configfile: ${execpi 53 PATH/TO/conky-icinga.sh}" - https://github.com/arioch/scripts/blob/master/conky-icinga.sh
: "Scripts written for making daily life more comfortable"
- http://www.visibilityspots.com/conky-colors.html
: Farben, Icinga und Conky
Eine geschmackvollere Ausgabe erzeugt laut c't Linux Spezial Magazin die Conky-Konfiguration aus Reloj Conky (http://votritis.deviantart.com/art/Reloj-Conky-208415121).
Granular einstellen lässt sich Conky u.a. für Icinga mit ConkyWizard (http://code.google.com/p/conkywizard/).
Weitere Infos zu Conky liefert auch die betreffende Linksammlung aus der c't: http://www.heise.de/ct/special/13/02/links/086.shtml
.
ältere Version dieses Artikels (ca. aus 2011)#
Icinga
ist ein inzwischen ordentlich verbesserter Fork von Nagios.
Installation#
Basissystem#
Ich habe Nagios auf einem dedizierten, akkugestützten System installiert (sprich: auf einem eigenen, preiswerten Netbook), auf dem am besten sonst nichts anderes läuft. Es sollte tunlichst vermieden werden, daß dieses System von irgendwelchen anderen Problemen in Mitleidenschaft gezogen werden kann (schließlich ist der Monitoring-Dienst der einzige, der nicht vom Monitoring überwacht werden kann...), daher sollte es möglichst autark sein. Später werde ich ihm dazu noch einen eigenen UMTS-Stick (für einen Internet-Zugang und SMS-Meldungen) spendieren.
Zur Installation auf einem Debian Squeeze Basissystem habe ich folgendes gemacht:
Da ich eine aktuelle Icinga-Version einspielen möchte, habe ich (nach einem normalen upgrade) die Squeeze Backports
eingebunden.
Icinga#
aptitude install postgresql
su postgres
pgsql
create language plpgsql;
\d
\d
aptitude -t squeeze-backports install icinga
aptitude -t squeeze-backports install icinga-docs icinga-idoutils
Commandfile freigeben#
Icinga kann über ein sogenanntes Command File gesteuert werden. Das benutzt insbesondere die Weboberfläche, um Befehle, z.B. für einen Reschedule zu geben. Diese Schnittstelle muss aber zuerst freigegeben werden:
In /etc/icinga/icinga.cfg ändern:
check_external_commands=1
Nun gibt es aber noch ein anderes Problem: In der Standard-Debian-Installation hat die Weboberfläche keinen Zugang zum Commandfile /var/lib/icinga/rw.icinga.cmd.
Laut dem an sonsten recht hilfreichen Artikel http://suckup.de/2010/09/26/icinga/
kann man mit "dpkg-statoverride" die Zugriffsrechte dauerhaft (auch Paketupdate-übergreifend) ändern.
dpkg-statoverride --update --add nagios www-data 660 /var/lib/icinga/rw/icinga.cmd
Leider fehlt dort erstens der Hinweis, das man auch ein "x"-Recht für das "rw"-Verzeichnis braucht und zweitens blieben bei mir die Zugriffsrechte immer genau so lange bestehen, bis ich den Icinga-Server neu gestartet habe. :-(
Also habe ich mir das Problem nochmal betrachtet und stttdessen den Webserver in die Nagios-Gruppe aufgenommen:
addgroup www-data nagios
Icinga-Web#
Bis hierhin komme ich erst mal so weit, das die klassische Weboberfläche unter http://monitorserver/icinga
läuft. Leider gibt es für die neue, viel hübschere Weboberfläche Icinga Web, die für mich ein wichtiger Grund war, mich für Icinga und gegen Nagios zu entscheiden, kein Debian Paket.
Hier steht beschrieben, wie man icinga-web aufsetzt, für das es scheinbar noch kein Debian-Paket gibt:
...ich werde hier also weiter berichten.SMS-Versand#
Ich habe mein Skript zum SMSVersand nach "/root" installiert, es ausführbar gemacht und benutze dieses dann aus den Icinga-Konfigurationen heraus.
aptitude install groovy
scp smsversand.groovy root@monitorserver:.
Ergebnis bis hierhin#
Bis hierhin komme ich erst mal so weit, das die klassische Weboberfläche unter http://monitor/icinga
läuft.