Zabbix server deployment: docker-compose (7.4.16) + compose audit

clm0081 76bedbfe04 Zabbix 7.4.16 单机部署:docker-compose + 审计 + README преди 4 дни
README.md 76bedbfe04 Zabbix 7.4.16 单机部署:docker-compose + 审计 + README преди 4 дни
compose-audit.md 76bedbfe04 Zabbix 7.4.16 单机部署:docker-compose + 审计 + README преди 4 дни
docker-compose.yaml 76bedbfe04 Zabbix 7.4.16 单机部署:docker-compose + 审计 + README преди 4 дни

README.md

Zabbix 单机 Docker 部署(zabbix-deploy)

本仓库托管 Zabbix 服务器单机 Docker Compose 部署文件与配置审计说明。

组件与版本

  • zabbix/zabbix-server-mysql:ubuntu-7.4.16
  • zabbix/zabbix-web-nginx-mysql:ubuntu-7.4.16
  • mysql:8.0.43

镜像均为精确版本锁定,避免 docker compose pull 时被悄悄升级到新大版本。

文件

  • docker-compose.yaml —— 生产用编排文件(当前 7.4.16)
  • compose-audit.md —— 原 compose 的问题审计与缓存容量重估说明

部署位置

  • 服务器:10.160.10.213
  • 部署目录:/opt/zabbix
  • Web 访问:http://192.168.87.20:8080/

首次/变更部署步骤

cd /opt/zabbix
cp -f docker-compose.yaml docker-compose.yaml.bak_$(date +%s)   # 先备份
docker compose -f docker-compose.yaml config -q                 # 语法校验
docker compose -p zabbix up -d                                  # 重建生效
docker compose -p zabbix ps                                     # 查看状态

升级步骤(同大版本补丁升级,如 7.4.x → 7.4.y)

  1. 备份数据库(务必):

    docker exec -i zabbix-mysql sh -c \
     'MYSQL_PWD=****** mysqldump -uroot --single-transaction --quick \
      --routines --triggers --events --set-gtid-purged=OFF zabbix' \
     | gzip > /opt/zabbix/backup/zabbix_$(date +%Y%m%d_%H%M%S).sql.gz
    gzip -t /opt/zabbix/backup/zabbix_*.sql.gz   # 校验完整性
    
  2. 修改 docker-compose.yaml 中 server / web 镜像 tag 到目标版本。

  3. docker compose -p zabbix up -d,server 启动时会自动执行数据库结构升级(日志中可见 starting automatic database upgrade ... fully completed)。

  4. 校验:docker exec zabbix-server zabbix_server -V,以及 Web HTTP 200、采集速率恢复正常。

注意:补丁升级可能推进数据库 optional 版本(例如 7.4.2→7.4.16 为 07040000→07040011),回滚需还原备份,因此第 1 步不可省略。

关键环境变量(可在 .env 覆盖)

  • MYSQL_ROOT_PASSWORD / MYSQL_PASSWORD(默认已内置,建议外部 .env 管理)
  • TZ(默认 UTC,可按需设为 Africa/Casablanca 等)
  • 缓存:ZBX_CACHESIZE、ZBX_VALUECACHESIZE、ZBX_TRENDCACHESIZE、ZBX_HISTORYCACHESIZE、ZBX_TRENDSINDEXCACHESIZE 等
  • 采集进程:ZBX_STARTSNMPPOLLERS、ZBX_STARTLLDWORKERS、ZBX_STARTPREPROCESSORS

端口

  • Zabbix Server:10051
  • Web(nginx):容器内 8080 / 8443
  • MySQL:容器内 3306(不对外暴露)