从容器安装
概述
本节介绍如何使用 Docker 或 Docker Compose 部署 Zabbix。
Zabbix 官方提供:
- 为每个 Zabbix 组件分别提供 Docker 镜像,以便作为可移植且自给自足的容器运行。
- 用于在 Docker 中定义和运行多容器 Zabbix 组件的 Compose 文件。
从 Zabbix 6.0 开始,确定性触发器需要在安装期间创建。
如果为 MySQL/MariaDB 启用了二进制日志记录,则这需要 superuser 权限,或者设置变量/配置参数 log_bin_trust_function_creators = 1。
有关如何设置该变量的说明,请参见 Database creation scripts。
请注意,如果从控制台执行,该变量只会被临时设置,并会在 Docker 重启时丢失。
在这种情况下,请保持 SQL 服务运行,仅通过执行“docker compose down zabbix-server”,然后执行“docker compose up -d zabbix-server”来停止 zabbix-server 服务。
或者,您也可以在配置文件中设置此变量。
源文件
Docker 文件源代码存储在 GitHub 上的 Zabbix 官方仓库 中,您可以在那里跟踪文件的最新更改,或 fork 该项目以构建您自己的镜像。
Docker
Zabbix 提供基于多种操作系统基础镜像的镜像。 要获取特定 Zabbix 组件所支持的基础操作系统镜像列表,请参见 Docker Hub 中该组件的说明。 如果基础镜像有更新,所有 Zabbix 镜像都已配置为重新构建最新镜像。
安装
要获取 Zabbix 组件镜像,请运行:
docker pull zabbix/zabbix-server-mysql
将 zabbix/zabbix-server-mysql 替换为所需 Docker 仓库的名称。
此命令将拉取基于 Alpine Linux 操作系统的最新稳定版 Zabbix 组件版本。 您可以在仓库名称后附加 tags,以获取基于其他操作系统的镜像,或特定 Zabbix 主版本或次版本的镜像。
Docker Hub 中提供以下仓库:
| 组件 | Docker 仓库 | |
|---|---|---|
| Zabbix agent | zabbix/zabbix-agent | |
| Zabbix 服务器 | ||
| 支持 MySQL | zabbix/zabbix-server-mysql | |
| 支持 PostgreSQL | zabbix/zabbix-server-pgsql | |
| Zabbix Web 界面 | ||
| 基于 Apache2 Web 服务器并支持 MySQL | zabbix/zabbix-web-apache-mysql | |
| 基于 Apache2 Web 服务器并支持 PostgreSQL | zabbix/zabbix-web-apache-pgsql | |
| 基于 Nginx Web 服务器并支持 MySQL | zabbix/zabbix-web-nginx-mysql | |
| 基于 Nginx Web 服务器并支持 PostgreSQL | zabbix/zabbix-web-nginx-pgsql | |
| Zabbix proxy | ||
| 支持 SQLite3 | zabbix/zabbix-proxy-sqlite3 | |
| 支持 MySQL | zabbix/zabbix-proxy-mysql | |
| Zabbix Java 网关 | zabbix/zabbix-java-gateway | |
SNMP trap 支持通过单独的仓库 zabbix/zabbix-snmptraps 提供。 它可以与 Zabbix 服务器和 Zabbix proxy 关联使用。
标签
官方 Zabbix 组件镜像可能包含以下标签:
| Tag | Description | Example |
|---|---|---|
| latest | 基于 Alpine Linux 镜像的 Zabbix 组件最新稳定版本。 | zabbix-agent:latest |
| <OS>-trunk | 当前在特定操作系统上开发中的 Zabbix 版本的最新 nightly build。 <OS> - 基础操作系统。支持的值: alpine - Alpine Linux; ltsc2019 - Windows 10 LTSC 2019(仅 agent); ol - Oracle Linux; ltsc2022 - Windows 11 LTSC 2022(仅 agent); ubuntu - Ubuntu |
zabbix-agent:ubuntu-trunk |
| <OS>-latest | 特定操作系统上的 Zabbix 组件最新稳定版本。 <OS> - 基础操作系统。支持的值: alpine - Alpine Linux; ltsc2019 - Windows 10 LTSC 2019(仅 agent); ol - Oracle Linux; ltsc2022 - Windows 11 LTSC 2022(仅 agent); ubuntu - Ubuntu |
zabbix-agent:ol-latest |
| <OS>-X.X-latest | 特定主版本和操作系统上的 Zabbix 组件最新次版本。 <OS> - 基础操作系统。支持的值: alpine - Alpine Linux; ltsc2019 - Windows 10 LTSC 2019(仅 agent); ol - Oracle Linux; ltsc2022 - Windows 11 LTSC 2022(仅 agent); ubuntu - Ubuntu X.X - Zabbix 主版本(即 6.0、7.4、8.0)。 |
zabbix-agent:alpine-8.0-latest |
| <OS>-X.X.* | 特定主版本和操作系统上的 Zabbix 组件特定次版本。 <OS> - 基础操作系统。支持的值: alpine - Alpine Linux; ltsc2019 - Windows 10 LTSC 2019(仅 agent); ol - Oracle Linux; ltsc2022 - Windows 11 LTSC 2022(仅 agent); ubuntu - Ubuntu X.X - Zabbix 主版本(即 6.0、7.4、8.0)。 * - Zabbix 次版本 |
zabbix-agent:alpine-8.0.1 |
初始配置
下载镜像后,通过执行 docker run 命令并附加额外参数来启动容器,以指定所需的环境变量和/或挂载点。
下面提供了一些配置示例。
为了启用 Zabbix 各组件之间的通信,一些端口将暴露给主机,例如用于 Zabbix 服务器(trapper)的 10051/TCP、用于 Zabbix agent 的 10050/TCP、用于 SNMP trap 的 162/UDP,以及用于 Zabbix Web 界面的 80/TCP。 Zabbix 组件使用的默认端口完整列表可在Requirements页面查看。 对于 Zabbix 服务器和 agent,可通过设置 ZBX_LISTENPORT 环境变量来更改默认端口。
环境变量
所有 Zabbix 组件镜像都提供了用于控制配置的环境变量。 支持的环境变量列在组件仓库中。
这些环境变量源自 Zabbix 配置文件中的选项,但采用了不同的命名方式。
例如,ZBX_LOGSLOWQUERIES 等同于 Zabbix 服务器 或 Zabbix proxy 配置文件中的 LogSlowQueries。
某些配置选项(例如 PIDFile 和 LogType)无法更改。
以下环境变量是 Docker 组件特有的,在 Zabbix 配置文件中不存在:
| Variable | Components | Default value | Description |
|---|---|---|---|
DB_SERVER_HOST |
服务器 Proxy Web interface |
MYSQL 为 mysql-server PostgreSQL 为 postgres-server |
MySQL 或 PostgreSQL 服务器的 IP 或 DNS 名称。 |
DB_SERVER_PORT |
服务器 Proxy Web interface |
MYSQL 为 3306 PostgreSQL 为 5432 |
MySQL 或 PostgreSQL 服务器的端口。 |
MYSQL_USER |
服务器 Proxy Web-interface |
zabbix |
MySQL 数据库用户。 |
MYSQL_PASSWORD |
服务器 Proxy Web interface |
zabbix |
MySQL 数据库密码。 |
MYSQL_DATABASE |
服务器 Proxy Web interface |
Zabbix 服务器为 zabbix Zabbix proxy 为 zabbix_proxy |
Zabbix 数据库名称。 |
POSTGRES_USER |
服务器 Web interface |
zabbix |
PostgreSQL 数据库用户。 |
POSTGRES_PASSWORD |
服务器 Web interface |
zabbix |
PostgreSQL 数据库密码。 |
POSTGRES_DB |
服务器 Web interface |
Zabbix 服务器为 zabbix Zabbix proxy 为 zabbix_proxy |
Zabbix 数据库名称。 |
PHP_TZ |
Web-interface | Europe/Riga |
PHP 格式的时区。支持的时区完整列表可在 php.net 上查看。 |
ZBX_SERVER_NAME |
Web interface | Zabbix Docker |
在 Web 界面垂直菜单中,显示在 Zabbix 徽标下方的可见 Zabbix 安装名称。 |
ZBX_JAVAGATEWAY_ENABLE |
服务器 Proxy |
false |
启用与 Zabbix Java 网关的通信,以收集与 Java 相关的检查项。 |
ZBX_ENABLE_SNMP_TRAPS |
服务器 Proxy |
false |
启用 SNMP trap 功能。它需要 zabbix-snmptraps 实例,以及共享卷 /var/lib/zabbix/snmptraps 挂载到 Zabbix 服务器或 Zabbix proxy。 |
卷
这些镜像允许使用以下挂载点挂载卷:
| 卷 | 说明 | |
|---|---|---|
| Zabbix agent | ||
| /etc/zabbix/zabbix_agentd.d | 该卷允许包含 *.conf 文件,并使用 UserParameter 功能扩展 Zabbix agent |
|
| /var/lib/zabbix/modules | 该卷允许加载附加模块,并使用 LoadModule 功能扩展 Zabbix agent | |
| /var/lib/zabbix/enc | 该卷用于存储与 TLS 相关的文件。这些文件名通过环境变量 ZBX_TLSCAFILE、ZBX_TLSCRLFILE、ZBX_TLSKEY_FILE 和 ZBX_TLSPSKFILE 指定 |
|
| Zabbix 服务器 | ||
| /usr/lib/zabbix/alertscripts | 该卷用于自定义告警脚本。它是 zabbix_server.conf 中的 AlertScriptsPath 参数 |
|
| /usr/lib/zabbix/externalscripts | 该卷由外部检查使用。它是 zabbix_server.conf 中的 ExternalScripts 参数 |
|
| /var/lib/zabbix/modules | 该卷允许加载附加模块,并使用 LoadModule 功能扩展 Zabbix 服务器 | |
| /var/lib/zabbix/enc | 该卷用于存储与 TLS 相关的文件。这些文件名通过环境变量 ZBX_TLSCAFILE、ZBX_TLSCRLFILE、ZBX_TLSKEY_FILE 和 ZBX_TLSPSKFILE 指定 |
|
| /var/lib/zabbix/ssl/certs | 该卷用作客户端身份验证所需 SSL 客户端证书文件的存放位置。它是 zabbix_server.conf 中的 SSLCertLocation 参数 |
|
| /var/lib/zabbix/ssl/keys | 该卷用作客户端身份验证所需 SSL 私钥文件的存放位置。它是 zabbix_server.conf 中的 SSLKeyLocation 参数 |
|
| /var/lib/zabbix/ssl/ssl_ca | 该卷用作 SSL 服务器证书验证所需证书颁发机构 (CA) 文件的存放位置。它是 zabbix_server.conf 中的 SSLCALocation 参数 |
|
| /var/lib/zabbix/snmptraps | 该卷用作 snmptraps.log 文件的存放位置。它可以由 zabbix-snmptraps 容器共享,并在创建新的 Zabbix 服务器实例时通过 Docker 的 volumes_from 选项继承。可通过使用共享卷并将环境变量 ZBX_ENABLE_SNMP_TRAPS 切换为“true”来启用 SNMP trap 处理功能 |
|
| /var/lib/zabbix/mibs | 该卷允许添加新的 MIB 文件。不支持子目录,所有 MIB 都必须放置在 /var/lib/zabbix/mibs 中 |
|
| Zabbix proxy | ||
| /usr/lib/zabbix/externalscripts | 该卷由外部检查使用。它是 zabbix_proxy.conf 中的 ExternalScripts 参数 |
|
| /var/lib/zabbix/db_data/ | 该卷允许将数据库文件存储在外部设备上。仅支持使用 SQLite3 的 Zabbix proxy | |
| /var/lib/zabbix/modules | 该卷允许加载附加模块,并使用 LoadModule 功能扩展 Zabbix 服务器 | |
| /var/lib/zabbix/enc | 该卷用于存储与 TLS 相关的文件。这些文件名通过环境变量 ZBX_TLSCAFILE、ZBX_TLSCRLFILE、ZBX_TLSKEY_FILE 和 ZBX_TLSPSKFILE 指定 |
|
| /var/lib/zabbix/ssl/certs | 该卷用作客户端身份验证所需 SSL 客户端证书文件的存放位置。它是 zabbix_proxy.conf 中的 SSLCertLocation 参数 |
|
| /var/lib/zabbix/ssl/keys | 该卷用作客户端身份验证所需 SSL 私钥文件的存放位置。它是 zabbix_proxy.conf 中的 SSLKeyLocation 参数 |
|
| /var/lib/zabbix/ssl/ssl_ca | 该卷用作 SSL 服务器证书验证所需证书颁发机构 (CA) 文件的存放位置。它是 zabbix_proxy.conf 中的 SSLCALocation 参数 |
|
| /var/lib/zabbix/snmptraps | 该卷用作 snmptraps.log 文件的存放位置。它可以由 zabbix-snmptraps 容器共享,并在创建新的 Zabbix 服务器实例时通过 Docker 的 volumes_from 选项继承。可通过使用共享卷并将环境变量 ZBX_ENABLE_SNMP_TRAPS 切换为“true”来启用 SNMP trap 处理功能 |
|
| /var/lib/zabbix/mibs | 该卷允许添加新的 MIB 文件。不支持子目录,所有 MIB 都必须放置在 /var/lib/zabbix/mibs 中 |
|
| 基于 Apache2 Web 服务器的 Zabbix Web 界面 | ||
| /etc/ssl/apache2 | 该卷允许为 Zabbix Web 界面启用 HTTPS。该卷必须包含为 Apache2 SSL 连接准备的 ssl.crt 和 ssl.key 两个文件 |
|
| 基于 Nginx Web 服务器的 Zabbix Web 界面 | ||
| /etc/ssl/nginx | 该卷允许为 Zabbix Web 界面启用 HTTPS。该卷必须包含为 Nginx SSL 连接准备的 ssl.crt、ssl.key 两个文件以及 dhparam.pem |
|
| Zabbix snmptraps | ||
| /var/lib/zabbix/snmptraps | 该卷包含 snmptraps.log 日志文件,其中记录了接收到的 SNMP trap |
|
| /var/lib/zabbix/mibs | 该卷允许添加新的 MIB 文件。不支持子目录,所有 MIB 都必须放置在 /var/lib/zabbix/mibs 中 |
|
更多信息请参见 Docker Hub 中的 Zabbix 官方仓库。
示例
示例 1
本示例演示如何运行支持 MySQL 数据库的 Zabbix 服务器、基于 Nginx Web 服务器的 Zabbix Web 界面以及 Zabbix Java 网关。
1. 创建专用于 Zabbix 组件容器的网络:
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
2. 启动空的 MySQL 服务器实例:
docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--network=zabbix-net \
--restart unless-stopped \
-d mysql:8.4-oracle \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=caching_sha2_password
3. 启动 Zabbix Java 网关实例:
docker run --name zabbix-java-gateway -t \
--network=zabbix-net \
--restart unless-stopped \
-d zabbix/zabbix-java-gateway:alpine-8.0-latest
4. 启动 Zabbix 服务器实例,并将该实例与已创建的 MySQL 服务器实例关联:
docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
--network=zabbix-net \
-p 10051:10051 \
--restart unless-stopped \
-d zabbix/zabbix-server-mysql:alpine-8.0-latest
5. 启动 Zabbix Web 界面,并将该实例与已创建的 MySQL 服务器实例和 Zabbix 服务器实例关联:
docker run --name zabbix-web-nginx-mysql -t \
-e ZBX_SERVER_HOST="zabbix-server-mysql" \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--network=zabbix-net \
-p 80:8080 \
--restart unless-stopped \
-d zabbix/zabbix-web-nginx-mysql:alpine-8.0-latest
示例 2
本示例演示如何运行支持 PostgreSQL 数据库的 Zabbix 服务器、基于 Nginx Web 服务器的 Zabbix Web 界面以及 SNMP trap 功能。
1. 创建专用于 Zabbix 组件容器的网络:
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
2. 启动空的 PostgreSQL 服务器实例:
docker run --name postgres-server -t \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix_pwd" \
-e POSTGRES_DB="zabbix" \
--network=zabbix-net \
--restart unless-stopped \
-d postgres:latest
3. 启动 Zabbix snmptraps 实例:
docker run --name zabbix-snmptraps -t \
-v /zbx_instance/snmptraps:/var/lib/zabbix/snmptraps:rw \
-v /var/lib/zabbix/mibs:/usr/share/snmp/mibs:ro \
--network=zabbix-net \
-p 162:1162/udp \
--restart unless-stopped \
-d zabbix/zabbix-snmptraps:alpine-8.0-latest
4. 启动 Zabbix 服务器实例,并将该实例与已创建的 PostgreSQL 服务器实例关联:
docker run --name zabbix-server-pgsql -t \
-e DB_SERVER_HOST="postgres-server" \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix_pwd" \
-e POSTGRES_DB="zabbix" \
-e ZBX_ENABLE_SNMP_TRAPS="true" \
--network=zabbix-net \
-p 10051:10051 \
--volumes-from zabbix-snmptraps \
--restart unless-stopped \
-d zabbix/zabbix-server-pgsql:alpine-8.0-latest
5. 启动 Zabbix Web 界面,并将该实例与已创建的 PostgreSQL 服务器实例和 Zabbix 服务器实例关联:
docker run --name zabbix-web-nginx-pgsql -t \
-e ZBX_SERVER_HOST="zabbix-server-pgsql" \
-e DB_SERVER_HOST="postgres-server" \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix_pwd" \
-e POSTGRES_DB="zabbix" \
--network=zabbix-net \
-p 443:8443 \
-p 80:8080 \
-v /etc/ssl/nginx:/etc/ssl/nginx:ro \
--restart unless-stopped \
-d zabbix/zabbix-web-nginx-pgsql:alpine-8.0-latest
示例 3
本示例演示如何在 Red Hat 8 上使用 podman 运行支持 MySQL 数据库的 Zabbix 服务器、基于 Nginx Web 服务器的 Zabbix Web 界面以及 Zabbix Java 网关。
1. 创建名为 zabbix 的新 pod,并暴露端口(Web 界面、Zabbix 服务器 trapper):
podman pod create --name zabbix -p 80:8080 -p 10051:10051
2. (可选)在 zabbix pod 中启动 Zabbix agent 容器:
podman run --name zabbix-agent \
-e ZBX_SERVER_HOST="127.0.0.1,localhost" \
--restart=always \
--pod=zabbix \
-d registry.connect.redhat.com/zabbix/zabbix-agent-74:latest
3. 在主机上创建 ./mysql/ 目录并启动 Oracle MySQL 服务器 8.4:
podman run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-v ./mysql/:/var/lib/mysql/:Z \
--restart=always \
--pod=zabbix \
-d mysql:8.4 \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=caching_sha2_password
4. 启动 Zabbix 服务器容器:
podman run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="127.0.0.1" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_JAVAGATEWAY="127.0.0.1" \
--restart=always \
--pod=zabbix \
-d registry.connect.redhat.com/zabbix/zabbix-server-mysql-74
5. 启动 Zabbix Java 网关容器:
podman run --name zabbix-java-gateway -t \
--restart=always \
--pod=zabbix \
-d registry.connect.redhat.com/zabbix/zabbix-java-gateway-74
6. 启动 Zabbix Web 界面容器:
podman run --name zabbix-web-mysql -t \
-e ZBX_SERVER_HOST="127.0.0.1" \
-e DB_SERVER_HOST="127.0.0.1" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--restart=always \
--pod=zabbix \
-d registry.connect.redhat.com/zabbix/zabbix-web-mysql-74
Pod zabbix 将 zabbix-web-mysql 容器的 8080/TCP 端口映射到主机的 80/TCP 端口(HTTP)。
Docker Compose
或者,也可以使用 Docker Compose 插件安装 Zabbix。 用于定义和运行多容器 Zabbix 组件的 Compose 文件可在 GitHub 上官方的 Zabbix Docker repository 中获取。
官方 Zabbix compose 文件支持 Docker Compose 第 3 版。
这些 compose 文件作为示例提供;它们包含的内容较多。 例如,其中包含同时支持 MySQL 和 SQLite3 的 proxy。
要获取 Zabbix 提供的 Docker compose 文件,请克隆该仓库:
git clone https://github.com/zabbix/zabbix-docker.git
切换到所需版本:
git checkout 8.0
使用 Compose 配置文件创建并启动容器:
docker compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up
将上述命令中的 docker-compose_v3_alpine_mysql_latest.yaml 替换为所需的配置文件。
可用选项如下:
| 文件名 | 说明 |
|---|---|
docker-compose_v3_alpine_mysql_latest.yaml |
该 compose 文件在 Alpine Linux 上运行最新版本的 Zabbix 8.0 组件,并支持 MySQL 数据库。 |
docker-compose_v3_alpine_mysql_local.yaml |
该 compose 文件在本地构建最新版本的 Zabbix 8.0,并在 Alpine Linux 上运行支持 MySQL 数据库的 Zabbix 组件。 |
docker-compose_v3_alpine_pgsql_latest.yaml |
该 compose 文件在 Alpine Linux 上运行最新版本的 Zabbix 8.0 组件,并支持 PostgreSQL 数据库。 |
docker-compose_v3_alpine_pgsql_local.yaml |
该 compose 文件在本地构建最新版本的 Zabbix 8.0,并在 Alpine Linux 上运行支持 PostgreSQL 数据库的 Zabbix 组件。 |
docker-compose_v3_ol_mysql_latest.yaml |
该 compose 文件在 Oracle Linux 上运行最新版本的 Zabbix 8.0 组件,并支持 MySQL 数据库。 |
docker-compose_v3_ol_mysql_local.yaml |
该 compose 文件在本地构建最新版本的 Zabbix 8.0,并在 Oracle Linux 上运行支持 MySQL 数据库的 Zabbix 组件。 |
docker-compose_v3_ol_pgsql_latest.yaml |
该 compose 文件在 Oracle Linux 上运行最新版本的 Zabbix 8.0 组件,并支持 PostgreSQL 数据库。 |
docker-compose_v3_ol_pgsql_local.yaml |
该 compose 文件在本地构建最新版本的 Zabbix 8.0,并在 Oracle Linux 上运行支持 PostgreSQL 数据库的 Zabbix 组件。 |
docker-compose_v3_ubuntu_mysql_latest.yaml |
该 compose 文件在 Ubuntu 24.04(noble)上运行最新版本的 Zabbix 8.0 组件,并支持 MySQL 数据库。 |
docker-compose_v3_ubuntu_mysql_local.yaml |
该 compose 文件在本地构建最新版本的 Zabbix 8.0,并在 Ubuntu 24.04(noble)上运行支持 MySQL 数据库的 Zabbix 组件。 |
docker-compose_v3_ubuntu_pgsql_latest.yaml |
该 compose 文件在 Ubuntu 24.04(noble)上运行最新版本的 Zabbix 8.0 组件,并支持 PostgreSQL 数据库。 |
docker-compose_v3_ubuntu_pgsql_local.yaml |
该 compose 文件在本地构建最新版本的 Zabbix 8.0,并在 Ubuntu 24.04(noble)上运行支持 PostgreSQL 数据库的 Zabbix 组件。 |
存储
Compose 文件已配置为支持在主机上使用本地存储。
当您使用 compose 文件运行 Zabbix 组件时,Docker Compose 将在包含该 compose 文件的文件夹中创建一个 zbx_env 目录。
该目录将包含与 Volumes 部分中所述相同的结构,以及用于数据库存储的目录。
此外,还为 /etc/localtime 和 /etc/timezone 文件提供了只读模式的卷。
环境变量
变量文件采用以下命名结构:.env_<组件类型>,位于 env_vars 目录 中。
有关变量命名和可用选项的详细信息,请参见环境变量。
示例
示例 1
git checkout 8.0
docker compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up -d
该命令将为每个 Zabbix 组件下载最新的 Zabbix 8.0 镜像,并以分离模式运行它们。
不要忘记从 github.com 官方 Zabbix 仓库下载带有 compose 文件的 .env_<type of component> 文件。
示例 2
git checkout 8.0
docker compose -f ./docker-compose_v3_ubuntu_mysql_local.yaml up -d
该命令将下载基础镜像 Ubuntu 24.04(noble),然后在本地构建 Zabbix 8.0 组件,并以分离模式运行它们。