Update: Diese Anleitungen gilt für ältere Versionen von Check_MK. Die Konfiguration kann in den neuen Versionen bequem in Wato, dem Webadministrationstool durchgeführt werden.
Thema heute ist das Einrichten eines Verteilten Nagios Monitorings. In der Vergangenheit war dies immer mit viel Konfiguration und ein paar Einschränkungen verbunden. Durch das in check_mk enthaltene Livestatus wird dies zusammen mit der check_mk Multisite GUI aber fast zum Kinderspiel.
Zur Begriffsklärung: wenn ich ab hier von Monitoring Site spreche, meine ich damit jeweils die Rechner mit Nagios Instanz die überwachen, bzw die OMD Sites, welche überwachen. Wenn ich von Viewing Site spreche, meine ich damit den Rechner oder die Site mit der Multisite GUI, welche alles anzeigen sollen.
Ich erkläre hier die Einrichtung mit und ohne OMD. Ich persönlich bevorzuge OMD.
Zuerst die Vorbereitung der Monitoring Sites:
Bei der Verwendung von OMD:
mit omd config bei jeder Instanz bei Distributed Monitoring den Livestatus TCP Socket aktivieren. Liegen mehrere Sites auf der gleichen Maschine, muss für jeden Socket einen eigener Port festgelegt werden. Unter ~/etc/apache/conf.d sollte für jede Site die auth.conf angepasst werden. Und zwar muss der Wert AuthName auf jeder Monitoring Site gleich gesetzt sein. Soweit die Vorbereitung OMD.
Vorbereitungen nur mit Nagios:
Hier ist etwas mehr zu tun. Dabei setze ich hier noch voraus, dass check_mk mit Livestatus installiert wurde. Nutzt man pnp4nagios, muss in dessen Apache Konfiguration bei Alias jeweils ein Prefix hinzugefügt werden. Der Prefix muss für jede Site unterschiedlich sein.
Als Beispiel:
#Aus: Alias /pnp4nagios ... #wird Alias /prefix/pnp4nagios ...
Bei allen Monitoring Sites darauf achten, dass der AuthName auch auf ein und denselben Wert eingestellt wurde.
Der nächste Schritt ist es, den Livestatus Socket durch xinetd auf einen TCP-Port zu legen, damit die Viewing Site später darauf zugreifen kann. In das Verzeichnis /etc/xinetd.d muss eine Datei mit folgendem Inhalt abgelegt werden:
service livestatus { type = UNLISTED port = 6557 socket_type = stream protocol = tcp wait = no cps = 100 3 flags = NODELAY user = nagios server = /usr/bin/unixcat server_args = /var/lib/nagios/rw/live # only_from = 127.0.0.1 disable = no }
Der Name der Datei spielt keine Rolle. Wichtig hier sind nur die server_args, welche auf den Livestatus Socket zeigen müssen (wie beim check_mk Setup festgelegt) und user, welchem man einen lokalen User angibt, der auf dem Socket Zugriff hat (idr. den Nagios User). Mit only_from lässt sich der Zugriff noch auf eine mit Leerzeichen getrennte Liste von IPs einschränken.
Zum Abschluss nicht vergessen, Apache und xinetd neu zu starten.
Einrichten der Viewing Site
Dies läuft nun mit und ohne OMD fast gleich. Auch hier setze ich voraus, das die Multisite GUi bereits aufgesetzt ist. Auch in der Apache Config zu der GUI sollte der gleiche AuthName wie bei den Monitoring sites gesetzt werden.
Bei einer normalen Installation liegt die Config dafür unter /etc/apache/conf.d/zzz_check_mk.conf, bei OMD wie bereits beschrieben in der entsprechenden auth.conf Datei.
In der multisite.mk setze ich nun noch meine Monitoring Site. Gehen wir hier mal von zwei Sites aus:
"monitoringsite1": { "alias": "Server1", "socket": "tcp:monitoringsite1:6559", "url_prefix": "/path1/", }, "monitoringsite2": { "alias": "Server2", "socket": "tcp:monitoringsite2:6559", "url_prefix": "/path2/", },
Um die Werte mal kurz zu erklären: Socket sollte klar sei, Adresse des Servers und Port wie in xinted festgelegt bzw. wie mit omd config eingestellt. url_prefix ist nun wichtig. Hier kommt bei OMD jeweils der Sitename der Monitoring Site rein, bei einer normalen Installation der besagte Prefix, welchen wir bei der Voreinrichtung gesetzt haben. Wie gesagt, der Prefix muss immer unterschiedlich sein. Sommit dürfen auch die Monitoring Sites im OMD nicht gleich benannt sein.
Und nun kommt der Trick, damit wir Daten (pnp Graphen) in der Viewing Site sehen können, obwohl sie auf der Monitoring Site liegen. Wir sagen dem Apachen auf der Viewing Site: bekommst du eine Anfrage auf den Pfad http://viewingsite/path2, leite das im Hintergrund auf http://monitoringsite/path2 um. Spätestens jetzt ist verständlich, warum wir zuvor auf den Monitoring Sites, den Alias um einen Prefix erweitert haben (path2 im Beispiel).
Und wie funktioniert das nun? Mit folgenden zusätzlichen Einträgen in der Apache Config (z.B. als multisite.conf in /etc/apache2/conf.d)
RewriteEngine On RewriteRule ^/.+/pfad1/(.*) http://monitoringsite1/pfad1/$1 [P] RewriteEngine On RewriteRule ^/.+/pfad2/(.*) http://monitoringsite2/pfad2/$1 [P]
Apache restart nicht vergessen.
Die Multisite GUI auf der Viewing Site sollte nun alle Nagios-Objekte der Monitoring Sites sehen. Vor allem pnp Graphen sollten ohne Error 404 angezeigt werden. Auch darf dabei nicht wieder ein Passwort abgefragt werden (die htpasswd Dateien müssten natürlich synchron sein).
Ist die Doku unklar oder lässt Fragen, einfach melden.
ich versuche krampfhaft zwei Rechner (evtl. auch mal mehr)
mit Nagios check_mk und OMD auf einer Multisite anzuzeigen.
Bei der Einrichtung mit der GUI kommt es immer wieder zu Fehlern (spätestens beim Verbinden; aber auch nach dem erseten sysnc sehen ich keine Hosts der entfenrten Maschine) Mir ist die Bedeutung der einzelnen Felder nicht ganz klar. Wer ist Status Host ?was ist monitoring site? Was ist der Unterschied zw. peer und Slave. Gibts irgendwo eine deutsche Doku dafür? Und muss ich bei der Nutzng der GUI noch den Apachen anfassen?