Docker快速部署Zabbix监控系统:从安装到配置的保姆级教程
目录
为什么选择Zabbix+Docker?
Zabbix docker安装
zabbix_server.conf
中文简体文件添加
编写docker-compose.yml 文件
Agent的docker安装
总结
为什么选择Zabbix+Docker?
Zabbix作为企业级开源监控解决方案,支持多平台监控、告警通知及数据可视化。结合Docker容器化技术,可快速搭建隔离的监控环境,简化部署流程,特别适合开发测试及中小型生产场景。
Zabbix docker安装
创建目录
mkdir -p /data2/zabbix/zabbix-server
mkdir -p /data2/zabbix/alertscripts
mkdir -p /data2/zabbix/fonts
mkdir -p /data2/zabbix/db
zabbix_server.conf
cd /data2/zabbix-server #进入目录
vi zabbix_server.conf #创建文件
将下面的代码放入文件wq保存
LogType=console
DBHost=zabbix-mysql
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
User=zabbix
中文简体文件添加
从主机(C:WindowsFonts)上传一个.ttf的字体文件到/data2/zabbix/fonts目录
可使用rz命令,或者ftp,或远程传输工具(如:xftp)
并将文件名称改成DejaVuSans.ttf(yml文件中有指明)
或者修改yml文件
编写docker-compose.yml 文件
创建一个目录
mkdir /opt/zabbix_docker
创建文件docker-compose.yml
写入:wq保存
services:
zabbix-web-nginx-mysql:
image: zabbix/zabbix-web-nginx-mysql:centos-5.2-latest
restart: always
environment:
- DB_SERVER_HOST=zabbix-mysql
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix
- MYSQL_ROOT_PASSWORD=root
- ZBX_SERVER_HOST=zabbix-server-mysql
ports:
- 8080:8080
volumes:
- /etc/localtime:/etc/localtime
-/data2/Zabbix/fonts/DejaVuSans.ttf:/usr/share/zZabbixassets/fonts/DejaVuSans.ttf:
networks:
- zbx_net
depends_on:
- zabbix-server-mysql
- zabbix-mysql
zabbix-mysql:
image: mysql:8.0.23
restart: always
ports:
- 3306:3306
environment:
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix
- MYSQL_ROOT_PASSWORD=root
command:
- mysqld
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8
- --collation-server=utf8_bin
volumes:
- /etc/localtime:/etc/localtime
- /data2/zabbix/db:/var/lib/mysql
networks:
- zbx_net
zabbix-java-gateway:
image: zabbix/zabbix-java-gateway:centos-5.2-latest
restart: always
volumes:
- /etc/localtime:/etc/localtime
networks:
- zbx_net
zabbix-server-mysql:
image: zabbix/zabbix-server-mysql:centos-5.2-latest
restart: always
volumes:
- /data2/zabbix/zabbix-server:/etc/zabbix
- /data2/zabbix/alertscripts:/usr/lib/zabbix/alertscripts
- /etc/localtime:/etc/localtime
ports:
- 10052:10051
environment:
- DB_SERVER_HOST=zabbix-mysql
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix
- MYSQL_ROOT_PASSWORD=root
- ZBX_JAVAGATEWAY=zabbix-java-gateway
- ZBX_JAVAGATEWAY_ENABLE=true
- ZBX_JAVAGATEWAYPORT=10052
depends_on:
- zabbix-mysql
networks:
- zbx_net
zabbix-agent:
image: zabbix/zabbix-agent:centos-5.2-latest
restart: always
ports:
- 10050:10050
environment:
- ZBX_HOSTNAME=Zabbix server
- ZBX_SERVER_HOST=zabbix-server-mysql
- ZBX_SERVER_PORT=10052
networks:
- zbx_net
networks:
zbx_net:
driver: bridge
- /data2/zabbix/fonts/DejaVuSans.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf#更改ttf文件
启动docker-compose
docker compose up -d
查看
docker ps
Ip+端口号进入
中文设置
配置主机
这里我们的客户端ip需要在主机里面查看
使用命令
docker network inspect zabbix-docker_zbx_net
使用agent的ip
接下来刷新网页
完成
Agent的docker安装
修改主机名
hostnamectl hostname zabbix-web
mkdir /opt/zabbix-docker
cd /opt/zabbix-docker
vi /opt/zabbix-docker/docker-compose.yml
写入
services:
zabbix-agent:
image: zabbix/zabbix-agent:centos-5.2-latest
restart: always
ports:
- 10050:10050
environment:
- ZBX_HOSTNAME=zabbix-web
- ZBX_SERVER_HOST=10.1.1.12 #链接server地址
- ZBX_SERVER_PORT=10052
- ZBX_ACTIVE_ALLOW=true
- ZBX_SERVER_HOST=10.1.1.12 #链接server地址
- ZBX_ACTIVE_ALLOW=true # true 主动链接 false被动链接
保存退出后
启动容器
Docker compose up -d
进入网页
完成之后刷新网页
配置成功
总结
通过Docker部署Zabbix,实现了:
- 环境标准化:所有组件配置集中管理,便于迁移和扩展
- 快速交付:从安装到监控仅需15分钟
- 资源隔离:各服务独立运行,避免端口冲突
建议定期备份/data2/zabbix/db
目录的MySQL数据,并使用docker-compose down
优雅停止服务。如需进一步优化,可探索Zabbix的自动注册、自定义监控项等高级功能。