Proxmox Backup Server umfassend in Icinga2 überwachen

Ein zuverlässiges Monitoring ist entscheidend, um die Stabilität und Sicherheit Ihrer Backup-Infrastruktur zu gewährleisten. Mit Icinga2 lassen sich Proxmox Backup Server (PBS) nicht nur auf erfolgreiche Backups, sondern auch auf Systemressourcen, Netzwerk und Dienste umfassend überwachen. In diesem Blogbeitrag erhalten Sie eine ausführliche, praxisorientierte Anleitung, wie Sie Ihren PBS professionell in Icinga2 integrieren – inklusive aller relevanten Pfadangaben, Konfigurationsbeispiele und Erweiterungsmöglichkeiten.

Warum ist umfassendes Monitoring für den PBS wichtig?

  • Früherkennung von Problemen: Fehlerhafte Backups, volle Datenspeicher oder Ressourcenengpässe werden sofort erkannt.
  • Schnelle Reaktion: Automatische Benachrichtigungen ermöglichen ein schnelles Eingreifen.
  • Transparenz: Sie behalten jederzeit den Überblick über den Zustand Ihrer Backup-Umgebung.

1. Voraussetzungen

  • Icinga2 ist installiert und läuft auf einem Monitoring-Server.
  • Ihr Proxmox Backup Server ist im Netzwerk erreichbar.
  • Sie haben root- oder sudo-Rechte auf beiden Systemen.

2. Monitoring-Plugin auf dem PBS installieren

Wir verwenden das Plugin check_pve.py, das mit Proxmox Backup Server kompatibel ist und über die API viele Systemmetriken abfragt.

Kommando auf dem PBS:

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

Pfad: /usr/lib/nagios/plugins/check_pve.py

3. API-Benutzer auf dem PBS einrichten

Damit das Plugin auf die PBS-API zugreifen kann, benötigen Sie einen dedizierten Benutzer:

pveum user add monitoring@pbs --password <starkes-passwort>
pveum acl modify / --user monitoring@pbs --role Administrator

Tipp: Für produktive Umgebungen empfiehlt sich ein User mit minimalen Rechten, hier wird zu Demonstrationszwecken der Administrator genutzt.

4. Icinga2-CheckCommands anlegen

Legen Sie die Datei /etc/icinga2/conf.d/commands.conf an (oder ergänzen Sie sie):

object CheckCommand "check_pbs_ping" {
  command = [ PluginDir + "/check_ping" ]
  arguments = {
    "-H" = "$host.address$"
    "-w" = "100,20%"
    "-c" = "200,50%"
  }
}

object CheckCommand "check_pbs_port" {
  command = [ PluginDir + "/check_tcp" ]
  arguments = {
    "-H" = "$host.address$"
    "-p" = "8007"
  }
}

object CheckCommand "check_pbs_storage" {
  command = [ "/usr/lib/nagios/plugins/check_pve.py" ]
  arguments = {
    "--api-endpoint" = "$host.address$"
    "--username" = "monitoring@pbs"
    "--password" = "$pbs_password$"
    "--mode" = "storage"
    "--name" = "datastore"
    "--warning" = "75"
    "--critical" = "90"
  }
}

object CheckCommand "check_pbs_cpu" {
  command = [ "/usr/lib/nagios/plugins/check_pve.py" ]
  arguments = {
    "--api-endpoint" = "$host.address$"
    "--username" = "monitoring@pbs"
    "--password" = "$pbs_password$"
    "--mode" = "cpu"
    "--warning" = "80"
    "--critical" = "95"
  }
}

object CheckCommand "check_pbs_memory" {
  command = [ "/usr/lib/nagios/plugins/check_pve.py" ]
  arguments = {
    "--api-endpoint" = "$host.address$"
    "--username" = "monitoring@pbs"
    "--password" = "$pbs_password$"
    "--mode" = "memory"
    "--warning" = "75"
    "--critical" = "90"
  }
}

object CheckCommand "check_pbs_backup" {
  command = [ "/usr/lib/nagios/plugins/check_pve.py" ]
  arguments = {
    "--api-endpoint" = "$host.address$"
    "--username" = "monitoring@pbs"
    "--password" = "$pbs_password$"
    "--mode" = "backup"
    "--warning" = "1"
    "--critical" = "0"
  }
}

object CheckCommand "check_pbs_uptime" {
  command = [ PluginDir + "/check_uptime" ]
  arguments = {
    "-w" = "1"
    "-c" = "0"
  }
}

5. Host-Definition für den PBS

Erstellen oder ergänzen Sie /etc/icinga2/conf.d/hosts.conf:

object Host "pbs-host" {
  import "generic-host"
  address = "192.168.1.100" // IP-Adresse Ihres PBS
  vars.pbs_password = "IhrSicheresPasswort"
}

6. PBS-Services in Icinga2 definieren

Legen Sie die Datei /etc/icinga2/conf.d/services.conf an oder erweitern Sie sie:

apply Service "PBS Ping" {
  check_command = "check_pbs_ping"
  interval = 1m
  assign where host.name == "pbs-host"
}

apply Service "PBS Port 8007" {
  check_command = "check_pbs_port"
  interval = 5m
  assign where host.name == "pbs-host"
}

apply Service "PBS Storage" {
  check_command = "check_pbs_storage"
  interval = 15m
  assign where host.name == "pbs-host"
}

apply Service "PBS CPU Load" {
  check_command = "check_pbs_cpu"
  interval = 5m
  assign where host.name == "pbs-host"
}

apply Service "PBS Memory" {
  check_command = "check_pbs_memory"
  interval = 5m
  assign where host.name == "pbs-host"
}

apply Service "PBS Backup Status" {
  check_command = "check_pbs_backup"
  interval = 15m
  assign where host.name == "pbs-host"
}

apply Service "PBS Uptime" {
  check_command = "check_pbs_uptime"
  interval = 60m
  assign where host.name == "pbs-host"
}

7. Erweiterte Checks und Tipps

  • Netzwerkschnittstellen überwachen:
    Sie können mit dem Standard-Plugin check_snmp Netzwerktraffic und Schnittstellenstatus überwachen, sofern SNMP auf dem PBS aktiviert ist.
  • Weitere Ports prüfen:
    Ergänzen Sie weitere check_pbs_port-Instanzen für SSH (Port 22) oder andere Dienste.
  • Benachrichtigungen:
    Richten Sie E-Mail- oder andere Benachrichtigungen für die PBS-Services ein, um bei Problemen sofort informiert zu werden.
  • Performance-Daten:
    Die meisten Plugins liefern Performance-Daten, die Sie für Langzeitauswertungen z.B. in Grafana nutzen können.

8. Icinga2-Konfiguration neu laden

Nach jeder Änderung an der Konfiguration laden Sie Icinga2 neu:

systemctl reload icinga2

9. Überwachung im Icinga2-Webinterface

Nach wenigen Minuten erscheinen alle PBS-Services im Icinga2-Frontend. Sie sehen auf einen Blick:

  • Backup-Status und Fehler
  • Speicher- und RAM-Auslastung
  • CPU-Last
  • Erreichbarkeit (Ping)
  • API-Port-Status
  • System-Uptime

Jede Abweichung von den definierten Schwellwerten löst automatisch eine Warnung oder einen Alarm aus.

Fazit

Mit dieser Anleitung integrieren Sie Ihren Proxmox Backup Server umfassend und professionell in Icinga2. Sie profitieren von einem zentralen Monitoring aller relevanten PBS-Komponenten und können Probleme frühzeitig erkennen und beheben. Die Konfiguration ist flexibel erweiterbar und lässt sich an individuelle Anforderungen anpassen. So bleibt Ihre Backup-Infrastruktur jederzeit sicher und transparent überwacht.

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!