Proxmox Version mit Icinag2 überwachen

Wer eine professionelle IT-Infrastruktur betreibt, setzt auf Monitoring-Lösungen wie Icinga2, um Server und Dienste im Blick zu behalten. Besonders für Virtualisierungsumgebungen wie Proxmox ist es wichtig, nicht nur den Status, sondern auch die genaue Version zu überwachen. In diesem Beitrag erfährst du Schritt für Schritt, wie du mit Icinga2 auf Ubuntu 24 die Proxmox-Version eines Servers auslesen und im Monitoring anzeigen kannst.

Situation :

  • Icinga2 ist bereits auf Ubuntu 24 installiert und eingerichtet.
  • Ein Proxmox-Server ist im Netzwerk vorhanden, aber noch nicht in Icinga2 eingebunden.
  • Du hast root- oder sudo-Rechte auf dem Icinga2-Server und Zugriff auf den Proxmox-Server.

Schritt 1: Monitoring-Plugin „check_pve.py“ installieren

Um Proxmox mit Icinga2 zu überwachen und die Version abzufragen, wird das Plugin check_pve.py benötigt. Dieses Plugin nutzt die Proxmox-API und liefert viele Metriken, darunter auch die aktuelle Version.

Installation auf dem Icinga2-Server:

sudo apt update
sudo apt install python3 python3-requests python3-packaging -y
wget https://github.com/nbuchwitz/check_pve/raw/main/check_pve.py -O /usr/lib/nagios/plugins/check_pve.py
chmod +x /usr/lib/nagios/plugins/check_pve.py

Schritt 2: Proxmox-API-Benutzer und Token anlegen

Damit Icinga2 auf die Proxmox-API zugreifen kann, muss ein dedizierter Benutzer mit den passenden Rechten in Proxmox angelegt werden.

Auf dem Proxmox-Server:

  1. Rolle „Monitoring“ anlegen:
pveum roleadd Monitoring
pveum rolemod Monitoring --privs VM.Monitor,Sys.Audit,Sys.Modify,Datastore.Audit,VM.Audit

Benutzer „monitoring@pve“ anlegen:

pveum useradd monitoring@pve --comment "Icinga2 Monitoring User"

API-Token für den Benutzer erstellen:

pveum user token add monitoring@pve monitoring

Den generierten Token sicher notieren!

Rolle und Token zuweisen:

pveum acl modify / --roles Monitoring --user 'monitoring@pve' pveum acl modify / --roles Monitoring --tokens 'monitoring@pve!monitoring'

Schritt 3: Proxmox-Server als Host in Icinga2 anlegen

Füge den Proxmox-Server als neuen Host in deine Icinga2-Konfiguration ein. Beispiel für eine hosts.conf:

object Host "proxmox01" {
  import "generic-host"
  address = "192.168.1.100"
  vars.proxmox_api_user = "monitoring@pve"
  vars.proxmox_api_token = "monitoring=abcdef12-3456-7890-abcd-deadbeef1234"
}

Schritt 4: Service für die Proxmox-Version definieren

Jetzt wird der eigentliche Service angelegt, der die Version abfragt. Beispiel für eine services.conf:

apply Service "proxmox-version" {
  import "generic-service"
  check_command = "proxmox_version"
  assign where host.vars.proxmox_api_user
}

Command Definition (commands.conf):
object CheckCommand "proxmox_version" {
  import "plugin-check-command"
  command = [ "/usr/lib/nagios/plugins/check_pve.py" ]
  arguments = {
    "-e" = "$address$"
    "-u" = "$proxmox_api_user$"
    "-t" = "$proxmox_api_token$"
    "-m" = "version"
  }
}

Schritt 5: Icinga2 neu laden und Ergebnis prüfen

Nach dem Hinzufügen der Konfiguration:

sudo systemctl reload icinga2

Im Icinga2-Webinterface sollte nun beim Proxmox-Host der Service „proxmox-version“ erscheinen und die installierte Proxmox-Version anzeigen, z.B.:

OK - Proxmox VE version: 8.1-2

Wenn Sie Unterstützung bei Ihrem Icinga2 Monitoring benötigen, dann kommen Sie gerne auf uns zu.

Icinga2 ist Ihnen zu komplex und Sie haben keine Zeit die Konfiguration selbst zu pflegen? Dann schauen Sie bei unserem SAAS Monitoring Produkt ADMIN-BOX auf unserer Webseite www.admin-box.de vorbei.

Falls Sie interesse an weiten Icinga2 Blog beiträgen haben, gehts hier entlang!