Mobile-Menu

Workshop: openITCOCKPIT in der Praxis Open Source Monitoring zum Anfassen

Von Daniel Ziegler

Anbieter zum Thema

In einer modernen IT-Infrastruktur ist das Monitoring ein Bestandteil von zentraler Bedeutung. Keinem Systemadministrator ist der Begriff des Monitorings heute noch fremd. In der Praxis sieht es leider oft anders aus: Mitunter werden sogar kritische Systeme nicht ausreichend oder gar nicht überwacht. Denn oft fehlt einfach die Zeit, ein Monitoring gezielt aufzusetzen. Hier will das Open Source Monitoring Tool openITCOCKPIT Abhilfe schaffen.

Daniel Ziegler von it-novum zeigt am Beispiel mit einem Raspberry Pi die Konfiguration und den Einsatz der Open-Source-Monitoringlösung openITCOCKPIT.
Daniel Ziegler von it-novum zeigt am Beispiel mit einem Raspberry Pi die Konfiguration und den Einsatz der Open-Source-Monitoringlösung openITCOCKPIT.
(Bild: it-novum GmbH)

Als Autor dieses Beitrags und Entwickler von openITCOCKPIT habe ich mich um einen starken Praxisbezug bemüht. Sie sind darum herzlich eingeladen, selbst mitzumachen und bei der Lektüre mit dem Monitoring-Tool zu interagieren. Sie können sich openITCOCKPIT dazu kostenlos herunterladen.

Bildergalerie
Bildergalerie mit 9 Bildern

Monitoring-Systeme stehen vor Herausforderungen

Kaum etwas ist so beständig wie der kontinuierliche Wandel von IT-Infrastruktur. Während vor fünf Jahren noch virtuelle Maschinen das Bild bestimmten, sind heute Anwendungen in Containern, in der Cloud bereitgestellt, in aller Munde. Monitoring-Systeme müssen diesen technologischen Wandel natürlich abbilden, dabei aber zugleich dem Wissensstand der Anwender Rechnung tragen. Monitoring ist in den meisten Unternehmen keine Aufgabe, die eine Vollzeitstelle rechtfertigen würde, sondern nur eine weitere Tätigkeit im Tagesgeschäft. Darum ist es wichtig, dass sich ein Monitoring-System von jedem Admin bedienen lässt – unabhängig davon, ob er oder sie sonst eher mit Windows oder Linux arbeitet.

openITCOCKPIT ist ein Tool, das antritt, diesen Spagat mithilfe seiner einzigartigen Weboberfläche zu leisten. Das Web Frontend gestattet die komplette Konfiguration und Verwaltung. Erfahrungen aus unterschiedlichen Teams lassen sich in Servicevorlagengruppen als Best Practice speichern. Zudem leistet ein Set an Vorlagen Hilfestellung bei der Ersteinrichtung des Monitorings. Ebenso zählen Wartbarkeit und Integrierbarkeit zu wichtigen Aspekten von openITCOCKPIT, auf die später noch genauer einzugehen sein wird.

Installation und Updates

Die Bereitstellung von openITCOCKPIT erfolgt ausschließlich über Debian-Pakete. Darum gestalten sich die Installation und – noch wichtiger – das Einspielen späterer Updates unproblematisch. Zudem bietet openITCOCKPIT von Version 4.2 an eine vollständige Unterstützung für ARM64-Systeme. Für die Beispiele in diesem Beitrag ist das openITCOCKPIT-System deshalb auf einem Raspberry Pi 4 mit 8 GB RAM und externer SSD (USB3) installiert. Diese Installation unterscheidet sich in keiner Hinsicht von einer Installation des Tools auf einer virtuellen Maschine oder einer Hardware.

Soll ein Raspberry Pi zum Einsatz kommen, ist es jedoch wichtig, die ARM64-Version des Raspberry Pi OS zu nutzen (nicht die 32-Bit-Version ARMhf!).

Die Installation geschieht einfach über apt:

apt-get install apt-transport-https curl gnupg2 ca-certificatescurl https://packages.openitcockpit.io/repokey.txt | apt-key add -

echo "deb https://packages.openitcockpit.io/openitcockpit/$(lsb_release -sc)/stable $(lsb_release -sc) main" > /etc/apt/sources.list.d/openitcockpit.list

apt-get update
apt-get install openitcockpit

Im Download-Bereich von openITCOCKPIT lassen sich alle unterstützten Betriebssysteme und CPU-Architekturen einsehen.

Die Grundkonfiguration für openITCOCKPIT

Um die Weboberfläche von openITCOCKPIT verwenden zu können, ist zunächst ein neuer Benutzer zu erstellen. Beim ersten Benutzer geschieht dies über die Konsole (Abbildung 1), während sich alle weiteren User im Anschluss einfach im Web Frontend verwalten lassen.

/opt/openitc/frontend/SETUP.sh

Ein Wizard begleitet den Benutzer durch die einzelnen Schritte der Grundeinrichtung. Dabei sind nur die Angaben für den Benutzer erforderlich. Details, wie etwa die Konfiguration eines E-Mail Servers, können dagegen bei den Standardwerten belassen werden.

Ist das Setup abgeschlossen, ist das Web Frontend von openITCOCKPIT via Browser aufrufbar.

Basis-Monitoring mithilfe des openITCOCKPIT Monitoring Agents

Wie bereits gesagt, gibt es bei vielen Systemen bisher nur eine rudimentäre Überwachung. Dies hat auch damit zu tun, dass jedes Betriebssystem für seine Überwachung unterschiedliche Wege und Agenten erfordert. Je nach Protokoll sind zunächst Firewall-Regeln zu erstellen oder Freigaben einzuholen. Auch ist jeder Agent, der zum Einsatz kommen soll, einzeln zu konfigurieren. Leider ist nicht immer klar ersichtlich, ob die übertragenen Daten dabei sicher verschlüsselt sind.

Bildergalerie
Bildergalerie mit 9 Bildern

openITCOCKPIT umgeht diese Probleme, indem es einen eigenen Agenten bereitstellt. Dieser in Go geschriebene Agent ist derzeit in Version 3 verfügbar. Auf GitHub steht sein Quelltext zur Verfügung. Der Agent unterstützt das Monitoring von Windows-, Linux- und macOS-Systemen. Daten werden automatisch über HTTPS übertragen, sind also sicher verschlüsselt. Je nach Situation lässt sich die Richtung der Kommunikation dem Pull-Push-Prinzip gemäß auswählen.

Der openITCOCKPIT-Server und der openITCOCKPIT-Monitoring-Agent folgen demselben Prinzip: Installation und Einspielen von Updates sollen so wenig Mehraufwand verursachen wie möglich. Der Agent ist für Windows-Systeme als MSI-Datei verfügbar und lässt sich über die Softwareverteilung ausrollen. Für Linux gibt es ein RPM- und DEB-Repository, während für macOS das native PKG-Format zum Einsatz kommt.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Netzwerktechnik, IP-Kommunikation und UCC

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Selbstverständlich wurde auch die Portierbarkeit bei der Entwicklung des Agenten berücksichtigt. Er ist darum für 32-Bit, 64-Bit, ARMhf, ARM64 und Apple Silicon (M1) verfügbar.

Einen ersten Host monitoren

Beginnen wir damit, zunächst eine Überwachung für den openITCOCKPIT-Server einzurichten. Zunächst ist dafür der openITCOCKPIT-Monitoring-Agent auf dem System zu installieren. Für Linux-Systeme gibt es je nach Distribution eigene Repositories.

curl https://packages.openitcockpit.io/repokey.txt | apt-key add -echo "deb https://packages.openitcockpit.io/openitcockpit-agent/deb/stable deb main" | sudo tee /etc/apt/sources.list.d/openitcockpit-agent.list

sudo apt-get update
sudo apt-get install openitcockpit-agent

Wenn der betroffene Host im Pull-Modus abgefragt werden soll, benötigt es keine zusätzlichen Schritte auf dem Zielsystem. Über einen Wizard in der Oberfläche von openITCOCKPIT lässt sich jetzt ein neuer Host erstellen. Abhängig vom Betriebssystem gibt es diverse Auswahlmöglichkeiten für die Konfiguration (siehe Abbildung 2).

Der Wizard führt den Benutzer durch alle erforderlichen Schritte. Weil die Systeme dabei automatisch TSL-Zertifikate austauschen, wird die Kommunikation verschlüsselt. Von diesem Moment an sind Abfragen an den Agenten nur noch durch den openITCOCKPIT Server möglich.

Der letzte Schritt: Das System zeigt eine Liste mit allem, was es gefunden hat – Prozesse, Dienste, Sensoren, Festplatten, Netzwerkkarten, Docker Container und noch vieles mehr (siehe Abbildung 3). Nun obliegt dem Nutzer die Entscheidung, was er alles ins Monitoring aufnehmen möchte. Der Beginners Guide von openITCOCKPIT beschreibt diesen gesamten Ablauf im Detail.

Zu jedem Check wird ein Status erfasst: Ok, Warnung, Kritsch oder Unbekannt. Ebenso werden zu jedem Check auch Metriken gespeichert. Diese Metriken können, als Graphen aufbereitet werden oder als Langzeitdatenquelle dienen und sie helfen dabei, regelmäßig auftretende Muster zu identifizieren. Der Klassiker ist hier beispielsweise das nächtliche Backup – im Netzwerk-IO Graph erzeugt es regelmäßig einen großen Ausschlag.

Apropos Metriken und Graphen: Zu jeder Installation von openITCOCKPIT gehört ein einsatzbereites Grafana.

Bei jedem System ist es sinnvoll, Basics wie CPU-, Arbeitsspeicher- und Festplattenauslastung zu überwachen. Ebenso sind natürlich die benötigten Dienste oder Prozesse zu monitoren. Die gute Nachricht für Administratoren: Mit openITCOCKPIT steht ein Werkzeug zur Verfügung, dass dies auf jedem System ermöglicht – einheitlich, sicher und unkompliziert.

Bildergalerie
Bildergalerie mit 9 Bildern

Den openITCOCKPIT-Monitoring-Agent erweitern

Nicht zuletzt beim Applikationsmonitoring kommen gern spezialisierte Checks zum Einsatz, wie etwa „check_oracle_health“ oder „check_vmware_esx“.

Über Custom Checks lässt sich der openITCOCKPIT-Agent um beliebige Nagios-Plugins, Bash- oder PowerShell-Skripte erweitern. Im Wiki des Agenten gibt es eine detaillierte Anleitung dazu. Wir bleiben hier im Kontext von Raspberry Pi und schließen als Beispiel für einen Custom Check einen Temperatur- und Luftfeuchtigkeitssensor (DHT22) an.

Datei: /etc/openitcockpit-agent/customchecks.ini

[check_humidity]
command = /opt/openitc/nagios/libexec/check_dht22 interval = 60 timeout = 5 enabled = true

Ausgewählt und erstellt werden die Custom Checks – wie alle nativen Checks – einfach über den Wizard im Web Frontend (siehe Abbildung 4).

Der neue Wizard macht Monitoring bequemer

Zu openITCOCKPIT gibt es Module, die den Funktionsumfang erweitern. Mit der Zahl der Module, die auf einem System installiert sind, wächst aber auch die Zahl der Kommandos und Servicevorlagen, mit denen es die Anwender zu tun haben. Gerade unerfahrenen Benutzern fällt es dann häufig schwer, den Überblick zu behalten. Der neue Wizard, der zum Zeitpunkt der Erstellung dieses Artikels noch im Beta-Test war, adressiert auch dieses Problem. Generell gilt, dass der Funktionsumfang des Wizards mit jeder neuen Version von openITCOCKPIT wächst.

Der MySQL-Wizard dient – der Name legt es nahe – der Überwachung eines MySQL-Servers. Dank eines vorkonfigurierten Sets an Checks lässt sich dies mit wenigen Klicks realisieren (siehe Abbildung 5). Dem Wizard genügt dazu ein MySQL-Benutzer mit dem entsprechenden Passwort. Eine kurze Hilfe erläutert, welche Einstellungen am MySQL Server zu setzen sind, sodass openITCOCKPIT das gewünschte System abfragen kann.

Um dies direkt auszuprobieren, lässt sich der openITCOCKPIT-Server selbst abfragen. Anpassungen an der MySQL-Konfiguration sind dafür nicht nötig. Die erforderlichen Zugangsdaten lassen sich der Datei

/opt/openitc/etc/mysql/mysql.cnf

entnehmen. Standardmäßig rollt der MySQL-Wizard 21 Checks aus, wobei sich das Subset an hinterlegten Vorlagen ganz nach Bedarf anpassen oder erweitern lässt (Abbildung 6).

Docker-Container und VMs monitoren

Wenn auf einem Zielsystem Docker installiert ist, lässt sich der Agent dazu einsetzen, laufende Container zu monitoren. Um zu überwachen, ob der Container läuft und wie viel CPU und Arbeitsspeicher er belegt, sind drei separate Prüfungen erforderlich (siehe Abbildung 7).

Ebenso lassen sich virtuelle Maschinen überwachen, die mit Libvirt (virt-manager, virsh) verwaltet sind. Eine Installation des Agenten innerhalb der virtuellen Maschine ist dafür allerdings gar nicht erforderlich. Stattdessen fragt openITCOCKPIT die Werte für CPU und Arbeitsspeicherlast direkt vom Hypervisor ab (siehe Abbildung 8). Mitunter ist dies besonders für Cloud- und Hosting-Anbieter ohne Zugriff auf die VMs ein Vorteil.

Soll die Libvirt-Unterstützung aktiviert werden, ist es erforderlich, den Agenten manuell zu kompilieren. Denn aktuell liegt noch keine Go-Bibliothek von Libvirt vor, was die Verwendung von CGo erforderlich macht. Auch wenn dies auf den ersten Blick kompliziert scheinen mag – der Ablauf, der auch im Wiki beschrieben ist, begnügt sich im Grunde mit der Ausführung weniger Befehle.

Bildergalerie
Bildergalerie mit 9 Bildern

Automatisierung durch APIs

Weil die komplette Weboberfläche von openITCOCKPIT auf einer JSON-API aufbaut, ergibt sich der Vorteil, dass User alle Funktionen, die ihnen über die Oberfläche zur Verfügung stehen, auch über die API nutzen können. So lassen sich beispielsweise neue Hosts automatisiert in das Monitoring aufnehmen oder löschen. Außerdem ist eine eigene API verfügbar, die Checkergebnisse an das Monitoring-Backend übermittelt. Ein Beispiel für die Methoden GET und POST wird für jeden API-Endpunkt automatisch erstellt (siehe Abbildung 9). Auf diese Weise sind auch externe Systeme, IoT-Geräte oder Embedded-Systeme in der Lage, Ergebnisse unkompliziert an openITCOCKPIT zu übertragen.

Installation von Community Modulen

In der openITCOCKPIT-Oberfläche ist ein „Package Manager“ integriert, der Nutzern unterschiedliche Erweiterungen bietet. Funktionen wie etwa die Integration von Checkmk oder das Erstellen interaktiver Karten lassen sich so falls nötig leicht ergänzen. Eine Eventkorrelation dient dazu, verschiedene Services mit logischen Operatoren zu einem Business-Service zu verknüpfen (z.B. einem Mailserver). Über die Autoreports sind Dienstleister dann in der Lage, ihre Kunden beispielsweise direkt darüber zu informieren, dass es keine SLA-Verletzungen gegeben hat.

Alle hier erwähnten Erweiterungen von openITCOCKPIT sind kostenlos. Es existiert allerdings auch eine kostenpflichtige Enterprise Lizenz, die noch weitere Module liefert: etwa ein SAP-Monitoring oder eine Prometheus-Integration.

Daniel Ziegler.
Daniel Ziegler.
(Bild: it-novum GmbH)

Die openITCOCKPIT-Community

Vielleicht sind Sie jetzt auf den Geschmack gekommen. Sollten Sie beim Ausprobieren von openITCOCKPIT auf Probleme stoßen, lohnt es sich, den Community Discord zu konsultieren. Dort sind neben den Entwicklern von openITCOCKPIT regelmäßig auch viele Mitglieder der openITCOCKPIT-Community anzutreffen. Sie alle können gegebenenfalls weiterhelfen.

Über den Autor

Daniel Ziegler ist Entwickler von openITCOCKPIT und Monitoring-Consultant bei it-novum.

(ID:48561654)