Open Source Basismonitoring anhand von Praxisbeispielen – mit openITCOCKPIT

Inhalt

Monitoring ist ein wichtiger und zentraler Bestandteil einer modernen IT-Infrastruktur. Trotzdem ist in der Praxis immer wieder zu beobachten, dass kritische Systeme nur unzureichend oder gar nicht überwacht werden. Dabei ist dies nicht etwa auf die Unachtsamkeit oder Sorglosigkeit der Verantwortlichen zurückzuführen – oft fehlt einfach die Zeit, ein detailliertes und somit aussagekräftiges Basismonitoring der Systeme einzurichten. Das Open Source Monitoring-Tool openITCOCKPIT setzt genau an diesem Punkt an und vereinfacht Monitoringaufgaben entscheidend.

Anforderungen an Monitoring-Systeme

IT-Infrastruktur wandelt sich kontinuierlich. Waren virtuelle Maschinen vor fünf Jahren noch die Regel, werden heute Container genutzt, um Anwendungen aus der Cloud heraus zur Verfügung zu stellen. Ein Monitoring-System muss dabei dem Kenntnisstand der Anwender*innen Rechnung tragen. Denn in den meisten Unternehmen beanspruchen Monitoring-Aufgaben keine IT-Vollzeitkraft – sondern sind nur ein weiterer Aspekt im täglichen Doing. Das Monitoring muss also von jedem Admin bedienbar sein, und dies auch unabhängig davon, ob das Unternehmen eher in der Windows- oder in der Linux-Welt zuhause ist.

openITCOCKPIT meistert diesen Spagat zwischen technologischem Wandel und Wissensstand der Anwender*innen mit einer einzigartigen Weboberfläche. Sie konfigurieren und verwalten openITCOCKPIT komplett über das Web Frontend. Erfahrungen aus den unterschiedlichen Teams lassen sich in Servicevorlagengruppen als Best Practice speichern. Zudem steht ein Set an Vorlagen bereit, die bei der Ersteinrichtung des Monitorings unterstützen. Wie wir später noch sehen werden, waren Wartbarkeit und Integrierbarkeit sehr wichtige Punkte bei der Entwicklung von openITCOCKPIT.

Installation und Updates

openITCOCKPIT erhalten Sie ausschließlich in Form von Debian-Paketen. Entsprechend problemlos gestaltet sich die Installation und spätere Updates. Seit der Version 4.2 unterstützt openITCOCKPIT auch arm64 Systeme zu 100 Prozent.

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 updateapt-get install openitcockpit

Welche Betriebssysteme und CPU-Architekturen alle unterstützt werden, unter Download-Bereich von openITCOCKPIT.

Grundkonfiguration von openITCOCKPIT

Bevor Sie mit der Weboberfläche von openITCOCKPIT arbeiten können, muss zunächst ein neuer Benutzer angelegt werden. Für den ersten Benutzer erfolgt die Erstellung über die Konsole. Anschließend verwalten Sie aber alle weiteren Benutzer ganz bequem im Web Frontend.

/opt/openitc/frontend/SETUP.sh

Bei der grundlegenden Einrichtung begleitet Sie ein Wizard durch jeden Schritt. Erforderlich sind dabei nur Angaben über den User. Andere Details wie etwa die Konfiguration eines E-Mail Servers können Sie bei den Standardwerten belassen. Nach Abschluss des Setups lässt sich das Web Frontend von openITCOCKPIT im Browser aufrufen.

Basis-Monitoring mit dem openITCOCKPIT Monitoring Agenten

Wie eingangs erwähnt, werden viele Systeme bislang nur rudimentär überwacht. Ein Grund dafür ist, dass jedes Betriebssystem andere Wege und Agenten zu seiner Überwachung braucht. Abhängig vom Protokoll müssen die Verantwortlichen zunächst meist Firewall-Regeln erstellen oder Freigaben einholen. Zudem ist für jeden Agenten üblicherweise eine eigene Konfiguration erforderlich. Ein weiter Nachteil ist, dass oft unklar bleibt, ob übertragene Daten sicher verschlüsselt werden oder nicht.

openITCOCKPIT umgeht dieses Problem, indem es einen eigenen Agenten zur Verfügung stellt (IT-Administrator berichtete). Der Agent wurde in Go geschrieben und dessen Quelltext steht auf GitHub zur Verfügung. Mit dem Agenten überwachen Sie Windows-, Linux- und macOS-Systeme. Die Datenübertragung geschieht automatisch über HTTPS, sie ist also sicher verschlüsselt. Die Richtung der Kommunikation wählen Sie nach dem Pull-Push-Prinzip der Situation entsprechend.

Die ursprüngliche Installation und das Einspielen von Updates sollen so wenig aufwendig wie möglich sein. Diesem Ansatz folgt der openITCOCKPIT Monitoring Agent ebenso konsequent wie der zentrale openITCOCKPIT Server. Für Windows-Systeme steht der Agent als MSI-Datei bereit, er lässt sich über die Softwareverteilung ausrollen. Für Linux steht ein RPM und DEB Repository zur Verfügung, und für macOS nutzt der Agent das native PKG-Format. Bei der Entwicklung des Agenten wurde die Portierbarkeit berücksichtigt. So steht der Agent für 32-Bit, 64-Bit, armhf, arm64 und Apple Silicon (M1) bereit.

Den ersten Host überwachen

Zunächst richten Sie eine Überwachung für den openITCOCKPIT Server ein. 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 updatesudo apt-get install openitcockpit-agent

Fall Sie den betroffenen Host im Pull-Modus abfragen möchten, sind auf dem Zielsystem keine weiteren Schritte nötig.

Wizard-Bereich-von-openITCOCKPIT

Über einen Wizard lässt sich in der Oberfläche von openITCOCKPIT nun ein neuer Host erstellen. Dabei haben Sie je nach Betriebssystem verschiedene Auswahlmöglichkeiten.

Als Benutzer werden Sie durch alle erforderlichen Schritte geführt. Die Systeme tauschen automatisch TSL-Zertifikate aus und stellen so eine verschlüsselte Kommunikation sicher. Von diesem Augenblick an ist nur noch der openITCOCKPIT Server in der Lage, den Agenten abzufragen.

Im letzten Schritt zeigt Ihnen das System eine Liste mit sämtlichen gefundenen Prozessen, Diensten, Sensoren, Festplatten, Netzwerkkarten, Docker Containern und vielem mehr. Als Benutzer haben Sie nun die Entscheidung zu treffen, was Sie alles in Ihr Monitoring aufnehmen möchten.

onfiguration des openITCOCKPIT Agent

Neben einem Status (Ok, Warnung, Kritisch oder Unbekannt) speichert das System auch Metriken zu jedem Check. Diese Metriken sind in openITCOCKPIT als Graphen aufbereitet. Die Graphen fungieren als Langzeitdatenquelle und helfen Ihnen, regelmäßige Muster leichter zu erkennen. Ein typisches Beispiel wäre das nächtliche Backup – es verursacht jedes Mal einen großen Ausschlag im Netzwerk-IO Graph.

Zum Thema Metriken: Jede Installation von openITCOCKPIT kommt mit einem einsatzbereiten Grafana. Werte wie CPU-, Arbeitsspeicher- und Festplattenauslastung sollten Sie auf jedem System überwachen, ebenso die benötigten Dienste oder Prozesse. Mit openITCOCKPIT haben Administrator*innen ein Werkzeug an der Hand, das ihnen dies auf jedem System ermöglicht – einheitlich, sicher und unkompliziert.

Erweiterbarkeit des openITCOCKPIT Monitoring Agenten

Besonders im Bereich des Applikationsmonitorings werden gern spezialisierte Checks verwandt. Bekannte Beispiele dafür sind „check_oracle_health“ oder „check_vmware_esx“. Den openITCOCKPIT Agenten können Sie über Custom Checks um beliebige Nagios Plugins, Bash- oder PowerShell-Skripte erweitern. Beispielhaft wird als Custom Check ein Temperatur- und Luftfeuchtigkeitssensor (DHT22) angeschlossen. In der Datei “/etc/openitcockpit-agent/customchecks.ini“ sieht dies folgendermaßen aus:

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

Ihre Custom Checks für das Applikationsmonitoring können Sie, wie alle anderen nativen Checks auch, einfach über den Wizard im Web Frontend auswählen und erstellen.

Custom Check

Bequemes Monitoring durch den neuen Wizard

openITCOCKPIT lässt sich in seinem Funktionsumfang durch Module erweitern. Umso mehr Module Sie auf Ihrem System installieren, desto größer die Zahl an Kommandos und Servicevorlagen, die den Anwender*innen zur Verfügung stehen. Der Nachteil: Gerade unerfahrenen Benutzer*innen fällt es dann nicht mehr so leicht, den Überblick zu behalten. Hier schafft die neue Version 4.0 des Wizard Abhilfe. Prinzipiell gilt: Mit jeder neuen Version von openITCOCKPIT wächst der Funktionsumfang des Wizards weiter.

Wie der Name „MySQL Wizard“ bereits nahelegt, enthält dieser Wizard ein vorkonfiguriertes Set an Checks, das es gestattet, die Überwachung eines MySQL Servers in wenigen Klicks durchzuführen.

Der Wizard fuer die MySQL Ueberwachung

Der Wizard braucht dafür nur einen MySQL-Benutzer nebst dazugehörigem Passwort. Wenn Sie dieses Monitoring ausprobieren möchten, könne Sie dies wiederum am openITCOCKPIT Server selbst tun. Anpassungen an der MySQL-Konfiguration braucht es dazu nicht. Die benötigten Zugangsdaten lassen sich der Datei “/opt/openitc/etc/mysql/mysql.cnf” entnehmen.

openITCOCKPIT - 21 MySQL-Checks per Default verfügbar

Im Standard rollen Sie so 21 Checks aus. Aber das Subset an hinterlegten Vorlagen lässt sich nach Bedarf auch anpassen und erweitern.

Docker Container Monitoring

Wenn auf Ihrem Zielsystem Docker installiert ist, lässt sich der Agent auch dazu nutzen, laufende Container zu monitoren. Bei Ihrem Docker Container Monitoring ermöglichen drei separate Prüfungen zu überwachen, ob der Container läuft und wie viel CPU und Arbeitsspeicher er dabei belegt.

Ueberwachung von Docker Containern

VM Monitoring ohne VM Zugriff

Auch virtuelle Maschinen, die mit libvirt (virt-manager, virsh) verwaltet werden, lassen sich überwachen. Beim VM Monitoring werden die Werte für CPU und Arbeitsspeicherauslastung direkt vom Hypervisor abgefragt – eine Installation des Agenten innerhalb der virtuellen Maschine ist unnötig. Dies ist speziell für Cloud- und Hosting-Anbieter ein Vorteil, wenn sie auf die VMs ihrer Kunden keinen Zugriff haben, aber trotzdem ein zuverlässiges VM Monitoring realisieren wollen.

Auch libvirt basierte virtuelle Maschinen koennen ueberwacht werden

Wenn Sie die Libvirt-Unterstützung aktivieren möchten, müssen Sie dazu den Agenten manuell kompilieren. Der Grund ist, dass momentan noch keine Go-Bibliothek von Libvirt vorliegt und CGO genutzt werden muss. Dieses manuelle Kompilieren mag zunächst kompliziert erscheinen, es ist aber eingehend im Wiki beschrieben. Im Grunde sind nur wenige Befehle auszuführen.

Mithilfe von APIs automatisieren

Die gesamte Weboberfläche von openITCOCKPIT hat eine JSON-API als Grundlage. So können Sie alle Funktionen, die Ihnen über die Oberfläche zur Verfügung stehen, auch über die API nutzen. Dadurch lassen sich zum Beispiel neue Hosts automatisiert in das Monitoring aufnehmen oder löschen.

Außerdem steht Ihnen eine eigene API zur Verfügung, die es erlaubt, Checkergebnisse an das Monitoring-Backend zu übermitteln. openITCOCKPIT generiert für jeden API-Endpunkt automatisch ein Beispiel für die Methoden GET und POST.

Eine eigene API uebermittelt Checkergebnisse an das Monitoring Backend

Auf diese Weise übertragen auch externe Systeme, IoT-Geräte oder Embedded-Systeme Ergebnisse unkompliziert an openITCOCKPIT.

Installation von Community Modulen

Über den „Package Manager“, der in der openITCOCKPIT-Oberfläche integriert ist, greifen Sie auf unterschiedliche Erweiterungen zu. So lassen sich neue Funktionen leicht hinzufügen, etwa die Integration von Checkmk oder die Erstellung interaktiver Karten. Mittels Eventkorrelation verknüpfen Sie verschiedene Services mit logischen Operatoren zu einem Business-Service (z. B. Mailserver), und mithilfe von Autoreports informieren Sie Ihre Kunden sofort darüber, dass keine SLA-Verletzungen vorgelegen haben.

All diese genannten Erweiterungen stehen Ihnen kostenlos zur Verfügung. Es gibt allerdings auch ein kostenpflichtige Enterprise Lizenz von openITCOCKPIT, die Ihnen weitere Module bietet, beispielsweise eine SAP-Monitoring-Lösung oder eine Prometheus-Integration.

Die Community unterstützt Sie

Vielleicht sind Sie jetzt in Sachen Monitoring mit openITCOCKPIT auf den Geschmack gekommen. Probieren Sie es aus! Sollten Sie dabei auf Probleme stoßen, lohnt sich übrigens der Besuch bei der Community Discord. Dort treffen Sie die Entwickler*innen von openITCOCKPIT an, und auch viele Community-Mitglieder sind dort regelmäßig aktiv.

https://discord.gg/G8KhxKuQ9G

openITCOCKPIT können Sie einfach kostenlos unter https://openitcockpit.io/ herunterladen.