Ces deux fichiers doivent être dans le même répertoire.
version: '3.9'
services:
postgres-server:
image: postgres:14.2
restart: always
container_name: zabbix-db
environment:
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: zabbix
PG_DATA: /var/lib/postgresql/data/pgdata
## Optionnel : supprimer cette ligne et les commentaires seulement si le conteneur Autoheal est utilisé
# healthcheck:
# test: ["CMD-SHELL", "pg_isready -U $DB_USER"]
# interval: 10s
# timeout: 5s
# retries: 5
volumes:
- ./db:/var/lib/postgresql/data
# labels: # Optionnel : le commentaire en début de ligne seulement si le conteneur Autoheal est utilisé
# - autoheal=true # Optionnel : supprimer ce message et le commentaire en début de ligne seulement si le conteneur Autoheal est utilisé
networks:
- traefik-network
zabbix-server:
image: zabbix/zabbix-server-pgsql:6.0.2-ubuntu
restart: always
container_name: zabbix-server
environment:
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: zabbix
ZBX_HISTORYSTORAGETYPES: log,text
ZBX_DEBUGLEVEL: 1
ZBX_HOUSEKEEPINGFREQUENCY: 1
ZBX_MAXHOUSEKEEPERDELETE: 5000
ZBX_STARTVMWARECOLLECTORS: 10
ZBX_VMWAREFREQUENCY: 30
ZBX_VMWAREPERFFREQUENCY: 30
ZBX_VMWARECACHESIZE: 16M
ZBX_VMWARETIMEOUT: 10
ZBX_CACHESIZE: 2G
## Optionnel : supprimer cette ligne et les commentaires seulement si le conteneur Autoheal est utilisé
# healthcheck:
# test: grep -qr "zabbix_server" /proc/*/status || exit 1
# interval: 1m
# timeout: 30s
# retries: 3
depends_on:
- postgres-server
# labels: # Optionnel : le commentaire en début de ligne seulement si le conteneur Autoheal est utilisé
# - autoheal=true # Optionnel : supprimer ce message et le commentaire en début de ligne seulement si le conteneur Autoheal est utilisé
ports:
- 10051:10051
volumes:
- ./alertscripts:/usr/lib/zabbix/alertscripts
networks:
- traefik-network
zabbix-web:
image: zabbix/zabbix-web-nginx-pgsql:6.0.2-ubuntu
restart: always
container_name: zabbix-web
environment:
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: zabbix
ZBX_SERVER_HOST: zabbix-server
ZBX_POSTMAXSIZE: 64M
PHP_TZ: Europe/Paris
ZBX_MAXEXECUTIONTIME: 500
## Optionnel : supprimer cette ligne et les commentaires seulement si le conteneur Autoheal est utilisé
# healthcheck:
# test: curl --fail http://localhost:8080 || exit 1
# interval: 1m
# timeout: 30s
# retries: 3
depends_on:
- postgres-server
- zabbix-server
networks:
- traefik-network
labels:
# - autoheal=true # Optionnel : supprimer ce message et le commentaire en début de ligne seulement si le conteneur Autoheal est utilisé
- traefik.enable=true
- traefik.docker.network=traefik-network
- traefik.http.routers.zabbix.entrypoints=http
- traefik.http.routers.zabbix.rule=Host(`***.***.***`) # METTRE LE NDD ICI
- traefik.http.middlewares.zabbix-https-redirect.redirectscheme.scheme=https
- traefik.http.routers.zabbix.middlewares=zabbix-https-redirect
- traefik.http.routers.zabbix-secure.entrypoints=https
- traefik.http.routers.zabbix-secure.rule=Host(`***.***.***`) # METTRE LE NDD ICI
- traefik.http.routers.zabbix-secure.tls=true
- traefik.http.services.zabbix.loadbalancer.server.port=8080
volumes:
db:
alertscripts:
networks:
traefik-network:
external: true
DB_USER="**********"
DB_PASSWORD="**********"