Skip to main content

Prometheus installieren, Mailcow-Exporter installieren und die "Mailcow" in Grafana visuell darstellen

Also meine Grundlage ist eine VM auf Proxmox mit Docker und Docker-Compose. Wobei Letzteres nicht benötigt wird.
Ebenfalls empfehle ich immer ein Snapshot / Backup anzulegen! :)

Auf der Docker-VM habe ich erstmal Prometheus installiert:

wget https://github.com/prometheus/prometheus/releases/download/v2.53.3/prometheus-2.53.3.linux-amd64.tar.gz

capture_001_27022025_021731.jpg

Datei entpacken:

tar xvfz prometheus-2.53.3.linux-amd64.tar.gz

capture_002_27022025_021855.jpg

Dann ins Prometheus-Verzeichnis gewechselt:

cd prometheus-2.53.3.linux-amd64/

capture_003_27022025_021916.jpg

Dort dann die "prometheus.yml" angepasst an die URL inkl. API-Key der Mailcow ( s. 2. Screenshot ):

nano prometheus.yml

capture_004_27022025_022125.jpg

capture_005_27022025_022209.jpg

Den API-Key kann man im Mailcow Config-Menü ganz einfach generieren.

capture_004_27022025_022130.jpg

Ich habe dann einmal den Container manuell mit der Config-Datei gestartet:

docker run     -p 9090:9090     -v /root/prometheus-2.53.3.linux-amd64/prometheus.yml:/etc/prometheus/prometheus.yml     prom/prometheus

capture_004_27022025_022136.jpg

Um den Prometheus-Container immer automatisch zu starten, habe ich per Portainer den Prometheus-Container bei "Restart" auf "Always" gesetzt.
Alternativ geht das aber auch mit dem Befehl

docker run --restart always <image_name>

In meinem Fall heißt der Container "prom/prometheus:latest".

capture_007_27022025_022708.jpg

Am Besten ist es aber, über den Portainer diese Einstellung vorzunehmen, da per CLI ein neuer Container angelegt wird, warum auch immer.

Bezüglich Prometheus sind wir auf der Docker-VM fertig.

Auf der Mailcow habe ich ebenfalls Portatiner laufen. Hier müssen wir nicht so viel machen. Lediglich den Container "thej6s/mailcow-exporter" laden.

docker run -p '9099:9099' thej6s/mailcow-exporter

Auch hier habe ich per Portainer den "Restart" auf "Always" gestellt, damit dieser immer automatisch geladen wird.

capture_008_27022025_023040.jpg

Das war's im Grunde schon.
Sobald auf der Mailcow der "thej6s/mailcow-exporter" läuft, werden die Daten schon zum Prometheus geschoben und wir können unser Dashboard im Grafana "basteln" bzw. eher gesagt "klauen". :)

Im Grafana dann noch die Datenquelle "Prometheus" hinzufügen:

capture_009_27022025_023640.jpg

Danach können wir die Dashboards in Grafana importieren.
Ich habe diese beide Dashboards genommen:
https://github.com/hagaram/mailcow-grafana-dashboard
https://github.com/remkolodder/mailcow-dashboard

Fertig. :)