zabbix使用docker-compose部署和配置

zabbix是一款知名的老牌监控系统,可对硬件、操作系统、数据库、网络等多种目标介质进行统一监控,并集成了UI、监控展示、告警、服务发现等多种功能,可非常高效地进行监控工作。

zabbi本身的使用非常广泛,但由于产品涉及较多组件,安装的过程往往较为麻烦,需要花费不少时间进行部署调试。对此,本文将介绍如何基于docker容器的方式,快速搭建最新版本的zabbix监控平台,解决大家在安装部署上的痛点。

官方网站:

https://www.zabbix.com/cn/

Zabbix 使用手册

https://www.zabbix.com/documentation/7.0/zh/manual

zabbix架构信息

核心架构包括以下几个部分:

  1. Zabbix Server:Zabbix Server是整个监控系统的核心组件,负责接收和处理来自Zabbix Agent的监控数据。Zabbix Server可以通过多种方式收集数据,如SNMP、IPMI、SSH等。收集到的数据会存储在Zabbix数据库中,供后续处理和分析。
  2. Zabbix Agent:Zabbix Agent是安装在被监控主机上的软件,负责收集并提供监控数据。Zabbix Agent可以运行在各种操作系统上,支持多种编程语言。Agent会定期将监控数据发送给Zabbix Server,以确保监控数据的实时性和准确性。
  3. Zabbix Web界面:Zabbix Web界面是一个基于Java的Web应用程序,用于展示和管理监控数据。通过Zabbix Web界面,用户可以轻松查看实时监控数据、历史趋势、报警信息等。此外,Zabbix Web界面还提供了丰富的报告和统计功能,方便用户分析和诊断系统性能。
  4. Zabbix API:Zabbix API是一个RESTful风格的接口,允许外部程序和脚本访问Zabbix Server的数据和功能。通过Zabbix API,您可以实现自动化操作、数据集成和其他定制功能。
  5. 数据库:Zabbix使用MySQL或PostgreSQL数据库存储监控数据、配置信息和报警历史等。数据库服务器可以是本地或远程的,以便于扩展和备份。
  6. 报警和通知:Zabbix支持多种报警方式,如邮件、SMS、即时通讯等。当监控项触发报警条件时,Zabbix Server会将报警信息发送给指定的用户或团队。此外,Zabbix还支持通知渠道的聚合和重试,以确保报警信息的及时传递。
  7. 插件和扩展:Zabbix具有良好的扩展性,通过丰富的插件和扩展模块,可以实现对各种设备和协议的监控。此外,Zabbix社区不断推出新功能和优化性能,使得Zabbix适用于更多场景。

安装Docker&Docker Compose

参考 https://getdocker.quickso.cn

安装服务端

Zabbix 提供了用于在 Docker 中定义和运行多容器 Zabbix 组件的 compose 文件。 这些 compose 文件可以在 https://github.com/zabbix/zabbix-docker 上的 Zabbix docker 官方仓库中找到。

以下为几个不同版本的 compose 文件:

文件名 描述
docker-compose_v3_alpine_mysql_latest.yaml 该 compose 文件运行基于 Alpine Linux 的 Zabbix 5.4 最新版本的组件,支持 MySQL 数据库。
docker-compose_v3_alpine_mysql_local.yaml 该 compose 文件本地构建和运行基于 Alpine Linux 的 Zabbix 5.4 最新版本的组件,支持 MySQL数据库。
docker-compose_v3_alpine_pgsql_latest.yaml 该 compose 文件运行基于 Alpine Linux 的 Zabbix 5.4 最新版本的组件,支持 PostgreSQL 数据库。
docker-compose_v3_alpine_pgsql_local.yaml 该 compose 文件本地构建和运行基于 Apline Linux 的 Zabbix 5.4 最新版本的组件,支持 PostgreSQL 数据库。
docker-compose_v3_centos_mysql_latest.yaml 该 compose 文件运行基于 CentOS 8 的 Zabbix 5.4 最新版本的组件,支持 MySQL 数据库。
docker-compose_v3_centos_mysql_local.yaml 该 compose 文件本地构建和运行基于 CentOS 8 的 Zabbix 5.4 最新版本的组件,支持 MySQL 数据库。
docker-compose_v3_centos_pgsql_latest.yaml 该 compose 文件运行基于 CentOS 8 的 Zabbix 5.4 最新版本的组件,支持 PostgreSQL 数据库。
docker-compose_v3_centos_pgsql_local.yaml 该 compose 文件本地构建和运行基于 CentOS 8 的 Zabbix 5.4 最新版本的组件,支持 PostgreSQL 数据库。
docker-compose_v3_ubuntu_mysql_latest.yaml 该 compose 文件运行基于 Ubuntu 20.04 的 Zabbix 5.4 最新版本的组件,支持 MySQL 数据库。
docker-compose_v3_ubuntu_mysql_local.yaml 该 compose 文件本地构建和运行基于 Ubuntu 20.04 的 Zabbix 5.4 最新版本的组件,支持 MySQL 数据库。
docker-compose_v3_ubuntu_pgsql_latest.yaml 该 compose 文件运行基于 Ubuntu 20.04 的 Zabbix 5.4 最新版本的组件,支持 PostgreSQL 数据库。
docker-compose_v3_ubuntu_pgsql_local.yaml 该 compose 文件本地构建和运行基于 Ubuntu 20.04 的 Zabbix 5.4 最新版本的组件,支持 PosegreSQL 数据库。

[!NOTE]

Docker compose 文件支持 Docker Compose 3 版本。

本次我们使用docker-compose_v3_alpine_mysql_latest.yaml文件部署

1
2
git clone https://github.com/zabbix/zabbix-docker.git
cd zabbix-docker

栗子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# 创建存放位置
mkdir -p /data/zabbix && cd /data/zabbix
touch docker-compose.yml

cat > docker-compose.yml << EOF

version: '3'

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=123456
- 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:
- 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=123456
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:
- 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:
- zabbix-server-vol:/etc/zabbix
- /data/zabbix/alertscripts:/usr/lib/zabbix/alertscripts
- /etc/localtime:/etc/localtime
- /data/zabbix/config:/etc/zabbix/
ports:
- 10051:10051
environment:
- DB_SERVER_HOST=zabbix-mysql
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix
- MYSQL_ROOT_PASSWORD=123456
- 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=10051
networks:
- zbx_net

networks:
zbx_net:
driver: bridge

volumes:
zabbix-server-vol:

EOF

启动

1
2
3
4
5
6
7
8
9
10
11
# 在docker-compose.yml文件目录中运行
docker-compose up -d

# 查看容器运行日志
docker-compose logs -f

# 查看容器运行状态
docker-compose up

# 查看容器启动的进程
docker-compose top

测试

访问测试

http://ip:80

默认认证信息

  • 用户名Admin
  • 密码zabbix

安装agent(客户端)

zabbix agent部署较为简单,你可以使用docker,也可以使用Yum、二进制包等方式安装,此处演示基于docker的安装方式。

1
2
3
4
5
6
7
8
9
$ docker run --name zabbix-agent -t \
-v zabbix_agent:/etc/zabbix \
-e ZBX_HOSTNAME="host-01" \
-e ZBX_SERVER_HOST="192.168.214.112" \
-e ZBX_SERVER_PORT=10051 \
-p 10050:10050 \
--restart=unless-stopped \
--privileged \
-d zabbix/zabbix-agent:alpine-6.2-latest

[!NOTE]

如果是部署在zabbix Server主机上的监控agent,此时的ZBX_SERVER_HOST需改为zabbix server的容器IP,而不能用主机IP。

添加主机

在目标主机安装好agnt后,即可以在zabbix server端配置相关的主机监控。

  1. 点击”Create host”,创建新的主机配置。

img

  1. 配置完成后,静待一会可看到监控目标生效。

img


zabbix使用docker-compose部署和配置
https://blog.quickso.cn/2025/06/14/zabbix使用docker-compose部署和配置/
作者
木子欢儿
发布于
2025年6月14日
许可协议