version: '3.5' services: # ------------------------------------------------ # ------------------- Zabbix Server -------------- # ------------------------------------------------ zabbix-server: #image: zabbix/zabbix-server-mysql:alpine-6.2-latest build: context: ./build dockerfile: Dockerfile container_name: zabbix-server restart: always ports: - 10051:10051/tcp # dns: # - 10.10.10.111 # - 10.10.10.222 #dns_search: #- vinos.local volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - ./state/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:ro - ./state/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro - ./state/var/lib/zabbix/export:/var/lib/zabbix/export:rw - ./state/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro - ./state/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro - ./state/var/lib/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys:ro - ./state/var/lib/zabbix/mibs:/var/lib/zabbix/mibs:ro - ./state/var/lib/zabbix/snmptraps:/var/lib/zabbix/snmptraps:rw - ./env/odbc.ini:/etc/odbc.ini:ro - ./env/odbcinst.ini:/etc/odbcinst.ini:ro - ./env/freetds.conf:/usr/local/etc/freetds.conf:ro env_file: - ./env/database.env - ./env/server.env - ./env/odbc.env secrets: - MYSQL_USER - MYSQL_PASSWORD - MYSQL_ROOT_PASSWORD depends_on: - database stop_grace_period: 30s sysctls: - net.ipv4.ip_local_port_range=1024 65000 - net.ipv4.conf.all.accept_redirects=0 - net.ipv4.conf.all.secure_redirects=0 - net.ipv4.conf.all.send_redirects=0 # networks: # zabbix: # ipv4_address: 172.19.0.7 # ------------------------------------------------ # ------------------- Zabbix Web ----------------- # ------------------------------------------------ zabbix-web: image: zabbix/zabbix-web-nginx-mysql:alpine-6.2-latest container_name: zabbix-web restart: always ports: - 80:8080/tcp volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - ./state/etc/ssl/nginx:/etc/ssl/nginx:ro - ./state/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro env_file: - ./env/database.env - ./env/web.env secrets: - MYSQL_USER - MYSQL_PASSWORD depends_on: - database - zabbix-server sysctls: - net.core.somaxconn=65535 # networks: # zabbix: # ipv4_address: 172.19.0.6 # ------------------------------------------------ # ------------------- Zabbix Agent --------------- # ------------------------------------------------ zabbix-agent2: image: zabbix/zabbix-agent2:alpine-6.2-latest container_name: zabbix-agent2 restart: always #ports: # - 10050:10050/tcp volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - ./state/etc/zabbix/zabbix_agentd.d:/etc/zabbix/zabbix_agentd.d:ro - ./state/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro - ./state/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro - ./state/var/lib/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys:ro env_file: - ./env/agent.env # networks: # zabbix: # ipv4_address: 172.19.0.5 # ------------------------------------------------ # ------------------- Zabbix SNMP Traps ---------- # ------------------------------------------------ zabbix-snmptraps: image: zabbix/zabbix-snmptraps:alpine-6.2-latest container_name: zabbix-snmptraps restart: always ports: - 162:1162/udp volumes: - ./state/var/lib/zabbix/snmptraps:/var/lib/zabbix/snmptraps:rw stop_grace_period: 5s networks: zabbix: ipv4_address: 172.19.0.2 # ------------------------------------------------ # ------------------- Zabbix Web Service --------- # ------------------------------------------------ zabbix-web-service: image: zabbix/zabbix-web-service:alpine-6.2-latest container_name: zabbix-web-service restart: always volumes: - ./state/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro cap_add: - SYS_ADMIN env_file: - ./env/web_service.env stop_grace_period: 5s # networks: # zabbix: # ipv4_address: 172.19.0.3 # ------------------------------------------------ # ------------------- Database ------------------- # ------------------------------------------------ database: image: mariadb:10.6 command: ['mysqld', '--collation_server=utf8_bin', '--character_set_server=utf8'] container_name: database restart: always volumes: - ./state/var/lib/mysql:/var/lib/mysql:rw - ./zabbixdb-backup-restore-master:/home/zabbixdb-backup-restore-master:rw ports: - 3306:3306 env_file: - ./env/database.env secrets: - MYSQL_USER - MYSQL_PASSWORD - MYSQL_ROOT_PASSWORD stop_grace_period: 1m # networks: # zabbix: # ipv4_address: 172.19.0.4 # ------------------------------------------------ # ------------------- Watchtower ----------------- # ------------------------------------------------ # watchtower: # image: containrrr/watchtower # container_name: watchtower # restart: unless-stopped # volumes: # - /etc/localtime:/etc/localtime:ro # - /etc/timezone:/etc/timezone:ro # - /var/run/docker.sock:/var/run/docker.sock # environment: # WATCHTOWER_POLL_INTERVAL: "259200" # every 3rd day # WATCHTOWER_CLEANUP: "true" # WATCHTOWER_DEBUG: "true" # ------------------------------------------------ # ------------------- Secrets -------------------- # ------------------------------------------------ # Note: chown -R root:root secrets && chmod 0700 secrets secrets: MYSQL_USER: file: ./secrets/MYSQL_USER MYSQL_PASSWORD: file: ./secrets/MYSQL_PASSWORD MYSQL_ROOT_PASSWORD: file: ./secrets/MYSQL_ROOT_PASSWORD #networks: # zabbix: # external: true # driver: bridge # ipam: # config: # - subnet: 172.19.0.0/24