Grundinstallation des Netzwerk Monitoring Tools – Checkmk (Raw Edition) |
---|
Nagios sowie die Open-Source-Anwendung Icinga sind in der IT-Welt bekannt und weit verbreitet, wir möchten uns in diesem Tutorial mit der alternativen Open Source Edition von Checkmk befassen. Die intuitiv bedienbare und moderne Web Administration Tool – Weboberfläche (WATO) erleichtert das einrichten und überwachen von Servern, Serverdiensten, Applikationen, Speicher, Datenbanken für unterschiedlichste Betriebssysteme erheblich, ganz besonders ab der Version 2.0. Aber auch andere Netzwerkkomponenten wie z.B. Switches können problemlos in die Überwachung mit aufgenommen werden. Checkmk unterstützt dabei SNMPv1 bis hin zu SNMPv3.
Ein weiters Plus zu Checkmk sind die zahlreichen, sehr detaillierten Dokumentationen in den unterschiedlichsten Sprachen. Auch unzählige Video-Tutorials im Netz u.a. durch die in den letzten Jahren stark angewachsene Community machen das Netzwerk Monitoring Tool sehr Interessant. Checkmk bietet auch bereits eine Docker-Variante an, allerdings wird aus performancegründen empfohlen eine direkte Installation auf einem Server durchzuführen, bei mir ist dieser Virtuell.
Weitere Tutorials für die Einbindung unterschiedlichster Netzwerkkomponenten folgen, jetzt soll es aber erst mal um die Grundinstallation von Checkmk gehen. Die Installation ist sehr intuitiv und in kürzester Zeit durchführbar.
Virtuelle Maschine (Checkmk Überwachungsserver) | |
Hostname | ubuntu20042 |
Grundbetriebssystem |
|
IP-Adresse (Wirt der VM) | 192.168.1.156 |
Checkmk-Version | Raw Edition - Version 2.0.0p2 |
Informationen zur Linux-Distribution und der IP-Adresse des Checkmk-Servers abrufen |
Download der aktuellsten Open Source Raw Edition von der offiziellen Checkmk-Webseite |
checkmk Raw Edition im Debian-Paket |
es gibt mehrere Möglichkeiten das soeben heruntergeladene Debian-Paket auf dem Checkmk-Linux Server abzulegen, eine davon ist das kopieren über SFTP mit Hilfe der freien Software WinSCP. Dank WinSCP ist es Möglich eine Brücke zwischen Ihrem Windows und einem Linux-System aufzubauen, grafisch und benutzerfreundlich! Nach der Installation auf Ihrem Windows-Clients starten Sie WinSCP |
Geben Sie nun die Zugangsdaten zu Ihrem Checkmk-Server ein, in unserem Fall hat der Server die IP-Adresse 192.168.1.156 und der Benutzername ist Administrator. Klicken Sie danach auf Anmelden |
Sie sind nun mit Ihrem Linux-System verbunden, ähnlich wie bei dem FTP-Client FileZilla sehen wir auf der linken Seite Ihren Windows-Client und rechts den Checkmk Linux-Server. Wechseln Sie nun links zu Ihren soeben heruntergeladenen Debian-Paket… und erstellen Sie rechts auf dem Linux-System ein neues Verzeichnis mit dem Namen checkmk |
belassen Sie die Standard-Rechte und klicken Sie auf OK |
wechseln Sie in das neu erstellte Verzeichnis auf dem Linux-System… |
und laden das Debian-Paket hoch auf den Checkmk-Server |
bestätigen Sie mit OK |
die Fortschrittsanzeige gibt Ihnen bekannt, wenn der Upload auf den Server erfolgreich abgeschlossen ist, schließen Sie nun WinSCP |
wir wechseln nun auf das Linux-System und wechseln in das Verzeichnis wo das Debian-Paket abgelegt wurdecd /home/administrator/checkmk mit dem Befehl ls -l können Sie sich den Inhalt des Ordners anzeigen lassen |
Verifizierung Alle Pakete zu Checkmk werden mittels GnuPG signiert, so kann sicher gestellt werden, dass das Checkmk-Paket auch wirklich von der offiziellen Quelle stammt,a ußerdem wird geprüft ob das Paket insgesamt vollständig ist. Für eine erfolgreiche Verifikation installieren wir das Paket dpkg-sig wie folgt: apt-get update (Advanced Packaging Tool-Paketlisten aktualisieren)apt-get install dpkg-sig |
wir laden einmalig den öffentlichen GPG-Schlüssel von der offiziellen Checkmk-Webseite herunter…wget download.checkmk.com/checkmk/Check_MK-pubkey.gpg |
und importieren diesen in die Liste der vertrauenswürdigen Signaturen mit dem Befehlgpg --import Check_MK-pubkey.gpg |
wir verifizieren nun das Checkmk-Paket mit dem folgenden Befehldpkg-sig --verify check-mk-raw-PAKET.deb |
Checkmk – Installation Für die Installation von Checkmk wird das Tools gdebi benötigt, es ist enthalten im gdebi-core-Paket und wird wie folgt installiert: apt-get install gdebi-core |
nun widmen wir uns Checkmk zu und Installieren das Paket mit allen benötigten Abhängigkeiten wie folgt:sudo gdebi check-mk-raw-PAKET.deb |
Ubuntu-Firewall konfigurieren Sollten Sie auf Ihrem Ubuntu-System die Firewall aktiviert haben, müssen Sie diese wie nun wie folgt konfigurieren um den externen Zugriff auf den Apache2-Webserver zu ermöglichen… sudo ufw allow Apache sudo ufw allow http sudo ufw allow https Konfiguration prüfen sudo ufw status Status-Ausgabe Status: active ab sofort sollte der uneingeschränkte Zugriff auf die Checkmk-Weboberfläche möglich sein |
Erstellen der ersten Checkmk – Instanz Das Checkmk Monitoring System baut auf dem von Mathias Kettner gegründeten Open-Source-Projekt Open Monitoring Distribution (OMD), welches eine komfortable und flexible Installation der Monitoring Lösung ermöglicht. Checkmk bietet u.a. die Möglichkeit auf einem System beliebig viele Instanzen parallel auszuführen, so können z.B. unterschiedliche Versionen von Checkmk Testweise ausgeführt werden, ohne dass dabei das produktive System gefährdet wird. Eine Instanz wird mit Hilfe des omd-Befehls erstellt, wobei der Name (hier Instanz01) frei wählbar ist: sudo omd create Instanz01 beim erstellen einer neuen Instanz wird immer eine eigene Verzeichnisstruktur generiert, gleichzeitig wird dabei ein Linux-Benutzer mit dem selben Namen angelegt…
|
Passwort über CLI ändern das vom System vergebene Zufalls-Passwort des cmkadmin-Benutzers können Sie direkt über die CLI ändern wie folgt: su - Instanz01 htpasswd etc/htpasswd cmkadmin <Neues Passwort setzen> exit |
Instanzen anzeigen und starten Status aller Instanzen anzeigen sudo omd status Instanz starten mit dem omd-Befehl sudo omd start Instanz01 |
Web Administration Tool (WATO) Nachdem die Instanz gestartet wurde, ist diese über einen Browser im selben Netzwerk erreichbar, die URL für den ersten Aufruf lautet wie folgt: http://Checkmk-Server-IP/Instanz01 Zugangsdaten & Login beim erstellen jeder neuen Instanz wird immer auch ein zufälliges Passwort für den Benutzer cmkadmin generiert, wir haben dieses Passwort direkt über die Kommandozeile geändert. Sie können diesen Schritt aber auch überspringen und jederzeit ein neues Passwort über die WATO-Weboberfläche setzten, aber dazu später mehr.
|
Nach dem Login gelangen Sie direkt auf die Standard-Startseite von Checkmk, dem Dashboard, hier behalten Sie neben der Notifikation u.a. über E-Mail immer den Überblick über alle Hosts und Dienste die Sie überwachen möchten… |
Sicherheit sollte jedoch stets an erster stelle stehen, wie im folgenden Screenshot zu sehen ist, wird die Kommunikation über den Browser der Checkmk-Webseite nicht verschlüsselt. Dieses Sicherheitsproblem möchten wir in den nächsten Schritten lösen, dazu erstellen wir auf unserem Linux-Server ein selbst signiertes SSL-Zertifikat |
self signed certificate erstellen Transport Layer Security (TLS), auch bekannt unter der Vorgängerbezeichnung Secure Sockets Layer (SSL), ist ein Verschlüsselungsprotokoll zur sicheren Datenübertragung im Internet, dieses möchten wir auch für unsere Checkmk-Webseite verwenden um alle Kommunikationen verschlüsselt führen zu können. Verzeichnis mit dem Namen ssl unter /etc/apache2 erstellen, darin speichern gleich das Zertifikat ab mkdir -p /etc/apache2/ssl |
SSL-Zertifikat generieren mit dem Open-Source-Befehlszeilen-Toolkit OpenSSLsudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.pem -out /etc/apache2/ssl/apache.pem – SSL/TLS-Zertifikat Typ X.509, dient zur Authentifizierung und Verifizierung der Identität eines Hosts oder einer Website (.pem) – RSA-Key mit 2048 Bit, bietet eine sichere Verschlüsselung von Daten – days gibt die Gültigkeitsdauer des Zertifikats in Tagen an – keyout / -out, legt den Speicherpfad des neu generierten privaten Keys und des Zertifikates fest |
Ausgabe der generierten PEM (Privalität Everbessert Mail) – Textdateicat /etc/apache2/ssl/apache.pem |
neu generiertes Zertifikat verlinkenln -sf /etc/apache2/ssl/apache.pem /etc/apache2/ssl/` |
Rechte des Zertifikats einschränkenchmod 600 /etc/apache2/ssl/apache.pem 600 = Besitzer (6) lesen + schreiben, Gruppe (0) keine Rechte, Andere (0) keine Rechte |
Um SSL/TLS verwenden zu können, muss der Apache Webserver auf TCP-Port 443 lauschen, dazu wird die ports.conf angepasst. Beim aktuellen Apache2-Webserver ist dies Konfiguration bereits Standardmäßig eingestellt, dennoch sollte Sie diese Einstellung nochmals gegen prüfen vim /etc/apache2/ports.conf |
/etc/apache2/ports.conf |
Apache2-Webserverkonfiguration neu ladensudo service apache2 reload |
Apache2 ssl Modul aktivierensudo a2enmod ssl |
Apache2-Webser neu startensystemctl restart apache2 |
neue ssl-Seite ssl.conf erstellen…vim /etc/apache2/sites-available/ssl.conf |
folgenden Eintrag hinzufügen<virtualhost *:443> SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem DocumentRoot /var/www/html </virtualhost> |
ssl.conf – Seite aktivierensudo a2ensite ssl.conf |
Apache2-Webser erneut neu starten/etc/init.d/apache2 restart |
Testen und Aufruf der verschlüsselten Checkmk-Webseite mit https://https://Checkmk-Server-IP/Instanz01 Klicken Sie nun für den Firefox-Browser auf Erweitert und Risiko akzeptieren und fortfahren
eine ähnliche Warnung wie im oberen Bild gezeigt erscheint nun bei allen bekannten Browsertypen, der Grund dafür ist das Selbstsignierte Zertifikat, dass wir zuvor erstellt haben, die Meldung ist zwar nicht schön anzuschauen… |
aber dafür ist die Checkmk-Webseite nun sicher https-verschlüsselt, weitere Informationen zum Zertifikat selbst finden Sie, wenn Sie auf das Schloss in der URL-Leiste klicken |
Die Webseite ist nun sicher verschlüsselt, allerdings können wir die Webseite noch immer unverschlüsselt aufrufen über http, um dies zukünftig ebenfalls zu verhindern und alle http-Anfragen auf die gesicherte https-Webseite umzuleiten… |
öffnen wir default-Seite unseres Apache2-Webservers mit dem vim-Editorvim /etc/apache2/sites-enabled/000-default.conf |
um den Redirect von http auf https einzustellen, müssen nur drei zusätzliche Zeilen in der 000-default.conf hinzugefügt werdenRewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule (.*) https://%{HTTP_HOST}/$1 [L] |
damit die Änderungen übernommen werden, muss der Apache2-Webserver neu gestartet werden/etc/init.d/apache2 restart |
ab sofort sollten alle Anfragen zu unserer Checkmk-Webseite auf die verschlüsselte Webseite umgeleitet werden |
WATO-Weboberfläche für das ändern der Sprache bzw. sonstiger Profileinstellungen für den Benutzers cmkadmin gehen Sie wie folgt vor User / Profile / Edit profile |
hier können Sie nun wenn gewünscht die Sprache umstellen, zusätzlich haben Sie hier auch die Möglichkeit die Ansicht Ihrer WATO-Weboberfläche auf Ihre Bedürfnisse anzupassen… |
ich persönlich bevorzuge es die Seitenleiste für weitere Zusatzelemente auf der linken Seite zu platzieren (1), außerdem möchte ich die Titel der Navigationsleiste ausblenden (2), zuletzt möchte ich noch die Übersicht erweitern für mehr Informationen (3), nachdem alle Einstellungen abgeschlossen sind, klicken Sie auf Speichern |
unterhalb der Seitenleiste befindet sich ein Pluszeichen, über dieses können Sie jederzeit weitere Seitenleistenelemente hinzufügen oder entfernen |
Checkmk – Seitenleiste mit weiteren Elementen |
E-Mail Versand mit Postfix auf dem Linux-System einrichten Die WATO-Weboberfläche ist nun soweit vorbereitet für die Überwachung weiterer Netzwerkkomponenten, um nicht jederzeit die Hosts und Dienste direkt über die WATO-Weboberfläche Überwachen zu müssen, werden wir zusätzlich die E-Mail Benachrichtigung auf unserem Server aktivieren. Mit Hilfe des Mail Transfer Agents postfix und einem Gmail Konto mit App-Passwort ist dies schnell und einfach erledigt Installation von postfix und bsd-mailx sudo apt-get install -y postfix bsd-mailx |
nach der Installation müssen noch einige Anpassungen in der postfix-Konfigurationsdatei main.cf vorgenommen werden, um später E-Mail Benachrichtigungen über den Checkmk-Server versenden zu können vim /etc/postfix/main.cf |
wir fügen die folgenden drei Zeilen der main.cf hinzusmtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous Zusätzlich muss ein relayhost, also der SMTP-Mailserver (hier von Gmail) für den Versand mit eingetragen werden relayhost = smtp.gmail.com |
da wir die Zugangsdaten für den Mailversand das Gmail-Konto nicht direkt in der Konfigurationsdatei abspeichern möchten, legen wir ein neues File an, worin diese gespeichert werden sollen vim /etc/postfix/sasl_passwd |
hier tragen wir nun alle wichtigen Informationen zum Mailversand in der folgenden Anordnung ein Bsp: smtp.gmail.com SMTP-E-Mail-Adresse:Gmail-App-Passwort |
wir konvertieren die Textdatei sasl_passwd in ein binäres Datenbankformat wie folgtsudo postmap /etc/postfix/sasl_passwd |
final starten wir die postfix-Dienste neusudo /etc/init.d/postfix restart |
die Konfiguration des Checkmk Linux-Systems für den E-Mailversand ist nun abgeschlossen. Zeit für eine Test E-Mailecho "Dies ist eine Test E-Mail vom checkmk-Server" | mailx -s "Test" ihre_notification_e-mail-adresse@gmail.com |
Glückwunsch! Der E-Mail Versand vom Server aus war erfolgreich 🙂 |
E-Mail Notifikation in Checkmk aktivieren zurück auf der WATO-Weboberfläche aktivieren wir für den Benutzer cmkadmin die E-Mail Benachrichtigung Zahnrad-Symbol / Benutzer / Benutzer |
wechseln Sie in die Eigenschaften des Benutzers cmkadmin über das Bleistift-Symbol |
im folgenden Fenster tragen Sie Ihre E-Mail Adresse ein (1), prüfen ob die Rolle für den Administrator angehakt ist (2), aktivieren unter Kontaktgruppen die Option Everything und Speichern Sie die Einstellungen (4) Hier können Sie auch die Zugangsdaten für den Benutzer cmkadmin ändern, wenn Sie diese nicht über das Konsolefenster anpassen möchten |
um die Änderungen Systemweit zu übernehmen, bietet die WATO-Weboberfläche rechts oben einen Link für die Änderung an markiert durch ein gelbes Ausrufezeichen (1), klicken Sie auf X Änderung(en) und danach auf den Button Auf ausgewählten Instanzen aktivieren (2) |
in den folgenden Schritten legen wir fest, was genau in der E-Mail Benachrichtigung von Checkmk stehen werden soll, Serverinformationen, Zeiten, Grafen etc. Benutzer-Symbol / Profil /Alarmierungsregeln |
Regel hinzufügen |
geben Sie im folgenden Fenster eine kurze Beschreibung für die Alarmierungsregel an (1), wählen Sie die Alarmierungsmethoden, die später in der E-Mail auftauchen sollen, z.B. wenn ein Problemfall eintritt für einen Host (2), Speichern Sie (3) |
Für einen E-Mail Test simulieren wir einen Host der nicht erreichbar ist, dies werden wir in weiteren Tutorials vertiefen, jetzt soll es nur um einen schnellen Test gehen Zahnrad-Symbol / Hosts / Hosts |
Erzeuge neuen Host |
wir tragen nun eine IP-Adresse ein, die in unserem Netzwerk nicht existiert um einen Hostausfall zu Simulieren, wählen Sie unter Checkmk agent die Option No agent aus, so überwachen wir nur den Ping eines Hosts |
wir übernehmen erneut die Änderungen über das gelbe Ausrufezeichen… |
der Simulations-Host taucht nun in der Übersicht und im Dashboard von Checkmk auf… |
wenn alle E-Mail Einstellungen korrekt vorgenommen wurden, sollten Sie nach wenigen Minuten eine E-Mail bekommen mit weiteren Informationen zum „Problem-Host“ weiter mit Checkmk-Setup |