Proxmox kann verschiedene Performancedaten zu Hosts, VMs, Containern und Speicher direkt an externe Metrik-Server senden.
Aktuell werden Graphite und InfluxDB unterstützt. (TIG-Stack mit Debian 10)
02.12.2020 - Anleitung aktualisiert
Proxmox Konfiguration
Auf dem Proxmox Host muss in der /etc/pve/status.cfg der InfluxDB Server konfiguriert werden.
Sollte die Datei noch nicht existieren, einfach eine neue erstellen.
influxdb: server 192.168.50.36 # IP des InfluxDB Servers port 8089 # Port des InfluxDB Servers
Sofort nach dem speichern beginnt Proxmox Daten an den InfluxDB Server zu übermitteln. Es muss nichts neu gestartet werden!
PVE 6.3 – Kann ab der Proxmox Version 6.3 auch im Webinterface eingerichtet werden.
InfluxDB Konfiguration
Proxmox sendet die Daten über UDP. In der /etc/influxdb/influxdb.conf ist folgende Einstellung vorzunehmen.
[[udp]] enabled = true bind-address = ":8089" # IP und Port des InfluxDB Servers. database = "proxmox" # InfluxDB Datenbankname, wird automatisch erstellt. batch-size = 1000 batch-timeout = "1s"
Der influxdb.service muss nach den Änderungen neu gestartet werden.
systemctl restart influxdb.service
Ein Blick in die InfluxDB zeigt ob schon was angekommen ist.
root@tig:~# influx Connected to http://localhost:8086 version 1.7.6 InfluxDB shell version: 1.7.6 Enter an InfluxQL query # Datenbanken anzeigen > show databases name: databases name ---- _internal proxmox > # Datenbank wechseln > use proxmox # Messungen anzeigen > show measurements name: measurements name ---- ballooninfo blockstat cpustat memory nics system > # Datenreihen anzeigen > show series key --- ballooninfo,host=backuppc,nodename=pmx01,object=qemu,vmid=100 ballooninfo,host=iobroker,nodename=pmx01,object=qemu,vmid=104 blockstat,host=backuppc,instance=ide2,nodename=pmx01,object=qemu,vmid=100 blockstat,host=backuppc,instance=scsi0,nodename=pmx01,object=qemu,vmid=100 cpustat,host=pmx01,object=nodes memory,host=pmx01,object=nodes nics,host=backuppc,instance=tap100i0,nodename=pmx01,object=qemu,vmid=100 nics,host=iobroker,instance=tap104i0,nodename=pmx01,object=qemu,vmid=104 --- SNIP --- # einfache query > select * from memory limit 5 name: memory time host memfree memshared memtotal memused object swapfree swaptotal swapused ---- ---- ------- --------- -------- ------- ------ -------- --------- -------- 1558980370000000000 pmx01 20914991104 0 33690886144 12775895040 nodes 8408526848 8589930496 181403648 1558980380000000000 pmx01 20914130944 0 33690886144 12776755200 nodes 8408526848 8589930496 181403648 1558980390000000000 pmx01 20913688576 0 33690886144 12777197568 nodes 8408526848 8589930496 181403648 1558980400000000000 pmx01 20853469184 0 33690886144 12837416960 nodes 8408526848 8589930496 181403648 1558980410000000000 pmx01 20912672768 0 33690886144 12778213376 nodes 8408526848 8589930496 181403648
Passt, Performancedaten landen in InfluxDB.
Grafana Data Source für Proxmox erstellen
Configuration → Data Sources → Add data source → Type: InfluxDB → Database: proxmox
Grafana Dashboard für Proxmox erstellen
Dashboards → Manage → import → Grafana.com Dashboard: https://grafana.com/dashboards/10048 (Dashboard von der Grafana Community)
Gefällt mir schon sehr gut und funktioniert auch schon (fast) alles auf Anhieb.
Eignet sich schon mal gut als Vorlage. Werde es meinen Bedürfnissen aber noch ein wenig anpassen.
Mein Proxmox Grafana Dashboard
Proxmox-Grafana-Dashboard-r1_2019-06-12.json
Moinsen.
Hab das mal nach deiner Anleitung versucht…Schlägt aber fehl.
Kann es sein, daß das nur geht, wenn die Authentifizierung in Influx deaktiviert ist?
Ich habe nämlich “auth” aktiv und es kommen keine Daten an.
Die Daten werden über UDP übertragen, dieses Protokoll unterstützt keine Authentifizierung.
Hier müsste seitens Proxmox nachgebessert werden.
Grüße. Hab den Fehler gefunden.
Ja UDP selbst hat kein AUTH, aber ich dachte vielleicht hängt es damit zusammen.
Der Fehler lag in der influxdb.conf. Dort hatte ich für UDP gleich ne Retention Policy eingerichtet.
Wenn das eingerichtet ist kommen keine Daten an. Warum auch immer.
Ich hab dann die Policy direkt in der influxdb Konsole erzeugt.
Damit geht es dann, denn ein paar Tage reichen mir zum “reinschauen”. ;-)
Interessant, danke für die Info!
Vor allem für diesen Zweck ist zu empfehlen eine Retention Policy auf die Datenbank zu setzen. Die müllt sonst nur unnötig zu.
CREATE RETENTION POLICY “one_week” on “proxmox” DURATION 7d REPLICATION 1 DEFAULT
Hallo, top Anleitung. Vielen Dank. Eine Frage habe ich:
Ich habe 2 Intel NUC, auf beiden läuft Proxmox.
NUC 1 hat u. a. die InfluxDB, hier bin ich jetzt nach der obigen Anleitung vorgegangen, klappt alles, “proxmox” Datenbank wird angelegt und beschrieben.
Auf NUC 2 läuft u. a. Grafana, Dashbord zur Visualisierung von NUC 1 hab ich angelegt, klappt auch.
Wie kann ich denn jetzt den NUC 2 visualisieren? Ich kann ja auf NUC 2 nicht die o. a. Anleitung nehmen, da die Datenbak “proxmox” ja schon vorhanden ist und eine zweite Influx Instanz auf NUC 2 wollte ich eigentlich nicht anlegen. Wenn ich das richtig verstanden habe, wird die “proxmox” DB automatisch angelegt nach dem Ändern der /etc/pve/status.cfg.
Vielen Dank für die Hilfe
Frank
Hallo Frank,
beide Proxmox Hosts loggen in dieselbe InfluxDB Datenbank! Auf dem NUC 2 erstellst du einfach die status.cfg und fertig.
Jeder Host sendet mit den Daten auch seinen Hostnamen (nodename) mit.
Dadurch lässt sich unterscheiden welche Daten von welchen Host stammen.
Im Dashboard wählst du dann oben einfach den gewünschten Server für die Virtualisierung aus.
Man benötigt also nur eine Datenbank und ein Dashboard für mehrere PVE Hosts.
Hallo.
Vielen Dank für das Dashboard. Ich hatte die Daten alle schon parat, aber dein Board schlägt meins um Längen. :)
VG
Vielen Dank! :)
Hallo,
ich aktuelle schon eine Datenbank mit Werten von OpenHAB, wenn ich der Anleitung folge, gibt erstellet es keine Influx Datenbank und es kommen auch keine Wete an. Weiß da einer weiter?
Lies dir mal den Kommentar von Rantwolf durch, vielleicht ist das dein Problem?
Ich habe keine Retention Policy eingerichtet. Muss ich vielleicht den UDP Port ändern, da ich ja auf dem Port schon die Werte von OpenHAB empfange.
Der Port muss nicht geändert werden.
Nutzt du für dein InfluxDB eine Authentifizierung mit Name und Passwort?
Ja, also für den Admin Benutzer damit ich in der Schell hab. Aber für den benutzer der lese rechte hat, hat kein Passwort
Dann darf der Proxmox Server, ohne Anmeldung, nicht in die InfluxDB schreiben, oder?
Schau auch mal in der status.cfg, da darf KEIN Leerzeichen vor influxdb: sein.
Ob der Proxmox Server ohne Anmeldung schreiben kann weiß ich nicht, ich hab halt mal ne Datenbank mit dem Namen “proxmox” erstellt.
Und in der status.cfg steht auch kein Leerzeichen
Setz dir doch mal einen Container mit einer InfluxDB ohne Authentifizierung zum testen auf.
Dann wüsste man schnell ob es daran liegt.
Sieht bei mir so aus:
$ influxd config | grep -i auth
Merging with configuration at: /etc/influxdb/influxdb.conf
auth-enabled = false
pprof-auth-enabled = false
ping-auth-enabled = false
prom-read-auth-enabled = false
auth-file = "/etc/collectd/auth_file"
Habs gemacht, geht trotzdem nicht
Dann poste doch bitte mal deine zwei Einträge in den Konfigdateien.
Hab mir gerade mal einen Container mit der InfluxDB 1.8.3 zum testen aufgesetzt.
Proxmox sendet sofort seine Daten.
Hast du den InfluxDB Service nach der Änderung in der influxdb.conf auch neu gestartet?
Proxmox Cluster damit eingebunden. Funktioniert. Vielen Dank für die Anleitung
Super, freut mich! :)
Hallo,
Hat jemand mir ne Möglichkeit den Traffic pro host anzeigen zulassen? Fürs RZ wäre es gut.