Proxmox bringt von Haus aus eine rudimentäre Lösung zum Monitoring installierter VMs bzw. LXC Container mit sich. Wer mehr will, muss auf andere Möglichkeiten ausweichen. Besonders leistungsfähig auf dem Gebiet der Überwachung ist Grafana. Grafana bietet eine plattformübergreifende Open Source Lösung an, um Daten graphisch aufzuarbeiten. Als Datenquelle werden etwa InfluxDB, MySQL oder Graphite unterstützt. Einzelne Graphen können zu sogenannten Dashboards zusammengefügt werden, welche vorgefertigt von der Herstellerwebseite heruntergeladen werden können. Im folgenden Tutorial wird gezeigt, welche Schritte notwendig sind, um ein einfaches Monitoring von Proxmox darzustellen.

1. Anlegen eines Containers unter Proxmox
2. Installation von InfluxDB
3. Konfiguration des Proxmox Hosts
4. Installation von Grafana
5. Anpassungen in Grafana

1. Anlegen eines Containers unter Proxmox

1.1 Zunächst legen wir einen LXC Container unter Proxmox an, welcher uns später für die Installation der InfluxDB dienen wird. An dieser Stelle möchte ich darauf hinweisen, dass es geeigneter wäre, Grafana auf einem separaten Server zu installieren. Das liegt draran, dass im Falle einen Ausfalls von Proxmox nicht auch der Monitoring Server mit betroffen ist. Der Einfachheit halber soll unsere Konfiguration aber ausreichen. 

1.2 Unter Proxmox erstellen wir eine CT: Erstelle CT -> Vergabe von Hostnamen -> zweimalige Eingabe des Passworts -> Storage und Template auswählen (hier beispielsweise Ubuntu 20.04) -> Storage und Disk Größe auswählen (hier local-lvm und 20 GiB) -> CPU Kerne auswählen (hier 1) -> Hauptspeicher und Swap zuweisen (hier 2048 MiB und 512 MiB) -> Netzwerk konfigurieren (belassen auf Standardeinstellungen, außer IPv4 auf DHCP umstellen) -> DNS zuweisen (unverändert bestätigen)

1.3 Nach der Installation des Containers lassen wir uns dessen IP Adresse anzeigen. Dies geschieht entweder mit dem Befehl ip address oder mit ifconfig. Ist Letzteres noch nicht installiert, so kann dies mit dem Befehl apt-get install net-tools nachgeholt werden. Wir klicken nun auf die Console und geben folgendes ein:

sudo apt-get isntall net-tools

sudo ifconfig

2. Installation der InfluxDB

2.1 Im folgenden installieren wir nun die InfluxDB, welche den Datenfluss per UDP von Proxmox empfängt und in eine Datenbank schreibt. Die Daten lassen sich dann im Anschluss mit Grafana auslesen und aufbereiten. Zunächst bringen wir unsere VM auf den neusten Stand und installieren außerdem gnupg2 (GNU priacy guard, optional), wget und curl (Terminalprogramme zum Empfang und Senden von Daten).

sudo apt-get update

sudo apt upgrade

sudo apt install gnupg2 wget curl

2.2 Im Anschluss werden die InfluxDB Repositories unserer Installation hinzugefügt, sodass sie beim nächsten Update berücksichtigt werden

wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -

source /etc/lsb-release

echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list

2.3 Zum Updaten der Repositires und zum Installieren und Starten der InfluxDB geben wir Folgendes ein:

sudo apt-get update && sudo apt-get install influxdb

sudo service influxdb start

2.4 Läuft auf dem Rechner des Datenbankservers systemd als Sitzungsmanager, wie es bei Ubuntu der Fall ist, dann geben wir folgendes ein:

sudo apt-get update && sudo apt-get install influxdb

sudo systemctl unmask influxdb.service

sudo systemctl start influxdb

2.5 Nun wird die InfluxDB für den Einsatz mit Proxmox konfiguriert. Dazu modifizieren wir die Konfigurationsdatei influxdb.conf, indem wir die folgenden Zeilen einfügen. Diese bewirken, dass unser Server auf alle IP Adressen unter dem Port 8089 hört und die empfangenen Daten in die Datenbank mit dem Namen "proxmox" schreibt. Um die Datei öffnen zu können nutzen wir den nano Editor:

sudo nano /etc/influxdb/influxdb.conf

[[udp]]
   enabled = true
   bind-address = "0.0.0.0:8089"
   database = "proxmox"
   batch-size = 1000
   batch-timeout = "1s"

3. Konfiguration des Proxmox Hosts:

3.1 Damit unser Proxmox Host die Daten auch zur InfluxDB senden kann, erstellen wir die status.cfg Datei wie folgt im Verzeichnis /etc/pve:

sudo nano /etc/pve/status.cfg

3.2 Anschließend fügen wir die Zeilen zu:

influxdb: proxmox
    server <IP-Adresse-von-der-InfluxDB>
    port 8089

4. Installation von Grafana

4.1 Die einzelnen Schritte der Grafana Installation können auf der Herstellerseite unter dem Absatz OSS release nachgeschlagen werden.

sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

4.2 Hinzufügen des Repository von Grafana (stable release):

echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

4.3 Installation von Grafana

sudo apt-get update
sudo apt-get install grafana

5. Anpassungen in Grafana

5.1 Öffnen von Grafana im Browser:

[IP-Adresse-von-Grafana:3000]/

5.2 Unter dem Reiter Einstellungen -> Add data source -> InfluxDB müssen die folgenden Daten verwendet werden:

Name: InfluxDB
URL: http://localhost:8086
Database:proxmox
User:admin
Password:admin

5.3 Proxmox Dashboard verwenden

Dshboards -> Manage -> Import -> "Eingabe der ID:10048" -> Load

Add comment

Submit

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.