安装 Zabbix Server
- 2025-09-18 18:50:00
- 丁国栋
- 原创 15
前言
因为近期需要迁移Zabbix服务,所以又要部署新的Zabbix服务了,借此机会对之前的一些积累进行一些整理和汇总,并且看看在新的版本和手册中有哪些新的特性和最佳实践。
做过迁移的人都知道迁移是一件非常不容易的麻烦事,不是因为有多复杂,而是涉及到:
- 服务停止和部分监控数据缺失,zabbix 监控服务停止期间无法接收新的告警和接收新的监控指标。所以这里也建议不要依赖一个监控服务,万一迁移期间出现关键告警可能无法及时收到通知。
- 因为监控系统一般要保留超过180天的数据,所以积累下来的数据较大,迁移需要花费较长的时间。
- 监控客户端和Zabbix代理服务器都需要批量修改Zabbix Server的地址。所以这里后续我们后面需要改为域名来代替IP,并且需要有批量管理节点的能力。
Zabbix 截至2025-09-18最新的版本是7.4,LTS版本是7.0。
通过容器的方式安装Zabbix Server
根据官网的手册可知,最简单的安装方式是使用Docker Compose,Docker Compose 的版本库是 https://github.com/zabbix/zabbix-docker。
这个安装的优势是Zabbix Server 所需的组件包括数据库、Web服务器等都默认内置和配置好了。
选择一个干净的主机环境(主要是避免端口冲突),安装 Docker 引擎。
克隆 https://github.com/zabbix/zabbix-docker.git 到主机本地。
从目录结构可知:
- docker-compose_v3_ubuntu_mysql_latest.yaml 依赖并扩展了 compose_zabbix_components.yaml
- compose_zabbix_components.yaml 中的环境变量 ${DATA_DIRECTORY} 是来自 .env 文件,默认定义是 DATA_DIRECTORY=./zbx_env
- 在 .env 文件中 ZABBIX_WEB_NGINX_HTTP_PORT=80 和 ZABBIX_WEB_NGINX_HTTPS_PORT=443 定义了 Nginx 默认的监听端口,可以按需改
创建并启动Zabbix Server:
docker compose -f docker-compose_v3_ubuntu_mysql_latest.yaml up -d停止 Zabbix Server
docker compose -f docker-compose_v3_ubuntu_mysql_latest.yaml down启动完成后,可以访问 http://<ip> 或者 http://<fqdn> 访问,登录名依然是 Admin,密码是 zabbix。
参考和提示:
- 目前Zabbix官方还没有提供 Kubernetes 中安装的方法以及 Helm Chart,可以自己实现
- 在安装文档中有详细的解释
通过包管理器方式安装Zabbix Server
参考 https://www.zabbix.com/download 即可。
注意:Zabbix Server Web组件是由PHP编写,虽然安装zabbix时会自动安装php,但注意检查是否安装了必要的php扩展,例如mbstring。如果是选择使用 Nginx ,当访问Web页面出现500时注意检查Nginx错误日志,Apache2的也是这样。
注意:如果是将数据库从主机A迁移到主机B使用,那么需要注意数据库的版本,Zabbix Server 在启动过程中会检查数据库的版本是否是所要求的版本,如果数据库版本过低并且 /etc/zabbix/zabbix_server.conf
配置文件中没有设置使用 AllowUnsupportedDBVersions=1
那么 Zabbix Server 可能会拒绝启动。这时可以参考Zabbix Server的日志文件 /var/log/zabbix/zabbix_server.log
排查修改,journalctl -xe
信息有限。
--