zabbix/zabbix-web-apache-mysql!logo
Zabbix是企业级开源分布式监控解决方案,可监控网络参数、服务器健康状态及完整性。其具备灵活的通知机制,支持基于事件配置邮件告警,便于快速响应服务器问题;同时提供强大的报表和数据可视化功能,适用于容量规划。
Zabbix Web界面是Zabbix软件的核心组件,用于管理被监控资源和查看监控统计数据,是用户与Zabbix系统交互的主要入口。
本镜像为官方Zabbix Web界面Docker镜像,基于Apache2 Web服务器,支持MySQL数据库,提供便捷的Web界面部署方式,适用于构建Zabbix监控系统的前端服务。
提供多版本标签,涵盖稳定版和开发版:
alpine-6.0-latest、ubuntu-6.0-latest、ol-6.0-latest等alpine-7.0-latest、ubuntu-7.0-latest等alpine-7.2-latest等alpine-7.4-latest、latest(默认基于Alpine)等alpine-trunk等ZBX_HISTORYSTORAGEURL等参数)通过docker run启动Zabbix Web界面容器:
bashdocker run --name zabbix-web -d \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix" \ -e ZBX_SERVER_HOST="zabbix-server" \ -e PHP_TZ="Asia/Shanghai" \ -p 8080:80 \ zabbix/zabbix-web-apache-mysql:latest
参数说明:
--name zabbix-web:容器名称-e:环境变量(详见下文)-p 8080:80:映射容器80端口到主机8080端口zabbix/zabbix-web-apache-mysql:latest:镜像名称及标签bashdocker run --name zabbix-web -d \ --link mysql:mysql \ # 链接MySQL容器(别名mysql) -e DB_SERVER_HOST="mysql" \ # 使用链接别名访问MySQL -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix" \ -e ZBX_SERVER_HOST="zabbix-server" \ -e PHP_TZ="Asia/Shanghai" \ zabbix/zabbix-web-apache-mysql:latest
bashdocker run --name zabbix-web -d \ --link zabbix-server:zabbix-server \ # 链接Zabbix Server容器 -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix" \ -e ZBX_SERVER_HOST="zabbix-server" \ # 使用链接别名访问Server -e PHP_TZ="Asia/Shanghai" \ zabbix/zabbix-web-apache-mysql:latest
bashdocker logs zabbix-web
bashdocker exec -ti zabbix-web /bin/bash
| 变量名 | 说明 | 默认值 |
|---|---|---|
DB_SERVER_HOST | MySQL服务器IP或域名 | mysql-server |
DB_SERVER_PORT | MySQL端口 | 3306 |
MYSQL_USER | 数据库用户名(与MYSQL_USER_FILE二选一) | zabbix |
MYSQL_USER_FILE | 存储用户名的文件路径(适用于Docker Secrets) | - |
MYSQL_PASSWORD | 数据库密码(与MYSQL_PASSWORD_FILE二选一) | zabbix |
MYSQL_PASSWORD_FILE | 存储密码的文件路径(适用于Docker Secrets) | - |
MYSQL_DATABASE | Zabbix数据库名称 | zabbix |
示例(Docker Secrets):
bash# 创建Secrets(Docker Swarm/K8s) printf "zabbix" | docker secret create MYSQL_USER - printf "secure-pass" | docker secret create MYSQL_PASSWORD - # 启动容器 docker run --name zabbix-web -d \ --secret MYSQL_USER \ --secret MYSQL_PASSWORD \ -e DB_SERVER_HOST="mysql" \ -e MYSQL_USER_FILE="/run/secrets/MYSQL_USER" \ -e MYSQL_PASSWORD_FILE="/run/secrets/MYSQL_PASSWORD" \ zabbix/zabbix-web-apache-mysql:latest
| 变量名 | 说明 | 默认值 |
|---|---|---|
ZBX_SERVER_HOST | Zabbix Server/Proxy的IP或域名 | zabbix-server |
ZBX_SERVER_PORT | Zabbix Server端口 | *** |
| 变量名 | 说明 | 默认值 |
|---|---|---|
PHP_TZ | PHP时区(如Asia/Shanghai) | Europe/Riga |
ZBX_MEMORYLIMIT | PHP内存限制 | 128M |
ZBX_MAXEXECUTIONTIME | PHP最大执行时间(秒) | 300 |
ZBX_POSTMAXSIZE | POST数据最大尺寸 | 16M |
ZBX_UPLOADMAXFILESIZE | 文件上传最大尺寸 | 2M |
| 变量名 | 说明 | 默认值 |
|---|---|---|
ZBX_DB_ENCRYPTION | 启用数据库TLS加密连接(true/false) | false |
ZBX_DB_CA_FILE | 数据库CA证书路径 | - |
ZBX_DB_KEY_FILE | 客户端TLS密钥路径 | - |
ZBX_DB_CERT_FILE | 客户端TLS证书路径 | - |
ZBX_SSO_SP_KEY | SAML Service Provider私钥路径 | - |
ZBX_SSO_SP_CERT | SAML SP证书路径 | - |
ZBX_SSO_IDP_CERT | SAML Identity Provider证书路径 | - |
ZBX_SSO_SETTINGS | SSO配置(JSON格式,如{"baseurl":"[***]"}) | - |
| 变量名 | 说明 | 默认值 |
|---|---|---|
ZBX_SERVER_NAME | Web界面顶部显示的Zabbix实例名称 | - |
ZBX_HISTORYSTORAGEURL | Elasticsearch历史存储URL(如[***]) | - |
ZBX_HISTORYSTORAGETYPES | 发送到ES的指标类型(如['uint','dbl']) | - |
ENABLE_WEB_ACCESS_LOG | 启用Apache访问日志(true/false) | true |
/etc/ssl/apache2)用于部署HTTPS,需挂载包含ssl.crt(证书)和ssl.key(私钥)的目录:
bashdocker run --name zabbix-web -d \ -v /path/to/ssl:/etc/ssl/apache2 \ # 包含ssl.crt和ssl.key -p 443:443 \ zabbix/zabbix-web-apache-mysql:latest
/etc/zabbix/web/certs)用于SAML SSO,需挂载包含sp.key(SP私钥)、sp.crt(SP证书)、idp.crt(IDP证书)的目录。
/var/lib/zabbix/enc)用于Zabbix Server TLS连接(7.4+版本),存放ZBX_SERVER_TLS_CAFILE/KEYFILE/CERTFILE指定的文件。
alpine-<version>ubuntu-<version>ol-<version>以下为Zabbix完整架构的docker-compose示例(包含MySQL、Zabbix Server、Web界面):
yamlversion: '3.8' services: mysql: image: mysql:8.0 container_name: zabbix-mysql environment: MYSQL_ROOT_PASSWORD: "root-pass" MYSQL_DATABASE: "zabbix" MYSQL_USER: "zabbix" MYSQL_PASSWORD: "zabbix-pass" volumes: - mysql-data:/var/lib/mysql restart: always networks: - zabbix-net zabbix-server: image: zabbix/zabbix-server-mysql:latest container_name: zabbix-server environment: DB_SERVER_HOST: "mysql" MYSQL_DATABASE: "zabbix" MYSQL_USER: "zabbix" MYSQL_PASSWORD: "zabbix-pass" ZBX_LISTENPORT: "***" depends_on: - mysql restart: always networks: - zabbix-net zabbix-web: image: zabbix/zabbix-web-apache-mysql:latest container_name: zabbix-web environment: DB_SERVER_HOST: "mysql" MYSQL_USER: "zabbix" MYSQL_PASSWORD: "zabbix-pass" ZBX_SERVER_HOST: "zabbix-server" PHP_TZ: "Asia/Shanghai" ZBX_SERVER_NAME: "My Zabbix Monitor" ports: - "8080:80" depends_on: - mysql - zabbix-server restart: always networks: - zabbix-net networks: zabbix-net: driver: bridge volumes: mysql-data:
启动命令:
bashdocker-compose up -d
访问Web界面:http://localhost:8080(默认账号:Admin,密码:zabbix)
官方支持Docker 1.12.0及以上,旧版本(1.6+)尽力支持。
注:实际部署时需根据环境调整参数(如密码、时区、端口映射等),并遵循安全最佳实践(如使用Secrets管理敏感信息)。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务