零基础快速搭建 Zabbix Server:Docker 方式在 Rocky Linux 上的实践
环境说明:
搭建系统: Rocky-9.5-x86_64-dvd
什么是zabbix?
Zabbix 是一款企业级开源监控系统,可全方位监控网络设备、服务器、操作系统、中间件、数据库及业务系统等 IT 资源,通过灵活的数据采集机制获取各类指标,提供智能告警、可视化报表及分布式部署能力,支持自定义扩展与第三方集成,帮助企业实时掌握系统状态、及时排查故障,保障业务稳定运行,适用于从中小型机房到大型分布式架构的监控需求。
Zabbix Server是Zabbix的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。 它主要负责接收客户端发送的报告和信息,同时,所有配置、统计数据及配置操作数据均由其组织进行。
使用docker进行安装
要使用docker,必须先安装docker引擎,步骤如下:
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install docker-ce -y
systemctl restart docker
systemctl enable docker
docker version
镜像拉取
MySQL镜像
这里使用8.0版本,在linux终端拉取8.0.32镜像
docker pull mysql:8.0.32
zabbix-server镜像
zabbix-server镜像分两种,支持MySQL数据库zabbix-server-mysql,支持支持PostgreSQL数据库zabbix/zabbix-server-pgsql。下面安装的是支持MySQL数据库的Server镜像。
docker pull zabbix/zabbix-server-mysql:centos-6.4.0
Zabbix web镜像
这里使用的是基于Nginx web服务器及支持MySQL数据库的Zabbix web接口zabbix/zabbix-web-nginx-mysql。这里我用的是centos-6.4.0版本。
docker pull zabbix/zabbix-web-nginx-mysql:centos-6.4.0
zabbix-java-gateway镜像
Zabbix本身不支持直接监控Java,而是使用zabbix-java-gateway监控jvm/tomcat性能。这里我们使用centos-6.4.0版本,在linux终端执行如下命令。
docker pull zabbix/zabbix-java-gateway:centos-6.4.0
运行镜像
启动zabbix等镜像之前,需要先创建一个新的Docker网络。需要将后面的zabbix-server、mysql、web等容器都加入到此网络中,方便互相访问。在终端使用下面命令创建。
docker network create -d bridge zabbix_net
运行mysql镜像,创建mysql容器
docker run -itd -p 3306:3306 --name zabbix-mysql --network zabbix_net --restart unless-stopped -v /etc/localtime:/etc/localtime -v /dockerdata/zabbix/db:/var/lib/mysql -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" mysql:8.0.32 --default-authentication-plugin=mysql_native_password --character-set-server=utf8 --collation-server=utf8_bin
运行zabbix-java-gateway镜像
docker run -v /etc/localtime:/etc/localtime -dit --restart=always --name=zabbix-java-gateway --network zabbix_net zabbix/zabbix-java-gateway:centos-6.4.0
运行zabbix-server-mysql镜像
docker volume create zabbix-server-vol
docker run -dit -p 10051:10051 --mount source=zabbix-server-vol,target=/etc/zabbix -v /etc/localtime:/etc/localtime -v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts --name=zabbix-server-mysql --restart=always --network zabbix_net -e DB_SERVER_HOST="zabbix-mysql" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" -e ZBX_JAVAGATEWAY="zabbix-java-gateway" -e ZBX_JAVAGATEWAY_ENABLE="true" -e ZBX_JAVAGATEWAYPORT=10052 zabbix/zabbix-server-mysql:centos-6.4.0
运行zabbix-web-nginx-mysql镜像
docker run -dit -p 8080:8080 -v /etc/localtime:/etc/localtime -v /dockerdata/zabbix/fonts/DejaVuSans.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf --name zabbix-web-nginx-mysql --restart=always --network zabbix_net -e DB_SERVER_HOST="zabbix-mysql" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" -e ZBX_SERVER_HOST="zabbix-server-mysql" zabbix/zabbix-web-nginx-mysql:centos-6.4.0
使用浏览器访问zabbix server

使用docker compose一键搭建zabbix-server
一键安装zabbix的docker-compose.yml文件内容如下
version: '3'
services:
zabbix-web-nginx-mysql:
image: zabbix/zabbix-web-nginx-mysql:centos-6.4.0
restart: always
environment:
- DB_SERVER_HOST=zabbix-mysql
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix123
- MYSQL_ROOT_PASSWORD=root123
- ZBX_SERVER_HOST=zabbix-server-mysql
ports:
- 8080:8080
volumes:
- /etc/localtime:/etc/localtime
- /data/zabbix/fonts/DejaVuSans.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf
networks:
- zabbix_net
depends_on:
- zabbix-mysql
- zabbix-server-mysql
zabbix-mysql:
image: mysql:8.0.32
restart: always
environment:
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix123
- MYSQL_ROOT_PASSWORD=root123
command:
- mysqld
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8
- --collation-server=utf8_bin
volumes:
- /etc/localtime:/etc/localtime
- /data/zabbix/db:/var/lib/mysql
networks:
- zabbix_net
zabbix-java-gateway:
image: zabbix/zabbix-java-gateway:centos-6.4.0
restart: always
volumes:
- /etc/localtime:/etc/localtime
networks:
- zabbix_net
zabbix-server-mysql:
image: zabbix/zabbix-server-mysql:centos-6.4.0
restart: always
volumes:
- zabbix-server-vol:/etc/zabbix
- /data/zabbix/alertscripts:/usr/lib/zabbix/alertscripts
- /etc/localtime:/etc/localtime
ports:
- 10051:10051
environment:
- DB_SERVER_HOST=zabbix-mysql
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix123
- MYSQL_ROOT_PASSWORD=root123
- ZBX_JAVAGATEWAY=zabbix-java-gateway
- ZBX_JAVAGATEWAY_ENABLE=true
- ZBX_JAVAGATEWAYPORT=10052
- ZBX_STARTPOLLERS=15
- ZBX_STARTTRAPPERS=10
- ZBX_STARTDISCOVERERS=5
depends_on:
- zabbix-mysql
networks:
- zabbix_net
zabbix-agent:
image: zabbix/zabbix-agent:centos-6.4.0
restart: always
ports:
- 10050:10050
environment:
- ZBX_HOSTNAME=Zabbix server
- ZBX_SERVER_HOST=zabbix-server-mysql
- ZBX_SERVER_PORT=10051
networks:
- zabbix_net
networks:
zabbix_net:
driver: bridge
volumes:
zabbix-server-vol:
docker-compose.yml文件编写完成后,在docker-compose.yml所在目录下,运行下面命令:
docker-compose up -d
注意提前创建需要文件和修改相关权限(还有字体文件的传输)
mkdir -p /data/zabbix/{db,fonts,alertscripts}
chmod -R 777 /data/zabbix
首次登录默认账号和密码
- 启动成功后,通过
http://宿主机IP:8080访问 Zabbix Web 界面 - 默认登录账号:Admin,密码:zabbix(首次登录建议立即修改)
更多推荐


所有评论(0)