1. 为什么选择Docker部署Zabbix 7.4
监控系统从传统物理机部署转向容器化已是必然趋势。我最近在生产环境用Docker完整部署了Zabbix 7.4 LTS版本,相比源码编译安装省去了80%的配置时间。Zabbix 7.4作为长期支持版本,新增了预测监控、事件关联引擎等企业级功能,而Docker部署能完美解决这些场景:
- 版本隔离:不同Zabbix版本可并行运行(比如同时测试6.0和7.4)
- 资源控制:通过cgroups限制MySQL和Zabbix Server的内存消耗
- 快速回滚:镜像tag就是版本号,故障时10秒切回旧版
- 环境一致性:开发、测试、生产三套环境完全一致
重要提示:Zabbix 7.4需要Docker 20.10.17以上版本,低版本会遇到AUFS存储驱动兼容性问题。建议先执行
docker --version确认环境。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 部署架构设计与组件选型
2.1 官方镜像vs自定义镜像
Zabbix官方提供了全组件Docker镜像,但实测发现两个痛点:
- Server镜像默认用Alpine系统,调试工具缺失(缺少vim/netstat等)
- 数据库密码通过环境变量明文传递
我的方案是:
- 基础镜像:沿用官方
zabbix/zabbix-server-mysql:7.4.0-ubuntu - 数据库:改用
mysql:8.0官方镜像(比MariaDB对ARM架构支持更好) - 前端:保留
zabbix/zabbix-web-nginx-mysql:7.4.0-ubuntu,但挂载自定义nginx配置
2.2 网络模式选择
三种网络方案对比:
| 方案 | 配置复杂度 | 性能损耗 | 适用场景 |
|---|---|---|---|
| bridge模式 | 低 | 约5% | 单机测试 |
| host模式 | 中 | <1% | 生产环境 |
| 自定义网络 | 高 | 约3% | 多主机集群 |
生产环境推荐host模式,直接使用宿主机网络栈。如果要用bridge模式,必须调整
