In diesem Teil gehe ich auf die Installation und die wichtigste Konfiguration für Checkmk ein.
- Verzeichnisse
- Begriffe
- Zertifikat für das Frontend installieren
- Debuggen
- Backup & Restore
- Notification via E-Mail und MS_Teams
- Checkmk Exchange
Download und Installation
Am besten man hält sich an die original Anweisungen.
https://checkmk.com/de/download
Wo ist was:
Im Verzeichnis /opt/omd/sites/
sind die sites von omd konfiguriert.
Unter /etc/apache2/conf-available/zzz_omd.conf findest Du den Link auf die apache confs im omd Verzeichnis
Logfiles: /opt/omd/sites/YOURSITENAME/var/log/
OMD Befehle: https://checkmk.com/de/guides/open-monitoring-distribution
Checkmk Exchange: https://exchange.checkmk.com/ um plugins runterzuladen.
Begriffe
- Threshhold … Parameter die Checkmk sagen wann sie in den State „Warning“ oder „Critical“ gehen soll. e.g. Der Servicececk für ein Serverzertifikat könnte 15 Tage vor Ablauf in den Warning state gehen und 5 Tage vor Ablauf in den Critical State. Oder Warning, wenn 80% des HDD/SDD Speichers eines Hosts belegt ist.
- ?? Parameter: Wie oft soll Checmk den Status eines Services checken
- ?? Parameter: In welchem Zeitfenster sollen Notifications gesendet werden.
Start / Stop monitoring site
Einfach omd status
, omd start
oder omd stop
verwenden
Konfiguration
Der erste Host
Klicke auf Setup – Hosts und dann auf Add Host
- Hostname (valider hostname, keine Beschreibung) und IPv4 Adresse eingeben
- Klick auf Chkmk agent/API und dann wähle „No API / no Chkmk agent“ aus
- Klick auf „Save & go to service configuration
Der erste Service (Zertifikatscheck eines vhost der auf diesem Server läuft)
Klicke auf Setup und suche nach „http“ und wähle unter „HTTP, TCP, Email“ den Unterpunkt „Check HTTP services“ aus
Klicke nun auf „Add rule“
- In der Rubrik „Check HTTP service“ gib den Service Namen „SSL.check“ ein (oder wähle selber einen)
- gib nun bei den Host settings den vorher eingegebenen hostnamen ein, den TCP Port 443 und bei virtual host gibst du den Domain Namen deines VirtualHost ein
- Bei Mode of Check wählst Du „Check SSL Certificate Age“ aus und gibst e.g. 14 bei warning und 5 bei Critical ein
- Bei den Conditions musst Du Explicit hosts anklicken und dann Deinen vorher eingegebenen Host auswählen.
- Speichern
Nun musst Du rechts oben auf das gelbe Rufzeichen klicken und „Activate on selected sites“ auswählen. Jetzt werden die neuen Hosts und Services abgespeichert und das Monitoring kann beginnen.
Hostname von Check MK ändern
Einfach mittels hostname Befehl. Beispiel: hostname nmc.mydomain.com
Zertifikat installieren
Erstelle ein Letsencrypt Zertifikat.
Apache config file: /etc/apache2/sites-available/nmc.yourdomain.com.conf
Füge folgenden Inhalt ein:
<VirtualHost *:80>
ServerAdmin monitoring-admin@domain.com
DocumentRoot /var/www/html
ServerName nmc.YOURDOMAIN.COM
Include /omd/apache/*.conf
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [L]
RequestHeader set X-Forwarded-Proto "https"
</VirtualHost>
<VirtualHost *:443>
ServerAdmin monitoring-admin@domain.com
DocumentRoot /var/www/html
ServerName nmc.YOURDOMAIN.COM
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/nmc.YOURDOMAIN.COM/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/nmc.YOURDOMAIN.COM/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/nmc.YOURDOMAIN.COM/privkey.pem
Include /omd/apache/*.conf
</VirtualHost>
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
Benutze a2ensite nmc.yourdomain.com.conf
um die Eite zu enablen und restarte den apache.
Analysieren und Debugging von Checkmk
Bezüglich Performance und Security gibt es vorgefertigte funktionen
Gehe auf Setup – Maintenance – Analyze configuration und staune …!
Backup und Restore von Checkmk
To be finished …
Konfiguriere eine E-Mail Notification
Du musst auf Deinem Server mails abschicken können. Zum überprüfen:
echo “Mail Inhalt” | mail -s "Mail Titel" DEINE_EMAIL
Nun füge einen Benutzer ein. Klicke dabei auf Setup – Users – Users und dann auf „Add user“
- Username: vorname.nachname
- Full name: Vorname Nachname
- Email address: Deine E-Mail Adresse
- Du kannst das Einloggen verhindern indem Du „disable the login to this account“ anklickst.
- Contact groups: Everything
Das war’s schon. Du kannst das testen indem Du einen „Fake Check“ durchführst. (Siehe nächstes Kapitel
Simulieren eines Fehlers mittels „Fake Check“
Um Notifications zu testen kann es sinn machen einen Fehler zu simulieren:
- Klicke auf das Dashboard.
- In der Service statistics klicke auf die „OK“-Services.
- Klicke nun auf das erste Service.
- Unter Commands findest Du den Menüpunkt „Fake check results“. Falls nicht musst Du auf „…“ (show more) klicken um alle Menüpunkte anzuzeigen.
- Nun gibst Du bei Pluginoutput einen beliebeigen Text ein (e.g. Dies ist ein Test) und Klickst auf Critical.
- Der Server sollte jetzt die Notification Mail absenden. (Siehe in Deiner Mailbox auch unter „Sonstige“ nach oder unter „Junk Mail“)
Erweiterungspakete von „Checkmk Exchange“ installieren
Um Notifications an MS Teams zu senden benötigt man das „Microsoft Teams Notification Plugin“. Hier zum Download.
Nun gehen sie in Checkmk auf Setup – Maintenance – Extension packages und laden das Plugin hoch.
Nun musst Du nur einen „incoming Webhook“ entsprechend der Vorgaben der „Microsoft Teams Notification Plugin“-Seite erstellen.
Unter Setup – Setup – Notifications – „Add rule“ kannst Du eine neue Notification hinzufügen.
- Description: Notify all contacts of a host/service via Teams
- Notification Method: MS-Teams
- Webhook URL: <die URL vom Incoming Webhook, den Du vorhin bei Teams eingerichtet hast>
Das wars.