Proxmox VE überwachen
Node64 überwacht Proxmox-VE-Systeme – einen einzelnen Node oder einen ganzen Cluster – nur lesend über die Proxmox-API: Nodes, VMs und Container, Abstürze, Neustarts und Schwellen für CPU, RAM und Disk. Node64 startet, stoppt oder ändert in Proxmox nichts.
Überblick
Die Überwachung gehört zu den Healthchecks und liegt unter Healthchecks → Proxmox VE. Sie läuft nur, solange das Modul Healthchecks eingeschaltet ist.
- Zustand je Gast: läuft, Backup, gesperrt (Migration, Snapshot …), angehalten, suspendiert, gestoppt, abgestürzt (über
qmpstatus), unbekannt. - CPU, RAM, Disk, Netz und Laufzeit je Node und Gast, Graphen für 1 h, 24 h, 7 und 30 Tage.
- Regeln mit Vererbung System → Node → Gast und Meldungen über deine vorhandenen Benachrichtigungskanäle.
- Einzelne Gäste oder Nodes führst du auf Wunsch als normalen Check – mit Statusseiten, Uptime-Balken und Sync mit ipv64.
Messdaten, Verlauf, Graphen und Prometheus-Werte bleiben lokal. An ipv64 geht nur der Zustand der Gäste, die du „als Check“ führst – wie bei jedem anderen Healthchecks-Check.
Einrichtung
1. Lese-Token in Proxmox anlegen
Zeigt Node64 nur den Node, aber keine Gäste, und steht auf der Systemseite der gelbe Hinweis „Dem Token fehlen Leserechte“, wurde das Token mit Privilege Separation angelegt. Das ist der Standard – auch beim Anlegen in der Proxmox-Oberfläche und auch für root@pam. Ein solches Token hat keine eigenen Rechte, auch nicht die von root.
Lösung: dem Token und seinem Benutzer die Rolle PVEAuditor auf / geben – bei Privilege Separation zählt nur, was beide dürfen (IDs anpassen):
pveum acl modify / --users '<user@realm>' --roles PVEAuditor
pveum acl modify / --tokens '<user@realm!token>' --roles PVEAuditorOder in der Oberfläche: Rechenzentrum › Berechtigungen › Hinzufügen › API-Token-Berechtigung – Pfad /, Token auswählen, Rolle PVEAuditor, Haken bei Weitergeben. Nach spätestens 30 Sekunden erscheinen die Gäste. PVEAuditor darf nur lesen – Node64 kann damit nichts starten, stoppen oder ändern.
Fehlt nur das Recht Sys.Audit auf /, erscheint ein Cluster als „Cluster – Quorum unbekannt“: Clustername, Quorum und Node-Zustand fehlen. Die wirksamen Rechte des Tokens prüfst du auf einem Proxmox-Node mit pveum user token permissions <user> <token> --path / – Sys.Audit muss dabei sein.
Auf einem Node als root ausführen, zum Beispiel unter Datacenter → Node → Shell:
pveum user add node64@pve
pveum aclmod / -user node64@pve -role PVEAuditor
pveum user token add node64@pve monitor --privsep 0Proxmox zeigt das Secret nur einmal an – gleich kopieren. Die Token-ID lautet dann node64@pve!monitor.
Mit Privilege Separation (--privsep 1, Standard in der Proxmox-Oberfläche) hat das Token keine eigenen Rechte, auch wenn der Benutzer welche hat – und es gilt nur die Schnittmenge aus Benutzer- und Token-Rechten. Dann braucht das Token selbst die Rolle, zusätzlich zu der seines Benutzers (oben schon gesetzt):
pveum user token add node64@pve monitor --privsep 1
pveum aclmod / -token 'node64@pve!monitor' -role PVEAuditorIn neueren Versionen geht auch pveum acl modify / --tokens 'node64@pve!monitor' --roles PVEAuditor. Die Rolle PVEAuditor auf / reicht für alles, was Node64 liest. Sieht das Token keine Gäste, warnt Verbindung testen; der Hinweis auf der Systemseite zeigt die passenden Befehle für Benutzer und Token.
2. System hinzufügen
- Adresse(n)
https://<node>:8006– eine reicht. Im Cluster lernt Node64 die anderen Nodes selbst und weicht bei einem Ausfall auf sie aus. Weitere Adressen (eine je Zeile) sind feste Ausweichziele. - Token-ID und Secret
Das Secret wird verschlüsselt auf der Node gespeichert und nie wieder angezeigt. Beim Bearbeiten behält ein leeres Feld das gespeicherte Secret. Das gespeicherte Secret gilt nur für dieselben Adressen und denselben Pin – änderst du das Ziel, gibst du das Secret neu ein. - Verbindung testen
Zeigt Version, Cluster, Nodes, Anzahl der Gäste und den SHA-256-Fingerabdruck des Zertifikats. Bei selbstsignierten Zertifikaten (Proxmox-Standard) vergleichst du ihn in Proxmox unter Node → System → Zertifikate und bestätigst Fingerabdruck stimmt – festpinnen. Bei Zertifikaten einer bekannten CA, etwa Let's Encrypt über ACME, ist das Pinning optional. Eine Option „Prüfung aus“ gibt es nicht. Das Token schickt Node64 nie an ein unbestätigtes Zertifikat: erst den Fingerabdruck bestätigen, dann noch einmal Verbindung testen. - Intervall
15–300 Sekunden, Standard 30. Der Cluster-Status wird jede Minute abgefragt, derqmpstatuslaufender VMs alle 2 Minuten.
Wird das Zertifikat in Proxmox neu ausgestellt, meldet die Abfrage certificate mismatch. Dann im Bearbeiten Verbindung testen und den neuen Fingerabdruck bestätigen.
Übersicht und System
Proxmox VE listet alle Systeme mit Zustand (in Ordnung, teilweise gestört, nicht erreichbar, Fehler, aus), Version, Cluster und Quorum, Nodes online, Gästen laufend bzw. gestört und der letzten Abfrage. Von hier aus bearbeitest, schaltest und löschst du Systeme. Darüber zeigen Kacheln den Stand über alle Systeme: Systeme, Nodes online, Gäste laufend und gestört, Auslastung von CPU und RAM sowie die letzte Störung.
Ein System zeigt oben Kacheln – Nodes online mit Cluster und Quorum, Gäste, laufend, gestört (als Filter klickbar) und die Auslastung von CPU, RAM und Kernen – und darunter Nodes und Gäste als Tabelle: Name, ID, Typ (VM oder Container), Node, Zustand inklusive Backup, Lock und Absturz, CPU, RAM, Disk, Netz, Laufzeit, CPU-Verlauf der letzten Stunde und den Schalter als Check. Filtern kannst du nach Zustand (u. a. „gestört“), Node, Typ und per Suche nach Name, ID oder Tags. Darunter stehen die Regeln des Systems.
Vorlagen und Gäste mit dem Proxmox-Tag nomonitor werden nicht überwacht. Hängt bei einem gestoppten Gast ein Lock, gilt er nach 4 Stunden trotzdem als gestoppt.
Auf dem Dashboard fasst eine Proxmox-Karte alle Systeme zusammen. Ein System zählt dort nur mit eigenem Problem als gestört – nicht erreichbar, Node offline oder Quorum verloren; gestörte Gäste stehen getrennt unter „Gäste gestört“.
Zeigt ein System token secret cannot be decrypted oder token secret missing, fehlt der Schlüssel für das Secret, etwa nach einem Import ohne Passwort. Das System wird dann nicht abgefragt – trag das Secret neu ein.
Gast und Node im Detail
Die Detailseite eines Gasts oder Nodes zeigt die aktuellen Werte und Graphen für 1 h, 24 h, 7 Tage und 30 Tage: CPU mit Spitze, RAM und Disk, Netz rein und raus, Disk lesen und schreiben. Darunter stehen die Regeln dieser Ebene.
Gespeichert werden 1-Minuten-Werte für 48 Stunden, 5-Minuten-Werte so lange wie Einzelmessungen aufbewahren und Stundenwerte so lange wie Stundenwerte aufbewahren – dieselben lokalen Einstellungen wie bei den Healthchecks.
Regeln und Benachrichtigung
Regeln gelten mit Vererbung System → Node → Gast, die untere Ebene überschreibt die obere. Jede Zeile zeigt, was ohne eigenen Wert gilt und woher es kommt („Standard“, „vom System geerbt“, „vom Node geerbt“).
| Regel | Standard | Bedeutung |
|---|---|---|
| Absturz | an | qmpstatus internal-error, guest-panicked oder io-error – sofort, ohne Verzögerung |
| Gestoppt | an | nur wenn der Gast laufen soll: automatisch, sobald er einmal lief; je Gast fest einstellbar |
| Angehalten / Suspendiert | an | Gast pausiert bzw. suspendiert |
| Node offline | an | Node laut Cluster-Status offline; seine Gäste melden dann nicht einzeln |
| System nicht erreichbar | an | keine Adresse antwortet; gemeldet erst nach der Verzögerung, die auch zeitlich abgewartet wird |
| Neustart | an | Laufzeit springt zurück, obwohl der Gast weiterläuft (Hinweis) |
| CPU / RAM / Disk über | 90 % 10 min / 95 % 10 min / 90 % | mindestens so lange über der Grenze; 0 % schaltet aus. Disk nur bei Containern und VMs mit Gast-Agent |
| Verzögerung | 2 Abfragen | erst melden, wenn der Zustand so viele Abfragen anhält – die Entwarnung ebenso |
| Kanäle | Standardkanäle | wohin die Meldungen gehen – Auswahl wie im Check-Formular, siehe unten |
Kanäle
Auf Systemebene wählst du wie bei einem Check bestimmte Kanäle aus; ohne Auswahl gehen die Meldungen an die Standardkanäle. Node und Gast erben die Auswahl – angezeigt mit „vom System geerbt“ bzw. „vom Node geerbt“ – oder bekommen eine eigene Auswahl (ohne Haken = Standardkanäle). Gelöschte Kanäle werden beim Senden übergangen; bleibt keiner der gewählten übrig, gehen die Meldungen an die Standardkanäle. Für Gäste als Check gelten bei Ausfall und Entwarnung die Kanäle des Checks; beim Anlegen übernimmt er die Kanäle aus den Proxmox-Regeln.
Stumm, Ruhezeiten und Wartung
Stumm schaltet die Meldungen eines Systems, Nodes oder Gasts ab. Ruhezeiten gelten für alle Proxmox-Meldungen, auch für Abstürze: Wie bei Checks werden sie in der Ruhezeit zurückgehalten und danach als eine Sammelmeldung verschickt – je Gast bzw. Node mit dem letzten Stand (noch gestört bzw. über der Schwelle, zwischendurch gestört und wieder in Ordnung, Neustart) und einem Link auf die Proxmox-Seite. In einem Wartungsfenster für alle Checks kommen keine Proxmox-Meldungen; ein Fenster für bestimmte Checks gilt für Gäste, die als Check geführt werden. Proxmox-Meldungen haben eigene Arten:
| Art | Wann |
|---|---|
proxmox_down | System nicht erreichbar, Node offline, Gast gestoppt, angehalten, suspendiert oder abgestürzt |
proxmox_up | Entwarnung, mit Dauer |
proxmox_threshold / proxmox_threshold_ok | Schwelle überschritten / wieder darunter |
proxmox_restarted | Neustart erkannt |
Gemeldete Störungen überstehen einen Neustart der Node: Danach kommt keine zweite Meldung, nur die Entwarnung, sobald alles wieder passt.
Als Check führen
Der Schalter als Check (je Gast und Node) legt einen normalen Healthchecks-Check vom Typ proxmox an – Name „System – Gast“, Gruppe „Proxmox VE“, Intervall wie das System. Damit greifen Statusseiten, Uptime-Balken, der Sync mit ipv64 und die Einstellungen des Checks wie Kanäle, Erinnerungen und „kritisch“. Genauso geht es unter Healthchecks → Neuer Check mit dem Typ Proxmox VE (VM, Container, Node) – siehe Check aus einem überwachten System. Der Check fragt Proxmox nicht selbst, sondern liest den letzten Stand der Abfrage:
- up: läuft, Backup, gesperrt (Gast) bzw. online (Node)
- down:
pve_stopped,pve_paused,pve_suspended,pve_crashed,pve_offline,pve_unknown,pve_missing(Gast nicht mehr vorhanden),pve_unreachable(System nicht erreichbar, aus oder Stand zu alt)
Ausfall und Entwarnung kommen dann nur über den Check, Neustart und Schwellen weiter über Proxmox VE. Wie Docker-Checks laufen proxmox-Checks nur lokal auf der Node, die das System abfragt – nicht online und nicht auf andere Nodes verschiebbar. Schaltest du das System aus, pausieren seine Checks; löschst du es, verschwinden sie. Ist das System beim Einschalten von „als Check“ ausgeschaltet, wird der Check pausiert angelegt. Doppelte Meldungen gibt es nicht.
API
Unter /api/healthchecks/proxmox, Anmeldung wie bei der übrigen API:
| Methode | Pfad | Zweck |
|---|---|---|
| GET, POST | /systems | Liste mit Zustand (ohne Secret) / anlegen; liefert nur Proxmox-Systeme, mit ?kind=docker bzw. ?kind=all auch Docker-Hosts |
| GET, PUT, DELETE | /systems/{id} | lesen / Teiländerung (leeres secret behält es) / löschen; geänderte Adressen oder Pin ohne neues Secret: 422 pve.err.secret_reenter |
| POST | /probe | Verbindung testen: Fingerabdruck, Version, Nodes, Gäste; need_confirm = Fingerabdruck erst bestätigen |
| GET | /systems/{id}/resources | Nodes und Gäste der letzten Abfrage |
| GET | /systems/{id}/series?key=qemu/101&range=24h | Verlauf für 1h, 24h, 7d, 30d |
| GET, PUT, DELETE | /systems/{id}/settings[?key=…] | Einstellungen und wirksame Regeln / Ebene setzen (as_check legt den Check an; rules.channels: fehlt = erben, [] = Standardkanäle, sonst Kanal-IDs; wirksam in effective.channels) / zurücksetzen |
Prometheus
Abruf über den lokalen Prometheus-Endpunkt der Node unter /api/metrics, mit API-Key wie die übrigen Kennzahlen (siehe Prometheus & Grafana):
| Metrik | Bedeutung |
|---|---|
node64_pve_up{system} | API erreichbar (1/0) |
node64_pve_error, node64_pve_poll_failures_total | letzte Abfrage fehlgeschlagen bzw. nicht abfragbar; Fehler seit dem Start |
node64_pve_enabled, node64_pve_last_poll_seconds, node64_pve_quorate | eingeschaltet, Zeit der letzten Abfrage, Quorum |
node64_pve_guests_running, node64_pve_guests_bad | Anzahl je System |
node64_pve_node_up{system,node}, node64_pve_node_{cpu,memory,disk}_ratio, node64_pve_node_uptime_seconds | je Node |
node64_pve_guest_state{system,node,type,vmid,name,state} | immer 1, Zustand im Label |
node64_pve_guest_up, node64_pve_guest_{cpu,memory,disk}_ratio, node64_pve_guest_uptime_seconds | je Gast {system,type,vmid}, Anteile 0..1 |
node64_pve_guest_net_{in,out}_bytes, node64_pve_guest_disk_{read,write}_bytes | Netz und Disk-I/O je Gast in Byte/s, Mittel seit der letzten Abfrage |
node64_pve_guest_memory_bytes, node64_pve_guest_cpus | RAM in Byte und zugewiesene CPUs je Gast |
Insgesamt höchstens 1000 Gäste, Namen höchstens 64 Zeichen, Vorlagen nicht. Alle Reihen tragen zusätzlich das Label system_id.
Export und Import
Der Export der Konfiguration enthält die Systeme mit Einstellungen und Regeln. Das Token-Secret ist nur beim Export mit Passwort dabei, verschlüsselt. Ohne Passwort wird ein System beim Import ausgeschaltet angelegt und zeigt „Secret fehlt“, bis du es einträgst. Checks „als Check“ werden auf das System der neuen Node umgestellt. Gewählte Kanäle werden wie bei Checks auf die Kanäle der neuen Node umgeschrieben; fehlt ein Kanal dort, entfällt er – bleibt keiner übrig, gelten die Standardkanäle. Gleichnamige Systeme ordnet der Import über die Adressen zu.
Etwas unklar, fehlt etwas oder hast du eine Frage zu Node64? Frag im offiziellen Forum v64.tech.