zabbix docker
| 2025-09-15 / 2025-10-31 | ||
Eine Doku...
Variante 1 umgesetzt, das ist laut der Doku die sicherheitlichste Variante... Da hier auch meine Bitwarden Container laufen sicher nicht verkehrt.
Den Host selbst habe ich dann per Zabbig-Agent angebunden!
Install
sudo mkdir -p /opt/zabbix
sudo mkdir -p /opt/zabbix/zabbix
sudo mkdir -p /opt/zabbix/zabbix/postgresql
sudo mkdir -p /opt/zabbix/zabbix/server
sudo mkdir -p /opt/zabbix/zabbix/snmptraps
sudo mkdir -p /opt/zabbix/zabbix/export
sudo mkdir -p /opt/zabbix/zabbix/web
cd /opt/zabbix
sudo nano .env
POSTGRES_USER=zabbix
POSTGRES_PASSWORD=♯crypt♯
POSTGRES_DB=zabbix
PHP_TZ=Europe/Berlin
ZABBIX_FRONTEND_PORT=8080
sudo nano docker-compose.yaml
services:
postgresql-server:
image: postgres:17.6-alpine3.22
container_name: postgresql-server
restart: unless-stopped
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- postgresql-data:/var/lib/postgresql/data
zabbix-server:
image: zabbix/zabbix-server-pgsql:latest
container_name: zabbix-server
restart: unless-stopped
depends_on:
- postgresql-server
environment:
DB_SERVER_HOST: postgresql-server
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
ports:
- "10051:10051"
volumes:
- zabbix-server-data:/var/lib/zabbix
- zabbix-snmptraps-data:/var/lib/zabbix/snmptraps
- zabbix-export-data:/var/lib/zabbix/export
zabbix-web-nginx-pgsql:
image: zabbix/zabbix-web-nginx-pgsql:latest
container_name: zabbix-web
restart: unless-stopped
depends_on:
- postgresql-server
- zabbix-server
environment:
DB_SERVER_HOST: postgresql-server
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
ZBX_SERVER_HOST: zabbix-server
PHP_TZ: ${PHP_TZ}
ports:
- "${ZABBIX_FRONTEND_PORT}:8080"
volumes:
- zabbix-web-data:/usr/share/zabbix
zabbix-agent:
image: zabbix/zabbix-agent:latest
container_name: zabbix-agent
restart: unless-stopped
depends_on:
- zabbix-server
environment:
ZBX_HOSTNAME: "zabbix-server"
ZBX_SERVER_HOST: zabbix-server
ZBX_SERVER_PORT: "10051"
ZBX_SERVER_ACTIVE: zabbix-server
volumes:
postgresql-data:
driver: local
driver_opts:
type: none
o: bind
device: /opt/zabbix/zabbix/postgresql
zabbix-server-data:
driver: local
driver_opts:
type: none
o: bind
device: /opt/zabbix/zabbix/server
zabbix-snmptraps-data:
driver: local
driver_opts:
type: none
o: bind
device: /opt/zabbix/zabbix/snmptraps
zabbix-export-data:
driver: local
driver_opts:
type: none
o: bind
device: /opt/zabbix/zabbix/export
zabbix-web-data:
driver: local
driver_opts:
type: none
o: bind
device: /opt/zabbix/zabbix/web
Erster Login
Admin / zabbix
Reverse Proxy
zabbix.r4g9.l11
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
Zabbix-Agent on Zabbix-Server
Umstellung auf DNS:
Zabbix-Agent on Docker-Host
Installation direkt auf dem Docker-Host, aber Konfiguration auf Port 10053 und Server auf 172.16.0.0/12!
Außerdem die Firewall Freischaltung entsprechend auf:
sudo ufw allow from 172.16.0.0/12 to any port 10053
troubleshooting
reset password
Passwort kann nur über die DB resetet werden, zugriff auf die DB kann man sich mit einem pgAdmin verschaffen den man als einfach auch als Docker mit rauffährt.
Dazu in die Zabbix-Docker-Compose diesen Abschnitt einfügen:
zabbix-pgadmin:
image: dpage/pgadmin4:latest
container_name: zabbix-pgadmin
environment:
PGADMIN_DEFAULT_EMAIL: manfred@heister.email
PGADMIN_DEFAULT_PASSWORD: lassmichrein
ports:
- "8888:80"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
... danach kann man den pgAdmin auf dem Host unter dem Port 8888 erreichen, Login in den pgAdmin erfolgt mit diesen Informationen und dem vergebenen Zabbix-DB-PW
Reset per SQL:
#neues Passwort: zabbix
UPDATE users SET passwd = '$2a$10$ZXIvHAEP2ZM.dLXTm6uPHOMVlARXX7cqjbhM6Fn0cANzkCQBWpMrS' WHERE username = 'mani';