Proxmox mit Grafana überwachen

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

23 Gedanken zu „Proxmox mit Grafana überwachen“

  1. 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.

    Antworten
    • Die Daten werden über UDP übertragen, dieses Protokoll unterstützt keine Authentifizierung.
      Hier müsste seitens Proxmox nachgebessert werden.

      Antworten
  2. 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”. ;-)

    Antworten
  3. 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

    Antworten
  4. 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

    Antworten
    • 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.

      Antworten
  5. 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?

    Antworten
          • 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"

Schreibe einen Kommentar