CheckMK ist eine Monitoring-Lösung, die mit einer Datenhaltungs- und Visualisierungsschicht daherkommt und für die es Agenten zur Datensammlung und -übermittlung gibt. In Grenzen sind auch Datensammlungen ohne Agenten möglich. Dann greift der CheckMK-Server direkt auf bestimmte Daten zu.
CheckMK kann man direkt auf einem Server installieren, per Docker oder als Appliance herunterladen (Downloadseite). Es gibt vier Editionen: RAW, Enterprise Cloud und MSP. Die jeweiligen Unterschiede können auf der Homepage von CheckMK verglichen werden. Ich beschreibe hier die Installation der dauerhaft lizenzkostenfreien Open Source RAW-Edition, die für meine Zwecke ausreicht.
Für Ubuntu und Debian werden passende Pakete angeboten. Zunächst lädt man die entsprechenden Pakete herunter:
Die Version ist hier natürlich jeweils anzupassen. Für die Überprüfung des Pakets setzt man den Befehl
gpg --verify check-mk-raw-2.3.0p26_0.noble_amd64.deb
ab. Ggf. ist vorher das Paket gpg zu installieren:
sudo apt install gpg
Dann kann man die eigentliche Software installieren mit:
sudo apt install ./check-mk-raw-2.3.0p26_0.noble_amd64.deb
Bei meinen Installationen erscheint aktuell immer die Warnung:
N: Download is performed unsandboxed as root as file '/home/andreas/check-mk-raw-2.3.0p26_0.noble_amd64.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
Das bekomme ich auch nicht weg, indem ich die Berechtigungen für diese DEB-Datei ändere, sie als Root herunterlade oder sonst irgendwelche Verrenkungen vornehme. Man kann die Warnung aber ignorieren. Der Befehl
omd version
zeigt mit dem Ergebnis
OMD - Open Monitoring Distribution Version 2.3.0p26.cre
an, dass die Installation erfolgreich war.
Um Systeme überwachen zu können, ist zunächst eine Site einzurichten. Eine Site kann als eine Sammlung von überwachten Systemen betrachtet werden. Sinnvoll mag zum Beispiel eine Site pro Standort, Datacenter, Cluster oder für alles, was man überwachen möchte, sein. Eine Site wird auf der Konsole mit
sudo omd create {sitename}
erstellt. Dabei ist der Sitename natürlich frei wählbar. Im Folgenden wird von einer Site namens "monitoring" ausgegangen. Wenn keine Fehler auftreten, dann wird die Erstellung der Site durchgeführt und es erscheint eine Meldung wie folgende:
The site can be started with omd start monitoring.
The default web UI is available at http://rechnername/monitoring/
The admin user for the web applications is cmkadmin with password: MdegbgR0p0qr
For command line administration of the site, log in with 'omd su monitoring'.
After logging in, you can change the password for cmkadmin with 'cmk-passwd cmkadmin'
Man kann sich also auf der Weboberfläche mit dem URL
"http://rechnername/monitoring" anmelden, wenn im Netz der
Rechnername entsprechend aufgelöst wird. Ansonsten verwendet
man hier natürlich die IP-Adresse des Servers. Das
Initialpasswort für den User cmkadmin wird bei der Generierung
der Site erstellt und hier angezeigt. Damit kann man sich
anmelden und sollte als erstes ein neues Passwort unter
"user/change password" ein neues Passwort vergeben, das
übrigens mindestens 12 Zeichen lang sein muss.
Unter "user/Edit Profile" kann man die Anzeigesprache ändern und allerlei Anpassungen an der Oberfläche vornehmen.
Natürlich macht die ganze Überwachung nur dann Sinn, wenn wir Überwachungsergebnisse bzw. relevante Ereignisse mitbekommen und darauf adäquat reagieren. Es gibt verschiedene Möglichkeiten, Meldungen abzusetzen. Im Folgenden beschreibe ich die Benachrichtigung per eMail
Damit der CMK-Server eMails senden kann, muss man zunächst die dazu erforderliche Software installieren und konfigurieren. Zunächst meldet man sich auf der Shell des Hosts als root an. Dann installiert man die benötigten Pakete
sudo apt install postfix libsasl2-modules -y
Dann muss man die Datei "/etc/postfix/main.cf" bearbeiten.
nano /etc/postfix/main.cf
Dort kommentiert man die Zeichenkette "relayhost =" aus und fügt ein:
relayhost = smtpserver:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_CAfile = /etc/postfix/cacert.pem smtp_use_tls = yes sender_canonical_classes = envelope_sender, header_sender sender_canonical_maps = regexp:/etc/postfix/sender_canonical_maps smtp_header_checks = regexp:/etc/postfix/header_check
Danach muss man die Absenderadresse anpassen:
sudo nano /etc/postfix/sender_canonical_maps /.+/ cmk@absender.koeln
zweimal:
sudo nano /etc/postfix/header_check /From:.*/ REPLACE From: cmk@absender.koeln
Die Benutzerdaten sind gesichert zu hinterlegen:
sudo nano /etc/postfix/sasl_passwd accountname.smtpserver.com:587 {Username}:{Passwort}
und daraus eine gehashte Datenbankdatei zu erstellen:
sudo postmap /etc/postfix/sasl_passwd
Nun müssen die Zugriffsrechte angepasst werden:
sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
und Postfix ein allgemeines Zertifikat zugewiesen werden:
sudo cat /etc/ssl/certs/ssl-cert-snakeoil.pem | tee -a /etc/postfix/cacert.pem
Danach ist der Postfixdienst neu zu starten:
sudo postfix reload
Falls noch nicht geschehen, installiert man noch mail-utils:
sudo nano mail-utils
Danach kann man das wieder auf der Shell testen:
echo "Proxmox SMTP Test" | mail -s "SMTP Test" mail@hanswurst.de -r cmk@absender.koeln
Benachrichtigungen werden über Kontaktgruppen zugeordnet. Standardmäßig gibt es die Kontaktgruppe "all", die wir verwenden können, der aber niemand zugeordnet ist. Das ändern wir, indem wir über "Setup/Benutzer" für den gewünschten Benutzer (im Zweifel ist das "cmkadmin") die Kontaktgruppe (hier heißt sie dann "Everything", damit es nicht zu einfach wird) anhaken.
Auf dieser Seite können wir, falls noch nicht geschehen, die eMail-Adresse des Users eintragen und außerdem unter "Benachrichtigungen" anhaken: "Fallback-Benachrichtigungen empfangen".
Unter "Setup/Ereignisse/Benachrichtigungen" werden die vorhandenen Benachrichtigungsregeln angezeigt. Hier gibt es zumindest eine Regel "0". Die wird mit Klick auf das Stiftsymbol bearbeitet. Hier müssen wir zumindest die Kontakgruppe "Everything" eintragen. Wenn das gespeichert wurde, sollten Benachrichtigungen an die entsprechende eMail-Adresse gesendet werden. Was und wie gesendet wird, könnte man nun noch fein granuliert einstellen. Viel Spaß dabei.
Bevor man Hosts der Site hinzufügt, ist es höchst ratsam, zunächst den CheckMK-Agenten auf dem Host zu installieren. Ohne Agent ist nur eine sehr rudimentäre Überwachung möglich. Die Agenten findet man auf der Seite der laufenden CMK-Instanz und Site unter "Setup/Agenten/Linux"
Den entsprechenden Link kann man sich einfach in die Zwischenablage kopieren. Auf der Konsole des zu überwachenden Hosts lädt man den Agenten dann über das lokale Netz vom Server herunter:
wget http://{IP-Adresse des CMK-Servers/{Name der Site}/check_mk/agents/{Agent-Name}.deb
also mit "wget" und Paste aus der Zwischenablage. Da wir das von unserem eigenen Server heruntergeladen haben, würde ich sagen, wir vertrauen der Quelle ohne weitere Überprüfung und installieren den Agenten mit
sudo dpkg -i {Agent-Name}.deb
installieren.
Der zu überwachende Host muss dem CMK-Server hinzugefügt und der Agent muss beim CMK-Server registriert werden. Zunächst fügt man auf der Web-GUI des CMK-Servers unter "Setup/Hosts/Host hinzufügen" den neuen Host einfach mit seiner IP-Adresse hinzu. Mehr muss man zunächst nicht eingeben.
Dann gibt man auf der Konsole des zu überwachenden Hosts ein:
sudo cmk-agent-ctl register --server <SERVER> --site <SITE> --user <USER> --password <PASSWORD>--hostname <HOSTNAME>
Dabei ist "<SERVER>" der DNS-Name oder die IP-Adresse des CMK-Servers. User und Password sind dementsprechend die Credentials des CMK-Users auf dem CMK-Server und Hostname ist der Name des zu überwachenden Servers. Wenn dabei kein Fehler auftritt, wird auf der Konsole ein Zertifikat angezeigt (das man aber nicht zu sichern braucht) und man wird gefragt, ob man diese Verbindung etablieren möchte. Was man natürlich mit "y" bestätigt.
Danach geht man wieder auf die Weboberfläche des CMK-Servers und klickt auf "Setup/Hosts" und wählt dort das Stiftsymbol vor dem entsprechenden Host an. Auf der nun erscheinenden Seite kann man die Eigenschaften des Hosts bearbeiten. Wir wählen hier unter "Monitoring Agenten" "Configured API Integrations and Checkmk agent" aus und klicken auf "Speichern und Service-Erkennung durchführen".
Die erkannten Services übernehmen wir natürlich und dann beginnt das Feintuning für die verschiedensten Metriken und Parameter. Viel Spaß dabei.
Updates neuer Versionen sind recht einfach zu installieren. Dabei ist zu beachten, dass keine Hauptversion übersprungen werden darf. Wer also z.B. von 2.1.x auf 2.3.x updaten will, muss zuerst ein Update auf 2.2.x durchführen. Für das eigentliche Update lädt man das aktuelle Paket herunter und installiert es (s.o.). Es sind dann mehrere Versionen installiert und die jeweils letzte wird als default eingestellt. Das kann man sich mit dem Befehl:
omd versions
anzeigen lassen. Der eine Ausgabe wie folgt erzeugt:
2.3.0p14.cre
2.3.0p26.cre (default)
Das macht durchaus Sinn, denn zunächst sind noch die Sites mit der bisherigen Version unterwegs, was man sich mit dem Befehl
omd sites
ansehen kann. Um die Version einer Site zu ändern, muss man sich auf der Konsole an der Site mit
sudo omd su <Sitename>
anmelden. Zunächst stoppt man die Site
omd stop
und updatet sie
omd update
Falls es mehrere Zielversionen gibt, die aktueller sind als die derzeit verwendete, erscheint ein grafischer Dialog zur Auswahl der Version. Außerdem erscheint in jedem Fall eine Sicherheitsabfrage, die zunächst bestätigt werden muss. Wenn es keine Fehlermeldung gibt, dann kann man sich die aktuell verwendete Version mit
omd version
anzeigen lassen. Nun muss man sie aber auch wieder starten mit
omd start