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