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)

Proxmox Konfiguration

Auf dem Proxmox Host muss in der /etc/pve/status.cfg der InfluxDB Server konfiguriert werden. (Sollte die Datei noch nicht existieren, neu 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!

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 (Proxmox 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

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

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

  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“. ;-)

  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

Schreibe einen Kommentar