Akemi

Zabbix7使用docker-compose部署

2026/01/04

Docker Compose部署zabbix-server

  • 单文件管理所有服务
  • 依赖关系清晰
  • 一键启停/重建
  • 版本控制友好
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
# 参考文档
https://github.com/zabbix/zabbix-docker

mkdir zabbix-docker-compose
cd zabbix-docker-compose/
git clone https://github.com/zabbix/zabbix-docker.git
cd zabbix-docker/
ls | grep compose
compose.yaml
compose_additional_components.yaml
compose_databases.yaml
compose_zabbix_components.yaml
docker-compose_v3_alpine_mysql_latest.yaml
docker-compose_v3_alpine_mysql_local.yaml
docker-compose_v3_alpine_pgsql_latest.yaml
docker-compose_v3_alpine_pgsql_local.yaml
docker-compose_v3_centos_mysql_latest.yaml
docker-compose_v3_centos_mysql_local.yaml
docker-compose_v3_centos_pgsql_latest.yaml
docker-compose_v3_centos_pgsql_local.yaml
docker-compose_v3_ol_mysql_latest.yaml
docker-compose_v3_ol_mysql_local.yaml
docker-compose_v3_ol_pgsql_latest.yaml
docker-compose_v3_ol_pgsql_local.yaml
docker-compose_v3_ubuntu_mysql_latest.yaml
docker-compose_v3_ubuntu_mysql_local.yaml
docker-compose_v3_ubuntu_pgsql_latest.yaml
docker-compose_v3_ubuntu_pgsql_local.yaml

# 目录结构
zabbix-docker/
├── env_vars/ # 变量
│ ├── .ZBX_DB_HOST
│ ├── .ZBX_DB_NAME
│ ├── .ZBX_DB_USER
│ ├── .ZBX_DB_PASSWORD_FILE
│ └── ...
├── compose.yaml
├── compose_databases.yaml
├── compose_zabbix_components.yaml
└── .env # 环境变量

# 选择使用最简单的版本
cp docker-compose_v3_alpine_mysql_latest.yaml docker-compose.yaml
# 简单注释配置文件的字段
cat docker-compose.yaml
services:
server-db-init: # 任务名称
extends: # 关联配置模板
file: compose_zabbix_components.yaml # 关联要执行的yaml文件
service: server-mysql-db-init # 指定继承的具体服务模板
image: "${ZABBIX_SERVER_MYSQL_IMAGE}:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_IMAGE_TAG_POSTFIX}" # 使用环境变量拼成镜像
volumes: # 卷挂载配置
- /etc/timezone:/etc/timezone:ro
depends_on: # 依赖关系:先启动依赖的服务,再启动本服务
mysql-server:
condition: service_started # 依赖条件:等待依赖服务完全启动
labels:
com.zabbix.os: "${ALPINE_OS_TAG}"

docker-compose up -f docker-compose.yaml -d

# 查看zabbix-server的ip
docker inspect zabbix-docker-zabbix-server-1
能看到
zabbix-docker_backend 172.16.239.3
zabbix-docker_database 172.20.0.3
zabbix-docker_frontend 172.16.238.3
zabbix-docker_tools_frontend 172.16.240.2

部署zabbix-agent

为了方便,直接用容器了,实际上无论是容器还是包管理器安装的agent,都只要填对zabbix-server的地址就ok

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 同一台主机上(需要加入同一个docker网络
docker run -itd --name zabbix-agent \
--network zabbix-docker_backend \
-p 10050:10050 \
-e ZBX_HOSTNAME="Zabbix server" \
-e ZBX_SERVER_HOST="172.16.239.3" \
-e ZBX_SERVER_PORT="10051" \
zabbix/zabbix-agent

# 不同主机上(直接指定宿主机ip,因为有10051:10051的端口映射
docker run -itd --name zabbix-agent \
-p 10050:10050 \
-e ZBX_HOSTNAME="Zabbix server" \
-e ZBX_SERVER_HOST="192.168.10.100" \
-e ZBX_SERVER_PORT="10051" \
zabbix/zabbix-agent

如果无法直接连接上,就需要手动将zabbix-server的agent地址从127.0.0.1改为当前agent容器的ip地址,我这里是172.16.239.4

CATALOG
  1. 1. Docker Compose部署zabbix-server
  2. 2. 部署zabbix-agent