05/2014

Check_mk als -Alternative Titelthema Ausreißer Check_mk

34 Check_mk hat zurzeit Rückenwind: Es gilt nicht mehr als schnödes Nagios-Plugin und seine Oberfläche Multi-

site lässt die Konkurrenz alt aussehen. Doch wird Check_mk diesem Ruf in der Praxis gerecht? Holger Gantikow www.-magazin.de

wachen will und wie er alle Ergebnisse in einem Rutsch zurück. dies möglichst optimal Das erfordert nur eine einzige Verbin- mittels Hostgruppen und dung (Abbildung 1, rechts). Templates abbildet, da- Auch Nagios wertet anders aus: Mit dem mit seine Konfiguration Nagios Remote Plugin Executor (NRPE) wartbar bleibt. Zugleich stupst es in der Regel ein Plugin auf dem wächst aber die Last auf Host an, das etwa die RAM-Auslastung dem Nagios- mit je- misst. Das Plugin erhält einige Schwel- der Erweiterung: Je mehr lenwerte und liefert einen Status zurück Dienste und Hosts dieser (»OK«, »Warning«, »Critical«). überwacht, desto mehr Check_mk bewertet die Ergebnisse hin- wird die Serverhardware gegen erst auf dem Server. Dies hat den zum Engpass. Die Anzahl positiven Nebeneffekt, dass die Agents der „aktiven Checks“ pro auf den zu überwachenden Hosts keine Prüfintervall bestimmt, weitere Konfiguration benötigen. Der wie leistungsfähig der Check_mk-Server filtert die von den Server sein muss (Abbil- Agenten gelieferten Daten mit Hilfe der

© Ljupco Smokovski, 123RF Smokovski, © Ljupco dung 1, links). Konfigurationsparameter und Schwellen- werte, die der Admin festgelegt hat, und Wer den Zustand von mehr als einer Check_mk am Start schickt die Ergebnisse an Nagios weiter. Handvoll Systeme im Blick behalten möchte, muss auf handgestrickte Shell- Speziell gegen diese beiden Probleme, Testlauf skripte oder gelegentliche Kontrollen gegen die komplexe Konfiguration und verzichten und braucht ein vollwertiges die hohe Serverlast, möchte Check_mk Ob Check_mk hält, was es verspricht, Monitoring. Der freie Klassiker hierfür ist [2] vorgehen. Im Jahr 2008 vom Münch- soll das Testszenario (siehe Kasten „So das altbekannte Nagios. ner Mathias Kettner als Ein-Mann-Projekt haben wir getestet“) zeigen. Beide Sys- Ungeachtet aller Beliebtheit hakt es je- gestartet, entwickelte sich das 2009 unter teme nutzen als Basis 12.04.4 doch in traditionellen Nagios-Setups an GPL veröffentlichte Nagios-Plugin rasch LTS (die 64-Bit-Ausgabe) sowie alle not- mehreren Stellen. So zeichnet Nagios sich weiter und stand bei Monitoring-Exper- wendigen Pakete aus dem hauseigenen nicht gerade durch eine einsteigerfreund- ten recht bald hoch im Kurs. Mehrere Universe-Repository, die einen vermeint- liche Konfiguration aus und verursacht Entwickler pflegen das Projekt nach wie lich schnellen Einstieg versprechen. Im durch eine wachsende Zahl zu überwa- vor äußerst aktiv, die Firma hinter dem Paketdepot fand der Tester jedoch neben chender Systeme und Dienste sowohl Projekt vertreibt heute auch Appliances. einem betagten Check_mk 1.1.12 (aktuell beim Admin als auch beim Monitoring- Check_mk ist also aus seinem Status als ist Version 1.2.4) nur ein vormodernes System einen steigenden Puls. Nagios-Plugin herausgewachsen. 1.6.1 (aktuell ist 1.10.1). Der Arti- So muss der Nagios-Neuling nach der Das leistungssteigernde Konzept ist so kel verwendet im Folgenden Icinga und Installation genau überlegen, auf wel- einfach wie genial: An die Stelle der zahl- Nagios synonym, wobei Check_mk auch chen Systemen er welche Services über- reichen aktiven Nagios-Checks tritt ein unterstützt. Shellskript als Client-Agent, der seine DELUG-DVD Ergebnisse als passive Checks an den Stolpersteine DELUG-DVD Nagios-Server übermittelt. Fragt das Ser- Auf der DELUG-DVD befinden ver-Plugin die Check_mk-Agenten auf Warum Ubuntu für die Universe-Paket- sich - und RPM-Pakete des Check_mk- den zu überwachenden Hosts ab, prüfen quelle keinen Support anbietet, wird Agenten sowie Check_mk 1.2.4 selbst. diese eine Vielzahl von Daten und liefern schnell klar. Denn wer erwartet, dass 05/2014 Titelthema ! " Nagios- Nagios- Nagios-Server Nagios-Client Server Client

Check 1 Agent Check_mk Check_mk Eine Abfrage Check 2 für beliebig viele Checks 35 Check 3 Nagios Pro Check CPU RAM Smart eine Abfrage www.linux-magazin.de Abbildung 1: In einem klassischen Setup (!) baut Nagios eine Verbindung pro Check auf, was den Monitoring-Server belastet. Check_mk (") übermittelt hingegen alle Ergebnisse in einem Rutsch und spart auf diese Weise Ressourcen. die angeblich an Icinga angepasste Nach dem Installieren der Agents prüft Tag »guest«. Für so markierte Systeme Check_mk-Konfiguration des Pakets der Admin jeweils, ob der »xinetd«-Super- kann der Systemverwalter abweichende »check‑mk‑config‑icinga« als Abhängig- server läuft, und setzt gegebenenfalls in Schwellenwerte oder alternative Abfra- keit auch Icinga selbst auflistet, wird der Konfigurationsdatei »/etc/xinetd.d/ gemechanismen definieren. enttäuscht. Ähnliches gilt für das Paket check_mk« die Option »disable = no«, Wer der Verfügbarkeit seines DNS-Ser- »check‑mk‑agent«, das den Agenten im da sonst der Verbindungsaufbau zum vers nicht traut, kann zudem die Python- Schlepptau hat, der auf den zu über- Check_mk-Agent über TCP-Port 6556 Dictionary-Datenstruktur »ipaddresses« wachenden Systemen läuft. Ihn soll der nicht klappt. befüllen, wodurch der Monitoring-Server Daemon »xinetd« starten, doch installiert Sicherheitsbewusste Administratoren DNS-Lookups umgeht. Weitere Tipps und Ubuntu 12.04.2 Letzteren nicht automa- schränken über die Einstellung »only_ Syntax-Fragen beantwortet die Check_ tisch – hier müssen die Paketmaintainer from« den Zugriff auf den Check_mk- mk-Dokumentation [4]. dringend nachbessern. Agenten ein, und zwar auf die IP-Adresse Aufgrund der unsauber definierten Ab- des Monitoring-Servers. Dies ist keine Das Inventar hängigkeiten dauert die händische Instal- wirklich saubere Lösung, weil Abfragen lation von Check_mk 1.2.4 kaum länger und Daten weiterhin unauthentifiziert Nun ist der ebenso spannende wie ein- und lohnt sich, weil es neue Features und unverschlüsselt im Klartext durch förmige Augenblick gekommen, in dem und eine doppelte Anzahl an Checks mit- das Netzwerk rauschen, aber ein Anfang. »check_mk ‑I« alle Hosts in der Datei bringt – insgesamt 491. Wie der Admin Anleitungen im Netz [3] beschreiben, »main.mk« automatisch inventarisiert. In die Software auf den Server spielt, doku- wie ein Check_mk-Nutzer den Daten- diesem Zuge liefern die Agenten auf den mentiert Listing 1. Ein Installationsskript transport mittels SSH absichert – alter- Hosts alle dort gefundenen und überprüf- ermittelt die meisten notwendigen Para- nativ kann er mit Stunnel arbeiten. Wer baren Items an den Server zurück. Diese meter automatisch. zudem wissen möchte, welche Informa- Items dürfen fast beliebiger Natur sein Wer nicht nur die Hosts, sondern auch tionen der überwachte Host an den Mo- und zeigen beispielsweise die Auslastung den Monitoring-Server selbst überwa- nitoring-Server zurückliefert, kann sich von Systemressourcen wie der CPU und chen möchte, braucht dort ebenfalls das über »nc Hostname 6556« die noch nicht des Arbeitsspeichers oder die Zustände Agenten-Paket. Die Prozedur aus Listing ausgewerteten Rohdaten holen. von Diensten an – die Möglichkeiten sind 2 installiert das »check‑mk‑agent«-Paket vielfältig. nicht nur auf den Hosts, sondern auch Unter Beobachtung Der Befehl »check_mk ‑L« listet alle ver- auf dem Server. Eine RPM- und eine De- fügbaren Checks auf, der Befehl »check_ bian-Variante des Pakets finden sich auf Die zu überwachenden Systeme macht mk ‑M Check« liefert Details zu Schwel- der DELUG-DVD. der Admin schnell mit Check_mk be- kannt. Hierzu genügt auf dem Moni- Listing 1: Installation von Check_mk

So haben wir getestet toring-Server ein Eintrag in die Datei 01 wget http://mathias‑kettner.de/download/ In Kombination mit Icinga ist Check_mk im »/etc/check_mk/main.mk«. Der muss, check_mk‑1.2.4.tar.gz Test auf einem Hostsystem gelaufen und hat wie alle Check_mk-Konfigurationsda- 02 tar xvfz check_mk‑1.2.4.tar.gz dabei den Host selbst sowie eine virtuelle teien, in Python verfasst sein. Listing 03 cd check_mk‑1.2.4/ Maschine, auf der mehrere Dienste aktiv wa- 3 stellt dies für den Monitoring-Server 04 ./setup.sh ren, überwacht. Beide haben Ubuntu 12.04.4 »mon-host-ubu« und die virtuelle Ma- LTS verwendet. Damit der Admin im Fehlerfall schine »mon-vm-ubu« dar. Hosts versieht Listing 2: Agent installieren eine Benachrichtigung erhielt, installierten der Admin dabei mit optionalen Host- 01 wget http://mathias‑kettner.de/download/ die Tester auf dem Monitoring-Server eine Tags, die ein Pipe-Zeichen trennt. Im check‑mk‑agent_1.2.4‑2_all.deb Mail-Konfiguration. Beispiel trägt die virtuelle Maschine das 02 dpkg ‑i check‑mk‑agent_1.2.4‑2_all.deb 05/2014 Titelthema nen Webbrowser, über finieren. Bei beiden half Mathias Kettners den er Zugriff auf das Remote Plugin Executor, besser bekannt grafische Frontend der unter dem Namen MRPE-Agent. Das be- Wahl erhält, im Test wusst einfach gehaltene Beispiel wertet

Check_mk war dies zunächst das für Samba den Rückgabewert eines lokal Icinga-Webinterface. auf dem Samba-Server abgesetzten Smb- client-Aufrufs aus. Für Vsftpd wählten 36 Weitere die Tester ein ähnliches Verfahren: Hier Plugins öffnete Netcat eine Verbindung auf Port 21 des FTP-Servers. Im Testszenario leis- Listing 4 zeigt exemplarisch das selbst

www.linux-magazin.de tete Check_mk, wie in erstellte Smbclient-basierte Plugin, das der Werbung verspro- der MRPE dann aufruft. Wer mit dem chen, gute Dienste Skript lieber Vsftpd überwachen möchte, Abbildung 2: Die moderne Weboberfläche Multisite zeigt den Zustand des beim automatischen ersetzt den einzeiligen Smbclient-Aufruf überwachten Systems an. Sie erwartet die Logindaten vom Icinga-Setup. Erkennen der mögli- durch den Eintrag »/bin/nc ‑v ‑z local- chen Checks. Es über- host 21 >/dev/null 2>&1« und passt die lenwerten und eventuell notwendigen wachte ohne Umstände die Auslastung Ausgabe an. Abhängigkeiten zurück. Ein Plus dieser von Systemressourcen und erkannte auch Nach dem Schreiben der Skripte trägt der Automatik: Der Admin muss sich vorher die Warteschlangen von Cups und Postfix Admin die folgenden Zeilen in die Datei keine Gedanken darüber machen, was er ohne weiteres Zutun. Auch den Status »/etc/check_mk/mrpe.cfg« ein: auf den jeweiligen Systemen überwachen von Apache erkennt Check_mk, sofern Samba /usr/local/mrpe/check_smbclient möchte: Die automatische Diensterken- es auf dem Webserver die Seite »server- VSFTPD /usr/local/mrpe/check_vsftpd nung prüft vielmehr, was möglich ist, status« erreicht, was bei Ubuntu auch so und liefert eine komplette Liste zurück. vorkonfiguriert ist. Hat der Systemverwalter die Konfigura- Das reduziert den Pflegeaufwand beim Über diese Seite greift die Monitoring- tion angepasst, muss er noch die Hosts Einbinden von Dienstüberprüfungen Software auf eine Reihe von Apaches über »Check_mk ‑II« neu inventarisie- deutlich. Leistungsparametern zu, etwa die Anzahl ren und die Nagios-Konfiguration mit- Das so ermittelte Inventar bildet die der Zugriffe oder die Laufzeit des Diens- tels »check_mk ‑R« erneut erstellen und Grundlage für automatisch erzeugte tes. Die Werte fragt dann zum Beispiel aktivieren. Checks und die passend generierte Na- das Check_mk-Plugin »apache_status« Nach getaner Konfigurationsarbeit gios-Konfiguration. Beide Vorgänge stößt ab, das der Admin auf dem System im möchte der Betrachter meist wissen, ob »check_mk ‑R« an. Der Befehl erstellt Verzeichnis »/usr/lib/check_mk_agent/ auf seinen Systemen alles rund läuft. nicht nur vorkompilierte Checks zur Ver- plugins/« ablegt. Statt ständig auf das Webinterface zu besserung der Geschwindigkeit, sondern Hierhin gehört auch das MySQL-Plugin starren, kann er sich auch aktiv über spuckt auch eine Nagios-Konfiguration »mk_mysql«, das zusätzlich noch Konfi- Ausfälle informieren lassen. Hierzu bie- aus und startet den Monitoring-Core neu. gurationsparameter in »/etc/check_mk/ ten sich Benachrichtigungen via E-Mail Diesen Schritt muss der Admin immer mysql.cfg« erwartet. Die Datei darf nur an. Listing 5 entwirft eine einfache Be- dann wiederholen, wenn er Hosts hinzu- Root lesen, da sie das MySQL-Root-Pass- nachrichtigung, die einen Kontakt über fügt, entfernt oder neue Checks findet, wort enthält. Laut Check_mk-Dokumen- Statusänderungen auf den Hosts infor- also wenn er das Setting ändert. tation [5] besteht kein Weg, auf dem miert. Sie lässt sich in der Datei »/etc/ Neugierige Admins untersuchen nun User mit Nur-Lesezugriff an die nötigen Check_mk/conf.d/contacts.mk« einrich- mit »check_mk ‑N« die generierte Na- Statusinformationen kommen. ten. Die »notification_options« basieren gios-Konfiguration oder lassen sich über Die Smart-Werte auf dem Monitoring- auf den Optionen von Nagios [6]. »check_mk ‑v Hostname« auf der Konsole Server ermittelt der Systemverwalter, in- den Gesundheitszustand ihres Systems dem er das Smart-Plugin im Verzeichnis Sichtbarer Mehrwert anzeigen. Weitere Konfigurationsschritte »/usr/share/check_mk/agents/plugins/ sind nicht notwendig. Die Konsole er- smart« verstaut und die Smartmontools Wer Check_mk bislang nur als „Nagios setzt der Admin auf Wunsch durch ei- installiert. Im Test benörgelte ein Check Check Multiplexer“-Plugin kannte, wird die zu hohe Festplattentemperatur. überrascht sein, was inzwischen alles Listing 3: Überwachte Systeme zum Lieferumfang der Software gehört. definieren Eigenbedarf Seit geraumer Zeit ist das GUI Multisite 01 # Put your host names here (Abbildung 2) Teil von Check_mk. Es 02 all_hosts = [ Wider Erwarten befand sich im Liefer- enthält vieles, was der Admin in einem 03 'mon‑host‑ubu', umfang kein Check für die installierten normalen Nagios- oder Icinga-Frontend 04 'mon‑vm‑ubu|guest', Samba- und Vsftpd-Server. Hier bot sich vermisst, und zeichnet sich zudem 05 ] im Test die Chance, eigene Checks zu de- durch eine hohe Geschwindigkeit aus. 05/2014 Titelthema Der Administrator spielt Tool, das sowohl den Admin als auch den diese Komponenten im Ver- Monitoring-Server entlastet und zudem lauf eines normalen Setup-­ in größeren Setups skaliert [8]. Die pas- Prozesses von Check_mk siven Checks fordern vom Monitoring-

ein, was lediglich die Exis- System wesentlich weniger Ressourcen Check_mk tenz von »make« und eines als die Alternativen, und Admins Herz ++-Compilers auf dem schlägt durch die im Vergleich zu Nagios System erfordert. In der vereinfachte Konfiguration vor Freude 37 auf Ubuntu beruhenden etwas schneller. Testumgebung waren hier Außerdem haben bei Check_mk nicht im Nachgang zwar einige nur Konsolenmuffel mit dem in Multisite

kleinere Hürden bezüglich integrierten Web Administration Tool die www.linux-magazin.de der Zugriffsrechte zu meis- Möglichkeit, sich ihr komplettes Monito- tern, was einen erfahrenen ring grafisch zu konfigurieren, sie kön- Abbildung 3: Multisite sorgt auf kleinen Bildschirmen für Übersicht, Linux-Admin allerdings nen sich Warnungen und Nachrichten der Admin behält auch unterwegs seine Hosts und Dienste im Blick. nicht vor eine unlösbare auch sogar auf dem Smartphone anse- Aufgabe stellt. hen. Wer ohnehin Nagios oder Icinga im Das Nagios-Broker-Modul Livestatus, Dass Ubuntu in der Standardinstallation Einsatz hat, sollte einen Gedanken darauf das direkten Zugang zu Statusdaten von seinen Apache von »apache2‑mpm‑pre- verwenden, sich Check_mk mit ins Boot Hosts und Services bietet, sorgt hier für fork« auf »apache2‑mpm‑worker« um- zu holen, selbst wenn er auf die neueren einen Geschwindigkeitsschub. Multisite gestellt hat, mit dem das für Multisite erweiterten Möglichkeiten eventuell ver- ermöglicht zudem verteiltes Monitoring notwendige »mod_python« (im Paket zichten kann. (kki) n auf mehreren Servern. Benutzer können »libapache2‑mod‑python«) nicht mehr Ansichten definieren, daneben bietet das läuft, erforderte dagegen im Test ein we- Listing 4: Check_mk mit MRPE- Webinterface eine Optimierung für mo- nig mehr Recherche. Agenten erweitern bile Clients, wie sie Abbildung 3 zeigt. 01 #!/bin/sh Das kommt besonders mobilen Admins Fazit 02 UNKNOWN=3 zugute, die gern mit Tablets und Smart- 03 CRITICAL=2 phones hantieren [7]. Wer eine große Umgebung mit vielen 04 WARNING=1 Das komplette System lässt sich dank Checks oder Hosts überwachen muss, 05 OK=0 Web Administration Tool (Wato) aus dem der findet in Check_mk ein passendes 06  07 /usr/bin/smbclient ‑L localhost ‑N >/dev/null 2>&1 Browser heraus konfigurieren, was neben 08  Anpassungen von Hosts und Services 09 if [ $? ‑eq 0 ]; then beispielsweise die nur kurz angerissene Infos 10  echo "OK ‑ Samba is up and running" Konfiguration von Benachrichtigungen [1] Listings zu diesem Artikel: 11  exit ${OK} deutlich vereinfacht oder das Anlegen [http://​­www.​­linux‑magazin.​­de/​­Ausgaben/​ 12 else von aktiven Checks ermöglicht. So schaut ­Listings/​­2014/​­05/​­check_mk/] 13  echo "CRITICAL ‑ Samba is not running" der Admin auch den Diensten Apache, [2] Check_mk: 14  exit ${CRITICAL} Vsftp oder Samba problemlos von außen [http://​­mathias‑kettner.​­de/check_mk.html] 15 fi auf die Finger. [3] Transport über SSH sichern: Nicht zuletzt verarbeitet eine Eventkon- [http://​­mathias‑kettner.​­de/ Listing 5: E-Mail-Benachrichtigung sole SNMP-Traps und Logmeldungen. Ein ​­checkmk_datasource_programs.​­html] für Check_mk

Business-Intelligence-Modul aggregiert [4] Dokumentation zu Check_mk: 01 define_contactgroups = True aus einzelnen Zuständen eine bessere [http://mathias-kettner.de/checkmk.html] 02 host_contactgroups = [ Sicht auf das möglicherweise komplexe [5] Monitoring von MySQL: [https://​ 03  ("administrators", ALL_HOSTS), Gesamtsystem, was die Auswirkungen ­mathias‑kettner.​­de/​­checkmk_mysql.​­html] 04 ] kleiner Störungen sichtbarer macht. [6] Benachrichtigungsoptionen in Nagios: 05 contacts.update( [http://​­nagios.​­sourceforge.​­net/​­docs/​­3_0/​ 06  { 07  "hhirsch": { ­objectdefinitions.​­html] 08  "alias":"Harry Hirsch", Der Autor [7] Holger Gantikow, Markus Feilner, „Der Ad- 09  "contactgroups":[ "administrators" ], Holger Gantikow hat an der Hochschule Furtwan- min-Touch – Linux Remote Administration 10  "email":"[email protected]", gen Informatik studiert und ist bei der Science unter Android und I-OS“: Linux-Magazin 11  "notification_method":"email", + Computing AG in Tübingen als Senior Systems 12/​13, S.68 12  "host_notification_options":"dufr", Engineer tätig. Dort beschäftigt er sich mit der [8] Tobias Eggendorfer, Robert Koch, Markus 13  "service_notification_options":"wucrf", Komplexität heterogener Systeme im CAE-Be- Feilner, „Auf einen Blick – Performance und 14  }, rechnungsumfeld und betreut Kunden aus dem Handling großer Nagios-Infrastrukturen 15  }, technisch-wissenschaftlichen Bereich. vereinfachen“: Linux-Magazin 10/​09, S. 86 16 )