Proxmox Server Überwachung

Begonnen von jay-jey, 22 Mai 2025, 07:18:12

Vorheriges Thema - Nächstes Thema

jay-jey

Hallo,

ich habe hier einen Proxmox server laufen. Der läuft aber leider nur so zu 99% zuverlässig. Ab und zu hängt sich der Server auf. Ich habe aber auch noch einen kleinen Raspi Zero hier laufen, daher war mein Plan, wenn der Server sich aufhängt, dann schaltet der RPI einen Shelly switch und starte den Server so neu. Leider habe ich jetzt festgestellt, dass ein PRESENCE nicht funktioniert. Weil der Server sich zwar aufgehangen hat aber auf Pings noch reagiert. Daher hätte ich die Frage: Hab ihr nen Vorschlag was ich ansonsten nutzen könnte? FHEM2FHEM? Auf beiden Rechnern läuft FHEM.

Ralli

Proxmox bietet eine API-Schnittstelle, die du abfragen kannst.

https://proxmox:8006/api2/json

https://pve.proxmox.com/pve-docs/api-viewer/
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

jay-jey

Okay, sieht ganz nett aus. Aber ich frage mich grade ob die API noch funktioniert wenn der Server sich aufgehangen hat. Weil auf die normale Oberfläche komme ich dann nicht mehr.

Ralli

#3
Na, genau das ist doch der Trick - zusammen mit einem Watchdog kannst du so die Lösung bauen. Oder du nutzt im Modul PRESENCE die "function" und schreibst dir eine kleine Perl-Funktion, die eine Abfrage auf die Proxmox-Api durchführt - wenn eine korrekte Rückmeldung kommt, ist der Rückgabewert 1, wenn nicht, dann 0.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

RalfRog

Hi jay-jay
Wär der Beitrag (gerade auch mit dem Hinweis auf die API) nicht besser im Bereich "Server - Linux" aufgehoben?

==> https://forum.fhem.de/index.php?board=33.0
FHEM auf Proxmox VM Bookworm (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen

Ralli

Für eine ganz einfache Statusinformation habe ich mal auf die Schnelle das folgende HTTPMOD zusammengestellt, als kleinen Denkanstoß bzw. als Basis für eine schönere Variante:

defmod pve1 HTTPMOD none 60
attr pve1 bodyDecode auto
attr pve1 enableControlSet 1
attr pve1 enableCookies 1
attr pve1 enforceGoodReadingNames 1
attr pve1 event-on-change-reading .*
attr pve1 extractAllJSON 0
attr pve1 get01ExtractAllJSON 1
attr pve1 get01Header Cookie: PVEAuthCookie=%%ticket%%\
CSRFPreventionToken: %%csrf%%\
Content-Type: application/json;; charset=utf-8
attr pve1 get01Name Info
attr pve1 get01Poll 1
attr pve1 get01PollDelay 180
attr pve1 get01URL %%base_url%%/nodes
attr pve1 get02ExtractAllJSON 0
attr pve1 get02Header Cookie: PVEAuthCookie=%%ticket%%\
CSRFPreventionToken: %%csrf%%\
Content-Type: application/json;; charset=utf-8
attr pve1 get02JSON data
attr pve1 get02Name lxcStatus
attr pve1 get02TextArg 1
attr pve1 get02URL %%base_url%%/nodes/$val1/lxc/$val2/status/current
attr pve1 get03ExtractAllJSON 0
attr pve1 get03Header Cookie: PVEAuthCookie=%%ticket%%\
CSRFPreventionToken: %%csrf%%\
Content-Type: application/json;; charset=utf-8
attr pve1 get03JSON data
attr pve1 get03Name ClusterStatus
attr pve1 get03URL %%base_url%%/cluster/ha/resources
attr pve1 handleRedirects 1
attr pve1 reAuthAlways 0
attr pve1 reAuthRegex No ticket|invalid PVE ticket
attr pve1 reading01JSON data_CSRFPreventionToken
attr pve1 reading01Name CSRFPreventionToken
attr pve1 reading02JSON data_ticket
attr pve1 reading02Name ticket
attr pve1 replacement01Mode key
attr pve1 replacement01Regex %%pve_password%%
attr pve1 replacement01Value pve_password
attr pve1 replacement02Mode key
attr pve1 replacement02Regex %%pve_user%%
attr pve1 replacement02Value pve_user
attr pve1 replacement03Mode text
attr pve1 replacement03Regex %%base_url%%
attr pve1 replacement03Value https://%%ip%%:8006/api2/json
attr pve1 replacement04Mode text
attr pve1 replacement04Regex %%ip%%
attr pve1 replacement04Value ***HIER_DEINE_PROXMOX_SERVER_IP***
attr pve1 replacement05Mode expression
attr pve1 replacement05Regex %%csrf%%
attr pve1 replacement05Value {ReadingsVal($name,"CSRFPreventionToken","")}
attr pve1 replacement06Mode expression
attr pve1 replacement06Regex %%ticket%%
attr pve1 replacement06Value {ReadingsVal($name,"ticket","")}
attr pve1 sid1Data {"username": "%%pve_user%%","password": "%%pve_password%%"}
attr pve1 sid1Header Content-Type: application/json;; charset=utf-8
attr pve1 sid1ParseResponse 1
attr pve1 sidURL %%base_url%%/access/ticket
attr pve1 timeout 5
attr pve1 verbose 5

Das Device anlegen, mittels

set pve1 storeKeyValue pve_user xyz
set pve1 storeKeyValue pve_password abc

dem Device noch den zu nutzenden Proxmox-User sowie dessen Passwort bekannt machen und schon sollten da ein paar Werte kommen. Nicht hübsch gemacht aber funktional.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa