Blog

Zabbix Installation mittels Docker Compose

1/6/2026 1 Min. Lesezeit Skripte

Ob für schnelle Tests oder den dauerhaften produktiven Einsatz: Mit Docker Compose lässt sich Zabbix flexibel, modular und wartbar installieren. In diesem Beitrag zeigen wir, wie Sie Zabbix mit minimalem Aufwand für Testzwecke einrichten oder eine skalierbare, wartungsfreundliche Umgebung für den langfristigen Betrieb schaffen können.

Docker Compose

version: '3.5'
services:
  mysql-server:
    image: mysql:8.0
    networks:
      - zbx_net
    command:
      - mysqld
      - --character-set-server=utf8
      - --collation-server=utf8_bin
      - --default-authentication-plugin=mysql_native_password
    environment:
      - MYSQL_USER=${MYSQL_USER:-zabbix}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD:-defaultpassword}
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-rootpassword}
      - ZBX_JAVAGATEWAY=${ZBX_JAVAGATEWAY:-zabbix-java-gateway}
    ports:
      - "3306:3306"
    volumes:
      - zabbix_mysql_data:/var/lib/mysql:rw
    restart: always

  zabbix-server-mysql:
    image: zabbix/zabbix-server-mysql:alpine-latest
    networks:
      - zbx_net
    extra_hosts:
      - "host.docker.internal:host-gateway"
    ports:
      - "10051:10051"
    volumes:
      - zabbix_alertscripts:/usr/lib/zabbix/alertscripts:ro
      - zabbix_externalscripts:/usr/lib/zabbix/externalscripts:ro
      - zabbix_export:/var/lib/zabbix/export:rw
      - zabbix_modules:/var/lib/zabbix/modules:ro
      - zabbix_enc:/var/lib/zabbix/enc:ro
      - zabbix_ssh_keys:/var/lib/zabbix/ssh_keys:ro
      - zabbix_mibs:/var/lib/zabbix/mibs:ro
      - zabbix_snmptraps:/var/lib/zabbix/snmptraps:rw
    environment:
      - DB_SERVER_HOST=${DB_SERVER_HOST:-mysql-server}
      - MYSQL_DATABASE=${MYSQL_DATABASE:-zabbixdb}
      - MYSQL_USER=${MYSQL_USER:-zabbix}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD:-defaultpassword}
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-rootpassword}
      - ZBX_JAVAGATEWAY=${ZBX_JAVAGATEWAY:-zabbix-java-gateway}
    depends_on:
      - mysql-server
    restart: always

  zabbix-web-nginx-mysql:
    image: zabbix/zabbix-web-nginx-mysql:alpine-latest
    networks:
      - zbx_net
    ports:
      - "10053:8080"
      - "10054:8443"
    volumes:
      - zabbix_nginx_ssl:/etc/ssl/nginx:ro
      - zabbix_nginx_modules:/usr/share/zabbix/modules/:ro
    environment:
      - ZBX_SERVER_HOST=${ZBX_SERVER_HOST:-zabbix-server-mysql}
      - DB_SERVER_HOST=${DB_SERVER_HOST:-mysql-server}
      - MYSQL_DATABASE=${MYSQL_DATABASE:-zabbixdb}
      - MYSQL_USER=${MYSQL_USER:-zabbix}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD:-defaultpassword}
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-rootpassword}
    depends_on:
      - mysql-server
      - zabbix-server-mysql
    restart: always

  zabbix-java-gateway:
    image: zabbix/zabbix-java-gateway:alpine-6.0-latest
    networks:
      - zbx_net
    ports:
      - "10052:10052"
    restart: always

networks:
  zbx_net:
    driver: bridge

volumes:
  zabbix_mysql_data:
  zabbix_alertscripts:
  zabbix_externalscripts:
  zabbix_export:
  zabbix_modules:
  zabbix_enc:
  zabbix_ssh_keys:
  zabbix_mibs:
  zabbix_snmptraps:
  zabbix_nginx_ssl:
  zabbix_nginx_modules: