Das Open-Source-Monitoringtool openITCOCKPIT steht mittlerweile in der Version 4.0 bereit. Das neue Stable Release bietet dem Admin eine überabeitete GUI und zahlreiche neue Schnittstellen. Zentrales neues Feature ist jedoch der Monitoringagent, der den Aufbau eines Basismonitorings vereinfachen soll. Er überwacht CPU-, Speicher- und Festplattennutzung, Systemdienste oder Container. Wir zeigen Inbetriebnahme und Monitoring mit openITCOCKPIT 4.0.
IT-Infrastrukturen unterliegen einem ständigen Wandel und wo vor fünf Jahren fast ausschließlich virtuelle Maschinen zum Einsatz kamen, werden heute immer mehr Anwendungen in Containern oder aus der Cloud heraus bereitgestellt. Neben diesem technologischen Wandel muss ein Monitoringsystem aber auch den Wissensstand der Anwender berücksichtigen. Denn gerade in KMU ist Monitoring in der Regel keine Vollzeitstelle, sondern nur eine weitere tägliche Aufgabe. Das Monitoring soll dem Admin also einfach fallen, unabhängig davon, ob er sonst eher mit Windows oder Linux arbeitet.
Bei openITCOCKPIT (OIC) [1] erfolgen die komplette Konfiguration und Verwaltung über das webbasierte Frontend. Die Software erlaubt zudem, Erfahrungen aus unterschiedlichen Teams in Service-Vorlagengruppen als Best Practices abzuspeichern. Darüber hinaus gibt es ein Set an Vorlagen, die als Hilfestellung bei der Ersteinrichtung des Monitorings dienen.
Installation und Updates
Die openITCOCKPIT-Software wird ausschließlich über Debian-Pakete bereitgestellt. Somit sind die Installation und auch das wichtige Einspielen von Updates kein Problem. Seit Version 4.2 unterstützt OIC auch arm64-Systeme. Für diesen Artikel wollen wir OIC auf einem Raspberry Pi 4 mit 8 GByte RAM und externer SSD (USB 3) installieren. Die Installation unterscheidet sich dabei nicht von der einer virtuellen Maschine oder Hardware. Beim Raspberry Pi müssen wir allerdings darauf achten, dass die arm64-Version des Raspberry Pi OS zum Einsatz kommt und nicht die 32-Bit-Variante "armhf". Die Installation erfolgt ganz einfach über apt:
IT-Infrastrukturen unterliegen einem ständigen Wandel und wo vor fünf Jahren fast ausschließlich virtuelle Maschinen zum Einsatz kamen, werden heute immer mehr Anwendungen in Containern oder aus der Cloud heraus bereitgestellt. Neben diesem technologischen Wandel muss ein Monitoringsystem aber auch den Wissensstand der Anwender berücksichtigen. Denn gerade in KMU ist Monitoring in der Regel keine Vollzeitstelle, sondern nur eine weitere tägliche Aufgabe. Das Monitoring soll dem Admin also einfach fallen, unabhängig davon, ob er sonst eher mit Windows oder Linux arbeitet.
Bei openITCOCKPIT (OIC) [1] erfolgen die komplette Konfiguration und Verwaltung über das webbasierte Frontend. Die Software erlaubt zudem, Erfahrungen aus unterschiedlichen Teams in Service-Vorlagengruppen als Best Practices abzuspeichern. Darüber hinaus gibt es ein Set an Vorlagen, die als Hilfestellung bei der Ersteinrichtung des Monitorings dienen.
Installation und Updates
Die openITCOCKPIT-Software wird ausschließlich über Debian-Pakete bereitgestellt. Somit sind die Installation und auch das wichtige Einspielen von Updates kein Problem. Seit Version 4.2 unterstützt OIC auch arm64-Systeme. Für diesen Artikel wollen wir OIC auf einem Raspberry Pi 4 mit 8 GByte RAM und externer SSD (USB 3) installieren. Die Installation unterscheidet sich dabei nicht von der einer virtuellen Maschine oder Hardware. Beim Raspberry Pi müssen wir allerdings darauf achten, dass die arm64-Version des Raspberry Pi OS zum Einsatz kommt und nicht die 32-Bit-Variante "armhf". Die Installation erfolgt ganz einfach über apt:
Alle unterstützten Betriebssysteme und CPU-Architekturen finden Sie im OIC-Downloadbereich [2].
Bevor die OIC-Weboberfläche zum Einsatz kommen kann, müssen Sie einen neuen Benutzer erstellen. Beim ersten Benutzer erfolgt das über die Konsole, alle weiteren lassen sich im Anschluss bequem im Webfrontend verwalten.
/opt/openitc/frontend/SETUP.sh
Bei der Grundeinrichtung begleitet Sie ein Wizard durch die einzelnen Schritte. Sie benötigen jedoch nur die Angaben für den User. Details wie die Konfiguration eines E-Mail-Servers können Sie bei den Standardwerten belassen. Nach Abschluss des Setups lässt sich das Webfrontend im Browser aufrufen.
Einsatz des Monitoringagenten
Oft ist es in der Praxis leider so, dass Systeme nur rudimentär überwacht werden. Ein Grund dafür ist, dass jedes Betriebssystem unterschiedliche Wege und Agenten zur Überwachung benötigt. Je nach Protokoll müssen IT-Verantwortliche dann zuerst Firewallregeln erstellen oder Freigaben einholen. Zusätzlich benötigt jeder eingesetzte Agent eine eigene Konfiguration. Und ob die übertragenen Daten dann sicher verschlüsselt werden, ist auch nicht immer klar ersichtlich.
Um dieses Problem zu umgehen, stellt die Software einen Agenten bereit. Dieser ist aktuell in Version 3 verfügbar und in Go geschrieben Der Agent unterstützt die Überwachung von Windows-, Linux- und macOS-Systemen. Die Übertragung der Daten erfolgt automatisch über HTTPS und ist damit verschlüsselt. Die Richtung der Kommunikation lässt sich durch das Pull-Push-Prinzip situativ wählen.
Wie auch beim zentralen OIC-Server sollen die Installation und das Einspielen von Updates für den Monitoringagenten so wenig Aufwand wie möglich bedeuten. Für Windows-Systeme steht der Agent als MSI-Datei bereit und ist daher für die Softwareverteilung geeignet. Für Linux steht ein RPM- und DEB-Repository zur Verfügung und für macOS kommt das native PKG-Format zum Einsatz. Bei der Entwicklung des Agenten spielte auch die Portierbarkeit eine wichtige Rolle, weshalb der Agent für 32 Bit, 64 Bit, armhf, arm64 und Apple Silicon (M1) vorliegt.
Den ersten Host überwachen
Als erstes Beispiel wollen wir eine Überwachung für den openITCOCKPIT-Server einrichten. Dafür muss zuerst der Monitoringagent auf das System. Für Linux stehen je nach Distribution eigene Repositories zur Verfügung:
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
Sofern der betroffene Host im Pull-Modus abgefragt werden soll, sind keine weiteren Schritte auf dem Zielsystem erforderlich.
In OIC erstellen Sie nun über einen Wizard einen neuen Host. Dort stehen verschiedene Auswahlmöglichkeiten je nach Betriebssystem zur Verfügung. Sie werden dort durch alle erforderlichen Schritte
geführt. Dabei tauschen die Systeme automatisch TSL-Zertifikate aus, um eine verschlüsselte Kommunikation zu ermöglichen. Ab diesem Moment kann nur noch der OIC-Server den Agenten abfragen. Im letzten Schritt zeigt das System eine Liste aller gefundenen Prozesse, Dienste, Sensoren, Festplatten, Netzwerkkarten, Docker-Container und vieles mehr an. An dieser Stelle müssen Sie nun die Entscheidung treffen, welche Komponenten Ihr Monitoring berücksichtigen soll. Den gesamten Ablauf beschreibt der Beginners Guide [3] detailliert.
Neben einem Status (OK, Warnung, Kritisch oder Unbekannt) werden zu jedem Check auch Metriken gespeichert. Diese bereitet OIC als Graphen auf. Sie können als Langzeitdatenquelle dienen oder um regelmäßig auftretende Muster leichter zu erkennen. Als Klassiker ist hier beispielsweise das nächtliche Backup zu erwähnen, was einen großen Ausschlag im Netzwerk-IO-Graph erzeugt. Beim Thema Metriken setzt openITCOCKPIT übrigens auf Grafana. Dinge wie CPU-, Arbeitsspeicher- und Festplattenauslastung sollten Sie auf jedem System überwachen, genauso wie die benötigten Dienste oder Prozesse.
Bild 1: Alle zur Verfügung stehenden Konfigurations-Wizards enthalten Tipps und Fragen, um für eine optimale Überwachung der abgebildeten Dienste zu sorgen.
Erweiterung des Agenten
Besonders beim Applikationsmonitoring ist es üblich, spezialisierte Checks zu verwenden. Bekannte Beispiele hierfür wären "check_oracle_health" oder "check_vm-ware_esx". Der OIC-Agent lässt sich über Custom-Checks um beliebige Nagios-Plug-ins, Bash- oder PowerShell-Skripte erweitern. Eine detaillierte Anleitung finden Sie im Wiki des Agenten [4]. Für unser Beispiel mit dem Raspberry Pi schließen wir als Custom-Check einen Temperatur- und Luftfeuchtigkeitssensor (DHT22) an, was in der Datei "/etc/openitcockpit-agent/customchecks.ini" dann so aussieht:
[check_humidity]
command = /opt/openitc/nagios/
libexec/check_dht22
interval = 60
timeout = 5
enabled = true
Über den Wizard im Webfrontend können Sie die Custom Checks, wie alle anderen nativen Checks auch, einfach auswählen und anlegen.
Monitoringmodule mit neuem Wizard nutzen
Der Funktionsumfang von openITCOCKPIT ist durch Module erweiterbar. Je mehr Module auf einem System laufen, desto mehr Kommandos und Servicevorlagen stehen Ihnen zur Verfügung. Gerade für unerfahrene OIC-Nutzer ist es dann allerdings schwierig, den Überblick zu behalten. Genau an diesem Punkt setzt der in Version 4.0 neue Wizard an. Dieser war zwar zum Redaktionsschluss noch im Beta-Stadium, wird jedoch stetig weiter ausgebaut.
Wie der Name vermuten lässt, erhält der "MySQL Wizard" ein vorkonfiguriertes Set an Checks, mit denen die Überwachung eines MySQL-Servers in wenigen Klicks durchgeführt ist. Dafür benötigt der Wizard nur einen MySQL-Benutzer mit dazugehörigem Passwort. Eine kurze Hilfe gibt Tipps, welche Einstellungen Sie am MySQL-Server setzen müssen, damit OIC das System abfragen kann.
Zum Ausprobieren können Sie erneut den OIC-Server abfragen. Dafür sind keine Anpassungen an der MySQL-Konfiguration erforderlich. Die benötigten Zugangsdaten entnehmen Sie der Datei "/opt/openitc/etc/mysql/mysql.cnf". Im Standard werden hierbei 21 Checks ausgerollt. Das Subset an hinterlegten Vorlagen können Sie nach Bedarf anpassen und erweitern.
Bild 2: Es steht eine große Auswahl an Prüfungen zur Verfügung, die über den openITCOCKPIT-Agenten erfolgen sollen.
Monitoring von Docker-Containern und VMs
Sofern Docker auf dem Zielsystem installiert ist, können Sie den Agenten dazu nutzen, um laufende Container zu überwachen. Drei separate Prüfungen zeigen, ob der Container läuft und wie viel CPU und Arbeitsspeicher er belegt.
Virtuelle Maschinen, die Sie mit libvirt (virt-manager, virsh) verwalten, lassen sich ebenfalls überwachen. Hierbei fragt OIC die Werte für CPU und Arbeitsspeicherauslastung direkt vom Hypervisor ab. Somit ist keine Installation des Agenten innerhalb der virtuellen Maschine erforderlich. Dies kann besonders für Cloud- und Hosting-Anbieter von Vorteil sein, die keinen Zugriff auf die VMs haben.
Um die Libvirt-Unterstützung zu aktivieren, müssen Sie den Agenten manuell kompilieren. Dies liegt daran, dass im Moment noch keine Go-Bibliothek von Libvirt vorliegt und CGO Voraussetzung ist. Was zunächst kompliziert klingt, ist im Wiki beschrieben und erfordert im Großen und Ganzen nur das Ausführen von wenigen Befehlen.
Automatisierung durch APIs
Die komplette OIC-Weboberfläche baut auf einer JSON-API auf. Dies hat den Vorteil, dass alle Funktionen, die über die GUI zur Verfügung stehen, auch über die API erreichbar sind. So nehmen Sie zum Beispiel neue Hosts automatisiert in das Monitoring auf oder löschen diese. Zusätzlich steht eine eigene API zur Verfügung, um Check-Ergebnisse an das Monitoring-Backend zu übermitteln. Für jeden API-Endpunkt wird automatisch ein Beispiel für die Methoden GET und POST erstellt. Somit können auch externe Devices, IoT-Geräte oder Embedded-Systeme unkompliziert Ergebnisse an openITCOCKPIT übertragen.
Integration von Community-Modulen
Über den "Package Manager" stehen verschiedene Erweiterungen zur Verfügung. Hier können Sie neue Funktionen wie die Integration von Checkmk oder das Erstellen von interaktiven Karten bei Bedarf einfach hinzufügen. Mithilfe von Event-Korrelation lassen sich verschiedene Services mit logischen Operatoren zu einem Business-Service verknüpfen (etwa ein E-Mail-Server) und über die Autoreports können Sie Ihre Kunden direkt informieren, dass keine SLA-Verletzungen vorgelegen haben.
Fazit
Die Kombination aus openITCOCKPIT und Monitoringagent erlaubt den schnellen und einfachen Aufbau eines umfangreichen Monitorings. Die Funktionen lassen sich durch Module nach Bedarf erweitern. Leider ist die Dokumentation stellenweise noch ein wenig lückenhaft. Bei Fragen und Problemen steht aber der Community-Discord-Server [5] zur Verfügung.
(jp)
Daniel Ziegler ist Entwickler von openITCOCKPIT und Monitoring-Consultant bei der it-novum GmbH.