Proxmox ist eine beliebte Server-Virtualisierungs-Plattform auf Linux-Basis. Die Open-Source-basierte Software kombiniert mit KVM (Kernel-based Virtual Machine) und LXC (LinuX Containers) zwei Virtualisierungstechniken zum Betrieb von virtuellen Maschinen (VMs) und Containern.

Dieser Artikel beschreibt die Funktionsweise von Proxmox, seine Anwendungsfälle, warum wir es überwachen müssen und wie Sie ein Proxmox-Monitoring mit Checkmk einrichten.

Involvierte Techniken

Proxmox kombiniert die Techniken Kernel-based Virtual Machine (KVM) und LinuX Containers (LXC).

  • Kernel-based Virtual Machine: eine Open-Source-Virtualisierungstechnik, die Linux in einen Hypervisor umwandelt und es einem Host-Rechner ermöglicht, mehrere Gäste oder VMs auszuführen.
  • LinuX Containers: Diese Technik bezieht sich auf einen portablen Satz von einem oder mehreren Prozessen, die von Dateien, bereitgestellt von einem bestimmten Image, ausgeführt werden.

Was macht Proxmox Virtual Environment (PVE)?

Über die Konfigurationsoberfläche von Proxmox VE lassen sich Container, VMs, Storage und virtuelle Netzwerke auf den Host-Systemen einfach verwalten. Sie können Proxmox entweder als einzelnen Node betreiben oder mehrere Proxmox-Server in einem Cluster, was normalerweise der Fall ist.

Um einen reibungslosen Betrieb der via Proxmox verwalteten Container und VMs zu gewährleisten, ist es notwendig, die Proxmox-Nodes oder -Cluster in Ihr IT-Infrastruktur-Monitoring aufzunehmen.

Mit Checkmk haben Sie die Möglichkeit, alle wichtigen Metriken Ihrer Proxmox-Umgebung zu überwachen und so Probleme oder Engpässe zeitnah zu erkennen.

Warum müssen Sie Proxmox überwachen?

Proxmox-Monitoring ist unerlässlich, um eine Echtzeit-Analyse von VMs und IT-Infrastruktur zu gewährleisten. Mit dieser Analyse erhalten Sie genaue, zeitnahe Einblicke in den Zustand Ihrer virtuellen Umgebung.

Sie können virtuelle Server überwachen und nachvollziehen, wie sich die Proxmox-Konfiguration auf den IT-Betrieb auswirkt. Außerdem erkennen Sie, wenn eine Applikation ein Problem darstellt, und so die Ursache schnell ermitteln.

Die schnelle Identifizierung von Problemen ermöglicht es den technischen Teams, diese Probleme frühzeitig zu beheben und schafft so eine kooperative und proaktive Umgebung.

Die Ergebnisse eines gut überwachten Proxmox dienen auch als Datenquelle für die Bewertung von Trends bei der Performance der Infrastruktur. Diese Trends bilden wiederum die Grundlage für die Modellierung der optimalen Performance und die Vorhersage der Auswirkungen von Änderungen der Funktionen der installierten Applikationen.

Proxmox-Server für das Monitoring vorbereiten

Der erste Schritt ist die Einrichtung der Konfigurationsoberfläche von Proxmox VE und eines API-Zugangs.

PVE-Konfiguration

Erstellen Sie für Ihren Cluster unter dem Reiter Permissions einen User Checkmk mit dem Realm „pve“. Dieser User wird von Proxmox und nicht vom zugrundeliegendem Debian authentifiziert.

Den User Checkmk in der Proxmox-Oberfläche erstellen

Anschließend weisen Sie den erstellten User der Gruppe 'Read only' zu.

Konfiguration der Read-Only-Gruppe in der Proxmox-Oberfläche

Klicken Sie auf Permissions (weiterhin auf Cluster-Ebene) und legen Sie dort den gewünschten Pfad für die Gruppe ‘Read only’ fest. Der Pfad definiert quasi den Startpunkt der API. In unserem Beispiel ist das /, also das root-Verzeichnis.

Als Rolle legen wir für die Gruppe hier ‘PVEAuditor’ fest. In Kombination mit dem root-Pfad darf der User nun alles auf dem Node sehen beziehungsweise lesen – hat aber keine darüber hinausgehenden Rechte.

Die richtigen Permissions für die Rolle PVEAuditor in der Proxmox-Oberfläche setzen

Den Checkmk Monitoring-Agenten installieren

Sobald Sie mit der Konfiguration fertig sind, installieren Sie den Checkmk Linux-Monitoring-Agenten auf Ihren Proxmox-Nodes.

Im Handbuch finden Sie eine Anleitung, wie Sie den Linux-Agenten installieren. Anschließend fragen Sie die Monitoring-Daten über Port 6556 im lokalen Netzwerk ab. Sollten die Daten nicht im lokalen Netzwerk sein, können Sie die Daten auch verschlüsselt über SSH mit der öffentlichen IP-Adresse abfragen.

Zusätzlich zum Agenten sollten Sie auch den Spezialagenten Proxmox VE in Checkmk konfigurieren und verwenden.

Um Ihnen das Monitoring an späterer Stelle zu vereinfachen, empfehlen wir Ihnen, dass Sie Ihr Netzwerk-Monitoring mit Checkmk optimieren, inklusive einer effizienten Überwachung Ihrer Interfaces. In unserem Blogartikel “Three rules to rule them all” finden Sie eine ausführliche Anleitung, wie Sie in Checkmk mit lediglich drei Regeln ein effizientes Netzwerk-Monitoring aufsetzen können.

Wie Sie Proxmox-Nodes überwachen

Wenn Sie die Vorarbeiten abgeschlossen haben, können Sie nun Ihre Proxmox-Nodes in das Monitoring mit Checkmk aufnehmen.

Proxmox-Nodes in das Monitoring aufnehmen

Wenn Sie einen Host hinzufügen, wählen Sie im Bereich ‘Monitoring Agents’ die Option Configured API integrations and Checkmk agent aus.

Einen Proxmox-Node in Checkmk anlegen

Als Nächstes konfigurieren Sie die API-Integration (Spezialagent) anhand der folgenden Schritte:

  1. Suchen Sie im Setup-Menü nach ‘Proxmox’.
  2. Wählen Sie unter Agents ➳ VM, Cloud, Container die Regel Proxmox VE aus.
  3. Hinterlegen Sie den in Proxmox angelegten Usernamen, indem Sie im Feld Username [name]@pve eingeben.
  4. Gehen Sie zu Explicit hosts. Geben Sie die Nodes Ihres Proxmox-Clusters an, die Checkmk über die API-Integration überwachen soll.
  5. Speichern Sie die Regel und aktivieren Sie die Änderungen.

Checkmk sollte nun sämtliche Services auf Ihren Proxmox-Hosts finden, darunter auch verschiedene Interfaces.

Hinweis: Der Spezialagent fragt hauptsächlich Piggyback-Daten ab. Sie sollten daher auf dem empfangenden Host in dessen Einstellungen im Kasten Monitoring agents die Option Always use and expect piggyback data wählen. Dadurch wird der Service Check_MK eine Warnung ausgeben, wenn Piggyback-Daten fehlen oder veraltet sind.

Wenn Sie die oben verlinkte Anleitung für ein effizientes Monitoring der Interfaces befolgt haben, sollten die Interface-Namen nicht „Interface 1“, „Interface 2“ ... sein, sondern so lauten, wie sie auch der Linux Kernel darstellt, also zum Beispiel „Interface ens16“. Damit können Sie sehen, welche Schnittstellen zum lokalen Node gehören – diese fangen beispielsweise mit „bond“ oder „eno“ an – und welche von der Virtualisierung für die VMs angelegt wurden. Die VM-Schnittstellen beginnen je nach Konfiguration mit „fw“ und „tap“.

Wie Sie Proxmox-Cluster überwachen

Wie bereits erwähnt, lassen sich Proxmox-Server entweder als Single Nodes betreiben oder in einem Cluster. Den Proxmox-Cluster sollten Sie auch in Ihrem Monitoring abbilden, da sonst die oben genannten VM-Interfaces zwischen den Nodes „wandern“, wenn Sie eine VM oder einen Container von einem Node auf eine andere verschieben.

Cluster in das Checkmk Monitoring aufnehmen

Dazu gehen Sie im Setup-Menü auf Hosts und klicken anschließend unter dem Reiter Host auf create new cluster. Dort legen Sie unter Hostname einen Namen für Ihren Cluster fest und fügen anschließend unter Nodes alle Proxmox-Server hinzu, die Sie dem Cluster zuordnen wollen.

Unter IP address family gehen Sie auf das Dropdown-Menü und wählen No IP. Die einzelnen Proxmox-Nodes haben zwar eine eigene IP, der Proxmox-Cluster an sich allerdings nicht. Daher ist es nicht notwendig beziehungsweise nicht möglich den Cluster anzupingen.

Im Bereich Monitoring agents ist es außerdem wichtig, dass Sie die Option Checkmk agent / API integrations auf die gleiche Einstellung setzen, die Sie bereits bei den einzelnen Nodes festgelegt haben: Configured API integrations and Checkmk agent.

Wenn Cluster und Nodes nicht die gleiche Datenquelle haben, erhalten Sie ansonsten eine Fehlermeldung. Anschließend speichern Sie den Cluster.

Proxmox-Cluster in Checkmk erstellenn

Services einem Proxmox-Server zuweisen

Geben Sie im Setup-Menü „clustered“ in das Suchfeld ein und wählen unter Service monitoring rules die Regel Clustered services aus. In der anschließenden Maske aktivieren Sie die Checkbox bei Explicit hosts.

Fügen Sie Ihre Proxmox-Nodes zu der angezeigten Reihe hinzu. In unserem Beispiel-Screenshot sind das die Nodes „pve-xyz-001.checkmk.com“, „pve-xyz-002.checkmk.com“ und „pve-xyz-003.checkmk.com“.

Nun aktivieren Sie die Checkbox bei Services und geben in die Felder die Such-Präfixe „Interface fw“ und „Interface tap“ an. Da Checkmk die Regel, wie es in der Beschreibung angegeben ist, auf die Nodes und nicht auf den Cluster-Host anwendet, ordnet es die auf den Nodes gefundenen Interfaces dem Cluster zu.

Services in Checkmk einem Cluster zuweisen

Indem Sie die Interfaces einem Cluster zuweisen, können die Services zwischen den einzelnen Nodes wandern, ohne dass Checkmk diese Interfaces als Vanished Services anzeigt beziehungsweise diese als neue Services auf dem aktuellen Node erkennt.

Dadurch müssen Sie die Interface-Services nicht auf dem einen Node entfernen und auf dem anderen neu hinzufügen, da diese weiterhin Bestandteil des Clusters bleiben. Nachdem Sie die Regel gespeichert und die Änderungen aktiviert haben, erkennt die Service Discovery die besagten Interfaces auf dem Cluster-Host.

Kernpunkte der Zuweisung von Services zu einem Cluster

Die Zuweisung der Interfaces auf Cluster-Ebene funktioniert jedoch nur, wenn Sie die oben verlinkte Anleitung “Three rules to rule them all” befolgt haben. Nur dann können Sie in Checkmk die Interfaces überhaupt sinnvoll filtern, da die Interfaces dadurch die benötigte Namensgebung erhalten haben.

Mit dieser Konfiguration bietet Ihnen Checkmk den Vorteil, dass Sie Ihre Proxmox-Umgebung genauestens überwachen können.

In der Host-Ansicht des Clusters sehen Sie unter Service etwa die Interfaces „fwbr“ mit einer Zahl dahinter. Bei der Zahl handelt es sich um die VM-ID.

In der Summary können Sie außerdem erkennen, auf welchem Node sich das Interface befindet. Daraus können Sie in unserem Beispiel auf einen Blick ablesen, dass sich die VM mit der ID 100 auf dem Node „pve-xyz-001.checkmk.com“ befindet.

Interfaces des Proxmox-Cluster in Checkmk

Sonderfall volatile VMs

Haben Sie in Ihrer Proxmox-Umgebung sehr volatile VMs, etwa Test-VMs, die Sie nicht überwachen wollen, empfehlen wir Ihnen folgende Vorgehensweise: Erstellen Sie in Proxmox eine VM oder einen Container mit einer benutzerdefinierten VM-ID, die sich außerhalb Ihres normalen Zahlenbereichs befindet, etwa 600-699.

Die Interfaces dieser VMs erscheinen in Checkmk beispielsweise als „Interface tap666i0“. Mit der Regel Disabled services im Setup-Menü können Sie mit der Regex „Interface fw6\d\d“ und „Interface tap6\d\d“ diese Interfaces matchen und dadurch von Ihrem Monitoring ausnehmen.

Weitere Vorteile des Proxmox-Monitorings mit Checkmk

Dank des Piggyback-Mechanismus der API-Integration kann Checkmk Informationen aus den VMs abrufen, etwa den von der VM genutzten Speicherplatz oder Arbeitsspeicher. Sie erhalten außerdem Einblick darin, wie viel des zugeteilten Arbeitsspeichers der Container bereits nutzt oder wie dessen Backup-Status ist.

Sollten Sie in einer VM keinen Agenten installieren dürfen, liefert Ihnen Checkmk auf diese Weise zumindest die wichtigsten Informationen zur VM und Sie haben den aktuellen Backup-Status jederzeit im Blick.

Wenn Sie für Ihren Proxmox-Server Ceph-Storage benutzen, empfehlen wir Ihnen zusätzlich das Plugin Ceph statistics aus unserem Exchange. Es stellt Informationen zu Ceph-Statistiken, Pools, OSDs und dem allgemeinen Status bereit.

Darüber hinaus bringt Checkmk einige offizielle Plugins für das Proxmox-Monitoring mit. Die Default-Schwellwerte für Ihre Proxmox-Services können Sie individuell anpassen, wenn Sie im Aktionsmenü des jeweiligen Services auf Parameters for this service klicken.

Fazit

Proxmox ist eine praktische Lösung für IT-Profis. Kombinieren Sie es mit Checkmk und garantieren Sie einen reibungslosen Betrieb Ihrer virtuellen Umgebung.

FAQ

Wie installiere ich PVE?

Im Vergleich zu anderen Virtualisierungslösungen ist Proxmox VE relativ einfach in nur wenigen Minuten zu installieren. Da es unter Debian läuft, ist der Vorgang der gleiche, den Sie mit Linux hätten.

Sie können den Source-Code frei herunterladen, weitergeben und unter der GNU Affero General Public License (AGPL), v3, verwenden.

Laden Sie den Proxmox VE ISO Installer herunter. Alternativ können Sie den Code auch im öffentlichen Code-Repository (git) einsehen.

Aktivieren Sie das Booten von USB oder CD/DVD (oder einem anderen Installationsmedium) in den Firmware-Einstellungen Ihrer Server. Schließen Sie das Installations-Tool an und kopieren Sie das ISO-Image über die angegebene Befehlszeile.

Folgen Sie den Anweisungen des Installationsprozesses, bevor Sie mit der Konfiguration über eine grafische Benutzeroberfläche (GUI) fortfahren.

Gibt es PVE-Subscriptions?

Sie haben die Möglichkeit, aus vier Optionen die für Ihre geschäftlichen Anforderungen passende Subskription zu wählen. Die Subskriptionen unterscheiden sich im Support-Umfang und anhand der verwendeten CPU-Sockel und Server.