| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- # =============================================================================
- # Zabbix 7.4.16 单机 Docker Compose —— 优化/低坑版
- # 用法(先备份原文件):
- # cd /opt/zabbix
- # cp docker-compose.yaml docker-compose.yaml.bak_$(date +%s)
- # docker compose -f docker-compose.new.yaml config -q # 先校验语法
- # docker compose -f docker-compose.new.yaml up -d # 重建生效
- # 说明:
- # - 镜像锁定精确版本,避免 `pull` 后被动升级。
- # - 密码/时区均可用 .env 覆盖,默认值与原文件一致,可直接替换。
- # - 缓存按 75k 项 / 186 台交换机的实测用量重估(见说明文档)。
- # =============================================================================
- services:
- zabbix-mysql:
- image: mysql:8.0.43
- container_name: zabbix-mysql
- command:
- - --character-set-server=utf8mb4
- - --collation-server=utf8mb4_bin
- - --innodb-buffer-pool-size=1G
- - --innodb-file-per-table=1
- - --log-bin-trust-function-creators=1
- environment:
- MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-CobcoIT132}
- MYSQL_DATABASE: ${MYSQL_DATABASE:-zabbix}
- MYSQL_USER: ${MYSQL_USER:-zabbix}
- MYSQL_PASSWORD: ${MYSQL_PASSWORD:-CobcoIT132}
- TZ: ${TZ:-UTC}
- volumes:
- - /opt/zabbix/zabbix-server/mysql_data:/var/lib/mysql
- networks:
- zabbix:
- ipv4_address: 192.168.87.22
- restart: unless-stopped
- stop_grace_period: 1m
- logging:
- driver: json-file
- options:
- max-size: "10m"
- max-file: "3"
- healthcheck:
- test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1"]
- interval: 10s
- timeout: 5s
- retries: 10
- start_period: 40s
- zabbix-server:
- image: zabbix/zabbix-server-mysql:ubuntu-7.4.16
- container_name: zabbix-server
- networks:
- zabbix:
- ipv4_address: 192.168.87.21
- ulimits:
- nproc: 65535
- nofile:
- soft: 20000
- hard: 40000
- # 仅保留实际需要的权限:NET_RAW 供 fping(ICMP 监控),SYS_NICE 供进程优先级。
- # 不再使用 privileged:true / cap_add:ALL(过度授权、有安全风险)。
- # 若完全不做 ICMP ping 监控,可删除整个 cap_add 段。
- cap_add:
- - NET_RAW
- - SYS_NICE
- 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
- restart: unless-stopped
- stop_grace_period: 30s
- logging:
- driver: json-file
- options:
- max-size: "10m"
- max-file: "3"
- environment:
- DB_SERVER_HOST: zabbix-mysql
- MYSQL_DATABASE: ${MYSQL_DATABASE:-zabbix}
- MYSQL_USER: ${MYSQL_USER:-zabbix}
- MYSQL_PASSWORD: ${MYSQL_PASSWORD:-CobcoIT132}
- MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-CobcoIT132}
- TZ: ${TZ:-UTC}
- # ---- 缓存:按 75k 项、186 台交换机的实测用量重新定容 ----
- ZBX_CACHESIZE: 512M # 配置缓存 实测 12%(~123M),512M 留约 4 倍余量
- ZBX_VALUECACHESIZE: 128M # 值缓存 实测 1.1%(~12M)
- ZBX_TRENDCACHESIZE: 64M # 趋势缓存 实测 0.39%(~4M),原 1G 严重超配
- ZBX_HISTORYCACHESIZE: 64M # 历史缓存 实测≈0
- ZBX_HISTORYINDEXCACHESIZE: 16M # 历史索引 实测 0.24%(~77K)
- ZBX_TRENDFUNCTIONCACHESIZE: 16M # 趋势函数缓存,默认 4M 已足
- # ---- 进程数:186 台交换机以 1 次 walk/台 轮询,30 个 SNMP poller 实测 busy≈3% ----
- ZBX_STARTSNMPPOLLERS: 30
- ZBX_STARTLLDWORKERS: 10 # 大批 LLD 发现更快
- ZBX_STARTPREPROCESSORS: 5
- ports:
- - '10051:10051'
- volumes:
- - /opt/zabbix/zabbix-server/data:/data
- - /opt/zabbix/zabbix-server/data/alertscripts:/usr/lib/zabbix/alertscripts
- depends_on:
- zabbix-mysql:
- condition: service_healthy
- zabbix-web-nginx-mysql:
- image: zabbix/zabbix-web-nginx-mysql:ubuntu-7.4.16
- container_name: zabbix-webservice
- networks:
- zabbix:
- ipv4_address: 192.168.87.20
- restart: unless-stopped
- logging:
- driver: json-file
- options:
- max-size: "10m"
- max-file: "3"
- environment:
- DB_SERVER_HOST: zabbix-mysql
- MYSQL_DATABASE: ${MYSQL_DATABASE:-zabbix}
- MYSQL_USER: ${MYSQL_USER:-zabbix}
- MYSQL_PASSWORD: ${MYSQL_PASSWORD:-CobcoIT132}
- MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-CobcoIT132}
- ZBX_SERVER_HOST: zabbix-server
- TZ: ${TZ:-UTC}
- PHP_TZ: ${TZ:-UTC}
- volumes:
- - /opt/zabbix/zabbix-server/web:/data
- - /opt/zabbix/zabbix-server/fonts/simkai.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf
- depends_on:
- zabbix-mysql:
- condition: service_healthy
- zabbix-server:
- condition: service_started
- networks:
- zabbix:
- ipam:
- config:
- - subnet: 192.168.87.0/24
|