!logo
Zabbix 是一款企业级开源分布式监控解决方案。它能监控网络的多项参数及服务器的健康状态与完整性,支持灵活的通知机制,允许用户为几乎任何事件配置基于电子邮件的告警,以便快速响应服务器问题。同时,Zabbix 基于存储的数据提供出色的报表和数据可视化功能,非常适合容量规划。
更多信息及 Zabbix 组件的相关下载,请访问 [***] 和 *** 什么是 Zabbix 代理?
Zabbix 代理(Zabbix proxy)是一个进程,可从一个或多个被监控设备收集监控数据,并将信息发送到 Zabbix 服务器,本质上代表服务器工作。所有收集的数据会先在本地缓冲,然后传输到该代理所属的 Zabbix 服务器。
以下是***唯一的 Zabbix 代理 Docker 镜像,基于 Alpine Linux v3.22、Ubuntu 24.04(noble)、CentOS Stream 10 和 Oracle Linux 10 构建。可用的 Zabbix 代理版本及标签如下:
镜像会随新版本发布更新,latest 标签基于 Alpine Linux。
该镜像使用 MySQL 数据库存储收集的数据(发送到 Zabbix 服务器前),启动流程如下:
MYSQL_ROOT_PASSWORD 或 MYSQL_ALLOW_EMPTY_PASSWORD,实例会尝试创建 MYSQL_USER 用户(密码为 MYSQL_PASSWORD),供 Zabbix 服务器后续使用MYSQL_DATABASE 数据库是否存在,不存在则创建dbversion 表是否存在,若不存在则创建 Zabbix 代理数据库 schemazabbix-proxy-mysql启动 Zabbix 代理容器的命令如下:
consoledocker run --name some-zabbix-proxy-mysql -e DB_SERVER_HOST="some-mysql-server" -e MYSQL_USER="some-user" -e MYSQL_PASSWORD="some-password" -e ZBX_HOSTNAME=some-hostname -e ZBX_SERVER_HOST=some-zabbix-server --init -d zabbix/zabbix-proxy-mysql:tag
参数说明:
some-zabbix-proxy-mysql:容器名称some-mysql-server:MySQL 服务器的 IP 或 DNS 名称some-user:连接 MySQL 服务器上 Zabbix 数据库的用户some-password:连接 MySQL 服务器的密码some-hostname:Zabbix 代理配置文件中的 Hostname 参数值some-zabbix-server:Zabbix 服务器的 IP 或 DNS 名称tag:指定版本的标签(见上文版本列表),完整标签可查看 标签列表[!NOTE] Zabbix 服务器可通过
fping工具执行 ICMP 检查。若容器运行在无 root 模式或受限环境中,可能会遇到fping: Operation not permitted或「所有资源丢包」等错误,此时需在docker run或podman run命令中添加--cap-add=net_raw。此外,非 root 环境下运行fping可能需要修改 sysctl:net.ipv4.ping_group_range=0 1995(1995 为zabbix用户组 GID)。
若设置 ZBX_PROXYMODE=1(被动代理模式),此镜像会暴露标准 Zabbix 代理端口(***)。启动 Zabbix 服务器容器并关联代理容器的命令如下:
console$ docker run --name some-zabbix-server --link some-zabbix-proxy-mysql:zabbix-proxy-mysql --init -d zabbix/zabbix-server:latest
默认模式为主动代理模式,启动代理容器并关联 Zabbix 服务器的命令如下:
console$ docker run --name some-zabbix-proxy-mysql --link some-zabbix-server:zabbix-server --init -d zabbix/zabbix-proxy-mysql:latest
通过 docker exec 可在容器内执行命令,例如进入 bash 终端:
console$ docker exec -ti some-zabbix-proxy-mysql /bin/bash
Zabbix 代理日志可通过 Docker 容器日志查看:
console$ docker logs some-zabbix-proxy-mysql
启动镜像时,可通过 docker run 命令行传递环境变量调整 Zabbix 代理配置,常用变量如下:
ZBX_PROXYMODE0(主动代理)0(主动)、1(被动)ZBX_HOSTNAMEHostname 参数zabbix-proxy-mysqlZBX_SERVER_HOSTServer 参数zabbix-server:端口号(例如 ZBX_SERVER_HOST=some-server:***)ZBX_SERVER_PORT***ZBX_SERVER_HOST(如 ZBX_SERVER_HOST=some-server:***)DB_SERVER_HOSTmysql-serverDB_SERVER_PORT3306MYSQL_USER、MYSQL_PASSWORD、MYSQL_USER_FILE、MYSQL_PASSWORD_FILE_FILE 变量可指定存储凭据的文件路径(适用于 Docker Swarm/Kubernetes 密钥管理),需注意 MYSQL_USER 与 MYSQL_USER_FILE 互斥consoledocker run --name some-zabbix-proxy-mysql -e DB_SERVER_HOST="some-mysql-server" -v ./.MYSQL_USER:/run/secrets/MYSQL_USER -e MYSQL_USER_FILE=/run/secrets/MYSQL_USER -v ./.MYSQL_PASSWORD:/run/secrets/MYSQL_PASSWORD -e MYSQL_PASSWORD_FILE=/var/run/secrets/MYSQL_PASSWORD -e ZBX_HOSTNAME=some-hostname -e ZBX_SERVER_HOST=some-zabbix-server --init -d zabbix/zabbix-proxy-mysql:tag
consoleprintf "zabbix" | docker secret create MYSQL_USER - printf "zabbix" | docker secret create MYSQL_PASSWORD - docker run --name some-zabbix-proxy-mysql -e DB_SERVER_HOST="some-mysql-server" -e MYSQL_USER_FILE=/run/secrets/MYSQL_USER -e MYSQL_PASSWORD_FILE=/run/secrets/MYSQL_PASSWORD -e ZBX_SERVER_HOST="some-zabbix-server" -e ZBX_HOSTNAME=some-hostname --init -d zabbix/zabbix-proxy-mysql:tag
MYSQL_USER=zabbix,MYSQL_PASSWORD=zabbixMYSQL_DATABASEzabbix_proxyZBX_LOADMODULE/var/lib/zabbix/modules 卷使用dummy1.so,dummy2.soZBX_DEBUGLEVELDebugLevel 参数3(警告)0(启动/停止信息)、1(关键信息)、2(错误信息)、3(警告)、4(调试)、5(详细调试)ZBX_TIMEOUT4ZBX_JAVAGATEWAY_ENABLEfalse镜像还支持通过环境变量配置 zabbix_proxy.conf 中的多数参数,部分常用变量及默认值如下:
ZBX_ALLOWUNSUPPORTEDDBVERSIONS=0 # 6.0.0+ 支持 ZBX_DBTLSCONNECT= # 5.0.0+ 支持(数据库 TLS 连接模式) ZBX_DBTLSCAFILE= # 5.0.0+ 支持(数据库 CA 证书文件路径) ZBX_ENABLEREMOTECOMMANDS=0 # 3.4.0+ 支持(允许远程命令) ZBX_STARTPOLLERS=5 # 轮询进程数 ZBX_STARTPREPROCESSORS=3 # 4.2.0+ 支持(预处理进程数) ZBX_STARTPINGERS=1 # ICMP 检查进程数 ZBX_JAVAGATEWAY=zabbix-java-gateway # Java Gateway 地址 ZBX_JAVAGATEWAYPORT=*** # Java Gateway 端口 ZBX_STARTJAVAPOLLERS=0 # Java 检查进程数 ZBX_CACHESIZE=8M # 缓存大小 ZBX_HISTORYCACHESIZE=16M # 历史数据缓存大小
完整参数说明可参考*** zabbix_proxy.conf 文档。
/usr/lib/zabbix/externalscriptsExternalScripts 参数/var/lib/zabbix/modulesZBX_LOADMODULE 启用),用于扩展 Zabbix 代理功能/var/lib/zabbix/encZBX_TLSCAFILE、ZBX_TLSKEYFILE 等变量指定文件名;也可直接通过 ZBX_TLSCA、ZBX_TLSKEY 等变量传入明文内容/var/lib/zabbix/ssh_keysSSHKeyLocation 参数/var/lib/zabbix/ssl/certs、/var/lib/zabbix/ssl/keys、/var/lib/zabbix/ssl/ssl_caSSLCertLocation、SSLKeyLocation、SSLCALocation 参数/var/lib/zabbix/snmptrapssnmptraps.log 文件,可与 zabbix-snmptraps 容器共享(通过 volumes_from 继承),配合 ZBX_ENABLE_SNMP_TRAPS=true 启用 SNMP 陷阱处理/var/lib/zabbix/mibszabbix-proxy-mysql 提供多种镜像变体,适用于不同场景:
zabbix-proxy-mysql:alpine-<version>zabbix-proxy-mysql:ubuntu-<version>zabbix-proxy-mysql:ol-<version>***支持 Docker 1.12.0 及以上版本,1.6~1.11 版本提供有限支持(尽力而为)。升级 Docker 引擎可参考 Docker 安装文档。
镜像文档存放于 zabbix/zabbix-docker GitHub 仓库 的 proxy-mysql/ 目录,提交 PR 前建议先阅读仓库 README.md。
若使用中遇到问题或有疑问,可通过 GitHub Issue 联系我们。
欢迎提交新功能、修复或更新(无论大小),我们会尽快处理 PR。代码贡献前建议通过 GitHub Issue 讨论计划,确保方向一致。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429