# 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/` ## 首次/变更部署步骤 ```bash 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. **备份数据库(务必)**: ```bash 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`(不对外暴露)