Nachdem ich mit der Kombination Server Metrics mit Prometheus und Grafana versucht habe meinen Server zu überwachen, fand ich das ganze doch äusserst unpraktikabel weil man aus unterschiedlichen Quellen alles Mögliche selber zusammenbasteln muss um eine sinnvolle graphische Aufbereitung zu bekommen.

Mit Zabbix scheint das Ganze mehr aus einem Guss zu sein.
Allerdings kann das Setup trotzdem ein wenig kompliziert sein weshalb ich meine Vorgehensweise hier mal notiert habe.

Ich werden den Server als Service betreiben und das Frontend in einem Docker Container betreiben, allerdings die Daten (MariaDB) und Datein lokal als dezidierter Benutzer speichern.

Installation

Server

Als erstes installiere ich mal die Pakete

apt install zabbix-server-mysql zabbix-agent

Nach der Installation muss ich als erstes die Datenbank erstellen.
Da es dafür unzählige Tutorials gibt, werde ich das hier nicht noch explizit aufschreiben.
Wichtig ist, die Collation auf utf8_bin, utf8mb3_bin oder utf8mb4_bin zu stellen!

Anschliessend initialisiere ich die Datenbank

zcat /usr/share/zabbix-server-mysql/{schema,images,data}.sql.gz | mysql --default-character-set=utf8mb4 -uUSER -pPASSWORD DBNAME

Nun ändere ich in der Konfigurationsdatei die Einträge für die DB entsprechend

Ausserdem ist meine MariaDB neuer als die von Zabbix unterstützte Version weshalb ich den Parameter AllowUnsupportedDBVersions auf 1 setze.

nano /etc/zabbix/zabbix_server.conf

Agent

Der Agent braucht in meinem Fall keine zusätzliche Konfiguration.
Allerdings lohnt es sich immer die Konfigurationsdatei durchzulesen und gegebenenfalls anzupassen.

nano /etc/zabbix/zabbix_agent.conf

Docker

Deshalb erstelle ich als erstes mal einen Benutzer und füge ihn der Docker-Gruppe hinzu

groupadd --system pmjzabbix
useradd -m -d /opt/pmjzabbix -s /bin/bash --system -g pmjzabbix pmjzabbix
usermod -aG docker pmjzabbix