Thomas Kramer

IT-COW | Icinga & NSClient++ & Postfix

Icinga & NSClient++ & Postfix

By Administrator at Mai 27, 2010 17:00
Filed Under: Administration, Anleitungen, Linux, Windows

Ich wollte schon längere Zeit meinen Server mit Nagios überwachen lassen. Als Server benutze ich Windows Home Server, der mir jedoch zuviel Strom verbraucht für einen 24/7-Betrieb - um die 65-70 Watt bei normaler CPU-Belastung habe ich gemessen, mit vier internen Festplatten. Daher lasse ich diesen Server über das LightOuts-Plugin zeitgesteuert ein- und ausschalten, jeweils 12 Stunden pro Tag ist er an und aus.

 

Als Zweitserver habe ich mir daher einen Stromspar-Rechner zusammengebaut, als Mainboard benutze ich dieses hier: Intel Essential Series D945GSEJT - mit dem stromsparenden Intel i945GSE-Chipsatz statt dem verbreiteten i945GC-Chipsatz. Mit einer 2,5"-Festplatte habe ich im normalen Betrieb 15-18 Watt Stromverbrauch gemessen, damit dürfte der PC der stromsparendste Rechner im Haus sein.

 

Diesen Rechner lasse ich 24/7 laufen, als Betriebssystem fährt er Kubuntu 9.04 - 9.10 hatte ich zuerst ausprobiert, läuft aber nicht weil Kubuntu 9.10 erstmals den Bootloader Grub2 benutzt, das Board bootet damit nicht. Mittlerweile gibt es bereits 10.04, aber der Rechner läuft nun auch schon ein paar Monate (durch). Das Gerät hat kein Gehäuse (ich schalte es mit einer Büroklammer ein) - das ist bei passiver Kühlung auch besser als ein kleines Gehäuse, bessere Wärmeabfuhr. Interessant übrigens auch, das dieses Mainboard mit einem einfachen 12V-Schaltnetzteil betrieben werden kann.

 

Ergänzung 30.05.2010: wie man (K)Ubuntu von einem USB-Stick installiert, habe ich bereits hier beschrieben.

 

Auf diesem Board wollte ich Nagios installieren - von der offiziellen Quelle. Vorgegangen war ich bei der Installation nach der offiziellen Anleitung, welche auf Ubuntu ausgelegt ist. Jedoch habe ich es nie zum Laufen bekommen auf meinem Board, folgend ist die immer auftretende Fehlermeldung ersichtlich:

 

 

Es wird bei jedem Start ein Caught SIGSEGV-Fehler geloggt und der Service stürzt ab. Dabei war ich buchstabengetreu nach der offiziellen Anleitung vorgegangen. Angeblich treten diese SIGSEGV-Fehler öfter im Zusammenhang mit defekten RAM-Modulen auf, daher hatte ich das Modul einmal durch ein anderes ersetzt, aber half nicht. Eine ältere Programmversion habe ich übrigens auch getestet, aber gleiches Problem.

 

Jemand im Internet riet mir dann dazu Fully Automated Nagios einzusetzen, dabei handelt es sich um ein CD-Image mit vorinstalliertem Nagios. Jedoch hat mein Board nicht soviel CPU-Leistung um das Image nebenbei in einer VM laufen zu lassen bzw. wollte ich das System nicht komplett aufspielen. Auf dem WHS dieses System aufzuspielen (VM) wäre auch sinnfrei gewesen, schließlich ist das der Rechner selbst der überwacht werden soll.

 

Icinga und NSClient++ Installation/Konfiguration

 

Jemand anderes machte mich dann auf Icinga aufmerksam, das ist ein Fork von Nagios, ebenfalls frei erhältlich. Übrigens können dafür die Nagios-Plugins weiter verwendet werden. Zu diesem System gibt es eine sehr gute deutsche Dokumentation: Link. Etwas irritierend ist das trotz der deutschen Dokumentation die Weboberfläche selbst nicht auf deutsch umgestellt werden kann, aber das ist natürlich nicht weiter tragisch.

 

Allgemeines zur Installation: An der Stelle möchte ich den Einsatz des Befehls locate (Datei) empfehlen - falls Ihr euch die ganzen Pfade wie ich nicht merken könnt. Unmittelbar nach der Installation eines Programmpakets ist die Dateien-Datenbank dieses Befehls noch nicht auf dem aktuellen Stand, daher zuvor sudo updatedb ausführen. Locate ist nicht schlecht, im Gegensatz zu Everything unter Windows jedoch auf periodisches Aktualisieren seiner Datenbank angewiesen, was aber immerhin automatisch passiert. Everything wird dagegen direkt aktualisiert, sobald eine Änderung im MFT von NTFS stattfindet.

 

Für die Installation habe ich damals das Tutorial benutzt, jedoch ist diese Anleitung unvollständig, es fehlt u. a. das Anlegen des Benutzers für die Weboberfläche. Daher besser diese oder diese (offizielle) Quelle als Installationsanleitung benutzen. Grundsätzlich ist das Webinterface von Icinga nach der Installation über http://IP-Adresse-des-Servers/icinga erreichbar, demnach also auf dem Standard-Port 80 - dadurch das /icinga angehängt wird sind auch keine Konflikte zu erwarten, wenn der Webserver bereits vorher Seiten gehostet hat.

 

Icinga schreibt die Datei icinga.conf in das Verzeichnis /etc/apache2/conf.d und hängt sich auf diese Weise in die Apache-Konfiguration. Standardmäßig wird dabei kein virtueller Host sondern wie gesagt nur ein Alias /icinga erstellt, der auf /usr/local/icinga/share zeigt.

 

Damit hat die Inbetriebnahme eines Monitor-Systems auch endlich bei mir funktioniert. Übrigens reicht die Installation von Icinga nicht aus, auf den zu überwachenden Servern selbst muss ebenfalls Software installiert werden, für meinen WHS habe ich dazu NSClient++ aufgespielt - ebenfalls kostenlos erhältlich.

 

Nach der Installation dieses Pakets muss in der NSC.ini-Datei des NSClient++-Verzeichnisses das Passwort für die Icinga-Abfragen angegeben werden. Auf Icinga-Seite wird dieses Passwort in der Datei commands.cfg im /usr/local/icinga/etc/object-Verzeichnis angegeben, bei dem Befehl check_nt wird dazu das Passwort mit -s Passwort ergänzt. Serverseitig sollten in der NSC.ini die Abfragen auch auf die Rechner begrenzt werden, wo der Icinga/Nagios-Server läuft - mit dem Parameter allowed_hosts gibt man dazu die gültigen IP-Adressen an.

 

In der Datei windows.cfg des Icinga-Servers werden die IP-Adressen der zu überwachenden Windows-Server angegeben, ebenfalls im object-Verzeichnis - mit dem Parameter define host{}, der natürlich mehrmals aufgeführt werden kann, wird das erreicht. Bei diesem Parameter sollte auch direkt contact_groups admins ergänzt werden, damit Icinga weiss wohin es eMail-Benachrichtigungen bei auftretenden Fehlern schicken muss (in den Kontakten wird das genauer definiert). Im übergeordneten Verzeichnis gibt es die Datei icinga.cfg, über diese wird die Datei windows.cfg inkludiert - dazu existiert ein vorgegebener Eintrag, der aber standardmäßig mit # auskommentiert ist. Wenn das # entfernt wurde, werden die angegebenen Windows-Server mit überprüft.

 

In der Datei contacts.cfg des objects-Verzeichnisses trägt man die eigene eMail-Adresse ein, für icingaadmin. Das war es im Wesentlichen mit der Icinga-Konfiguration - auf Korrektheit überprüft werden kann sie übrigens automatisch, wie bei Nagios, mit dem Befehl

 

/usr/local/icinga/bin/icinga -v /usr/local/icinga/etc/icinga.cfg

 

Den Befehl sollte man auch anwenden, denn der allgemeine Befehl zum Starten von Icinga - /etc/init.d/icinga restart - gibt nur aus DAS die Konfiguration nicht in Ordnung ist.

 

Allgemeines zu der Icinga-Konfiguration: bei den Kommandodefinitionen werden häufig zwei Befehle auf eine Zeile aufgesplittet, das geschieht über das | - Zeichen. Dabei handelt es sich um den Pipe-Operator.

 

Ergänzung: Icinga benutzt ein Webinterface, insofern muss Apache bei Änderungen natürlich ebenfalls neu gestartet werden: /etc/init.d/apache2 restart.

 

Postfix Installation/Konfiguration

 

Die Postfix-Konfiguration ist hier sehr gut beschrieben, ich werde hier daher nur Ergänzungen dazu schreiben. Wenn man die eMails über Freemailer wie GMX nach außen verschicken lassen will (also deren SMTP-Server nutzen will), muss, wie auch in der Quelle bereits erwähnt, die Absender-eMail-Adresse mit dem eMail-Account des benutzten SMTP-Servers übereinstimmen, ansonsten wird die eMail abgewiesen. Standardmäßig verschickt Icinga eMails mit der Absenderkennung Icinga (Benutzer)@Servername - das kann über die Log-Datei von Postfix /var/log/mail.log überprüft werden.

 

Für eine automatische Absender-Änderung muss in der Postfix-Datei sender_canonical der Icinga-Benutzer und die zu verwendende (Absender-) eMail-Adresse eingetragen werden, anschließend erstellt man die Datenbank mit dem Befehl sudo postmap /etc/postfix/sender_canonical neu und lässt Postfix auch neu starten: sudo /etc/init.d/postfix restart. Ergänzung: in der main.cf-Datei von Postfix musste ich zusätzlich als relayhost direkt den von GMX einsetzen, damit es funktionierte.

 

Icinga selbst ist für den eMail-Versand mit dem Befehl mail bereits vorkonfiguriert (Datei commands.cfg, die dazugehörigen Befehle lauten notify-host-by-email und notify-service-by-email), dort muss nur die Ziel-eMail-Adresse bei den Kontakten eingetragen worden sein.

 

Anschließend versendet Icinga bei Warnungen und Fehlern eMails, jedoch nicht mit jedem Check. Bei mir wird jede Stunde eine eMail verschickt, das die SSH-Schnittstelle auf dem Icinga-Server nicht funktioniert. Allerdings benutze ich sowieso das Key-File für SSH, insofern nicht weiter relevant für mich, aber ich wollte sehen ob er dafür eMails verschickt und das macht er auch.

 

Weitere Links:

 

  • Erfahrungsberichte: 1
  • Zusammenfassung in der Icinga-Dokumentation zu den ganzen Variablen: 1
  • Dokumentation zu Postfix: 1

 

Folgend ein Bild der Weboberfläche von Icinga:

 

 

=> Weiter geht es mit der erweiterten Konfiguration von Icinga: Link.

 

Kommentare (2) -

15.06.2010 23:20:11 #

Hallo Thomas,

in den nächsten Versionen wird das Webinterface von Icinga auch Multilanguagefähig sein. Deutsch ist dann natürlich dabei, viele andere ebenso: www.icinga.org/.../ und das nächste Release kommt auch schon in 2 Wochen!

Danke für deine Berichte

Grüße
Karo

Karo Germany |

16.06.2010 14:53:43 #

Cool jemand offizielles schreibt mir Smile Das Ranking meiner Seite zu dem Thema ist bei Google recht hoch habe ich gesehen Smile Sehr bekannt scheint es daher wohl noch nicht zu sein.

Danke für die Info.

Gruß, tk

Admin Germany |

Pingbacks and trackbacks (1)+

Monats-Liste