Ein paar irrelevante Tutorials

CheckMK

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.

Installation der Serversoftware

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.

Site einrichten

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. 

Benachrichtigungen einstellen

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

eMail einrichten

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

Kontaktgruppen und User konfigurieren

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".

Benachrichtigungen aktivieren

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.

Hosts hinzufügen

Agenten installieren

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. 

Host in die Überwachung aufnehmen

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.

Update von CheckMK

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