
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://github.com/monitoringartist/dockbix-xxl 是一个Docker化的Zabbix,预配置用于便捷的Docker监控。此Docker镜像包含标准Zabbix以及额外的XXL社区扩展。包含常规任务:Zabbix数据库自动导入、Docker监控模板自动导入、https://github.com/monitoringartist/dockbix-agent-xxl%E7%9A%84%E8%87%AA%E5%8A%A8%E6%B3%A8%E5%86%8C%E8%A7%84%E5%88%99%E7%AD%89%E3%80%82
如果您喜欢或使用此项目,请向作者提供反馈 - 为其点赞 ★ 或为上游项目点赞 ★。
免费测试Dockbix,仅需免费的Docker ID,即可免费启动完整的容器化Dockbix XXL,持续4小时。您也可以测试最新开发版本(从trunk svn分支编译):
!https://raw.githubusercontent.com/monitoringartist/dockbix-xxl/master/doc/dockbix-docker-playground.gif
Monitoring Artist(容器化)监控生态系统概述:
编译的Zabbix(服务器、代理、代理、Java网关、snmpd守护进程)几乎包含所有功能(MySQL支持、Java、SNMP、Curl、Ipmi、SSH、fping),以及基于CentOS 7、Supervisor、Nginx、PHP 7的Zabbix Web UI。镜像需要外部MySQL/MariaDB数据库(您可以将MySQL/MariaDB作为Docker容器运行)。集成的XXL扩展:Searcher、Grapher、Zapix、模板自动导入、API命令/脚本执行(部分扩展必须显式启用 - 参见环境变量部分)。
!https://raw.githubusercontent.com/monitoringartist/dockbix-xxl/master/doc/dockbix-xxl-zabbix-searcher.png !https://raw.githubusercontent.com/monitoringartist/dockbix-xxl/master/doc/dockbix-xxl-zapix.png !https://raw.githubusercontent.com/monitoringartist/dockbix-xxl/master/doc/dockbix-xxl-grapher.png
sh# 创建在/var/lib/mysql文件夹中具有持久存储的数据容器 docker run -d -v /var/lib/mysql --name dockbix-db-storage busybox:latest # 启动Dockbix的数据库 - 使用默认的1GB innodb_buffer_pool_size docker run \ -d \ --name dockbix-db \ -v /backups:/backups \ -v /etc/localtime:/etc/localtime:ro \ --volumes-from dockbix-db-storage \ --env="MARIADB_USER=zabbix" \ --env="MARIADB_PASS=my_password" \ monitoringartist/zabbix-db-mariadb # 启动链接到已启动数据库的Dockbix docker run \ -d \ --name dockbix \ -p 80:80 \ -p 10051:10051 \ -v /etc/localtime:/etc/localtime:ro \ --link dockbix-db:dockbix.db \ --env="ZS_DBHost=dockbix.db" \ --env="ZS_DBUser=zabbix" \ --env="ZS_DBPassword=my_password" \ --env="XXL_zapix=true" \ --env="XXL_grapher=true" \ monitoringartist/dockbix-xxl:latest # 等待约30秒进行Zabbix初始化 # Zabbix Web将在80端口可用,Zabbix服务器在10051端口可用 # 默认凭据:Admin/zabbix
sh## Zabbix数据库备份 - 仅配置数据,无项目历史/趋势 docker exec \ -ti dockbix-db \ /zabbix-backup/zabbix-mariadb-dump -u zabbix -p my_password -o /backups ## Zabbix数据库完整压缩备份 docker exec \ -ti dockbix-db \ bash -c "\ mysqldump -u zabbix -pmy_password zabbix | \ bzip2 -cq9 > /backups/zabbix_db_dump_$(date +%Y-%m-%d-%H.%M.%S).sql.bz2" ## 数据库数据恢复 # 删除Dockbix容器 docker rm -f dockbix # 从备份恢复数据库数据(当前所有数据将被删除!!!) docker exec -i dockbix-db sh -c 'bunzip2 -dc /backups/zabbix_db_dump_2017-28-09-02.57.46.sql.bz2 | mysql -uzabbix -p --password=my_password zabbix' # 再次运行Dockbix容器 docker run ... ### 启动带有Java网关和Java轮询器的Dockbix docker run \ -d \ --name dockbix \ -p 80:80 \ -p 10051:10051 \ -v /etc/localtime:/etc/localtime:ro \ --link dockbix-db:dockbix.db \ --env="ZS_DBHost=dockbix.db" \ --env="ZS_DBUser=zabbix" \ --env="ZS_DBPassword=my_password" \ --env="XXL_zapix=true" \ --env="XXL_grapher=true" \ --env="ZJ_enabled=true" \ --env="ZS_StartJavaPollers=3" \ monitoringartist/dockbix-xxl:latest ## HTTPS;更复杂的设置覆盖/etc/nginx/hosts.d/ssl-nginx.conf docker run \ -d \ --name dockbix \ -p 443:443 \ -p 10051:10051 \ -v /etc/localtime:/etc/localtime:ro \ -v /<SSL证书路径>/<证书文件>:/etc/nginx/ssl/dummy.crt:ro \ -v /<SSL密钥路径>/<密钥文件>:/etc/nginx/ssl/dummy.key:ro \ --link dockbix-db:dockbix.db \ --env="ZS_DBHost=dockbix.db" \ --env="ZS_DBUser=zabbix" \ --env="ZS_DBPassword=my_password" \ --env="XXL_zapix=true" \ --env="XXL_grapher=true" \ monitoringartist/dockbix-xxl:latest
使用Docker Compose启动
docker-compose up -d
要能够连接到数据库,我们首先需要运行一个数据库。最简单的方法是使用另一个Docker镜像。为此,您可以使用https://registry.hub.docker.com/u/monitoringartist/zabbix-db-mariadb%E9%95%9C%E5%83%8F%E4%BD%9C%E4%B8%BA%E6%95%B0%E6%8D%AE%E5%BA%93%E3%80%82
有关monitoringartist/zabbix-db-mariadb的更多信息,请参见https://github.com/monitoringartist/dockbix-xxl/tree/master/Dockerfile/zabbix-db-mariadb%E3%80%82
示例:
docker run \ -d \ --name dockbix-db \ -p 3306:3306 \ -v /etc/localtime:/etc/localtime:ro \ --env="MARIADB_USER=zabbix" \ --env="MARIADB_PASS=my_password" \ monitoringartist/zabbix-db-mariadb
部署Dockbix镜像时请使用相同的数据库凭据。
与XXL特性相关的可用变量:
| 变量 | 默认值 | 描述 |
|---|---|---|
| XXL_searcher | true | 启用/禁用集成的https://github.com/monitoringartist/zabbix-searcher |
| XXL_zapix | false | 启用/禁用集成的https://github.com/monitoringartist/zapix |
| XXL_grapher | false | 启用/禁用集成的https://github.com/sepich/zabbixGrapher |
| XXL_api | true | 启用/禁用自动导入位于/etc/zabbix/api/<自定义文件夹>中的模板(.xml)、API curl命令(.curl)或API脚本(.sh) |
| XXL_apiuser | Admin | 用于API命令的用户名 |
| XXL_apipass | zabbix | 用于API命令的密码 |
| XXL_analytics | true | 启用/禁用通过Google Analytics收集统计信息 |
| XXL_updatechecker | true | 启用/禁用检查最新Docker镜像 - 检查每天在用户浏览器中执行一次 |
使用环境变量配置Zabbix服务器和Zabbix Web UI(PHP)。您可以添加任何Zabbix配置变量,只需添加正确的变量前缀(ZS_用于Zabbix Server,ZP_用于Zabbix Proxy)并设置变量值。对多个配置参数使用数字后缀(_<NUM>)。示例:您需要增加CacheSize并为Zabbix服务器加载两个模块:
ZS_CacheSize=50M ZS_LoadModule_1=module1.so ZS_LoadModule_2=module2.so
如果您未指定环境变量配置且变量未在默认容器变量中列出,则使用默认Zabbix配置值。默认容器变量:
| 变量 | 容器中的默认值 |
|---|---|
| PHP_date_timezone | UTC |
| PHP_max_execution_time | 300 |
| PHP_max_input_time | 300 |
| PHP_memory_limit | 128M |
| PHP_error_reporting | E_ALL |
| ZS_LogType | console |
| ZS_PidFile | /var/run/zabbix_server.pid |
| ZS_User | zabbix |
| ZS_DBHost | zabbix.db |
| ZS_DBName | zabbix |
| ZS_DBUser | zabbix |
| ZS_DBPassword | zabbix |
| ZS_DBPort | 3306 |
| ZS_PidFile | /tmp/zabbix_server.pid |
| ZS_AlertScriptsPath | /usr/local/share/zabbix/alertscripts |
| ZS_ExternalScripts | /usr/local/share/zabbix/externalscripts |
| ZS_SSLCertLocation | /usr/local/share/zabbix/ssl/certs |
| ZS_SSLKeyLocation | /usr/local/share/zabbix/ssl/keys |
| ZS_LoadModulePath | /usr/lib/zabbix/modules |
| ZS_JavaGateway | 127.0.0.1 |
| ZS_JavaGatewayPort | *** |
| ZW_ZBX_SERVER | localhost |
| ZW_ZBX_SERVER_PORT | *** |
| ZW_ZBX_SERVER_NAME | Zabbix Server |
| ZJ_LISTEN_IP | 0.0.0.0 |
| ZJ_LISTEN_PORT | *** |
| ZJ_PID_FILE | /tmp/zabbix_java.pid |
| ZJ_START_POLLERS | 5 |
| ZJ_TIMEOUT | 3 |
| ZJ_LogLevel | error |
| ZJ_TCP_TIMEOUT | 3000 |
| ZP_LogType | console |
| ZP_DBHost | zabbixproxy.db |
| ZP_DBName | zabbix |
| ZP_DBUser | zabbix |
| ZP_DBPassword | zabbix |
| ZP_DBPort | 3306 |
| ZP_User | zabbix |
注意:日本用户可能需要设置环境变量ZBX_GRAPH_FONT_NAME=ipagp以支持图形中的日文字体。
也可以使用Zabbix配置文件。在这种情况下,环境配置将被配置文件中的值覆盖。您只需添加/etc/custom-config/卷:
-v /host/custom-config/:/etc/custom-config/
可用的配置文件名:
| 文件名 | 描述 |
|---|---|
| php-zabbix.ini | PHP配置文件 |
| zabbix_server.conf | Zabbix服务器配置文件 |
| zabbix_proxy.conf | Zabbix代理配置文件 |
| logback.xml | Zabbix Java网关日志配置文件 |
Zabbix角色环境变量:
| 变量 | 容器中的默认值 | 描述 |
|---|---|---|
| ZS_enabled | true | 启用Zabbix服务器 |
| ZA_enabled | true | 启用Zabbix代理 |
| ZW_enabled | true | 启用Zabbix Web UI(Nginx/PHP 7) |
| ZP_enabled | false | 启用Zabbix代理 |
| ZJ_enabled | false | 启用Zabbix Java网关 |
| SNMPTRAP_enabled | false | 启用SNMP陷阱进程(端口162) |
默认情况下,除SNMP陷阱处理外,所有Zabbix服务器组件均已启用。但是,有些用户希望每个容器运行专用的Zabbix组件。典型用例是Zabbix Web UI。借助角色环境变量,用户能够执行多个Web UI容器,这有助于将Zabbix扩展为服务。
如果环境变量XXL_api为true(默认值),则引导脚本将尝试在/etc/zabbix/api中递归查找任何.xml、.api、.sh文件。例如,挂载包含XML模板的文件夹,脚本将尝试导入所有模板:
sh-v /myhosttemplatefolder/:/etc/zabbix/api/mytemplates
XML文件:所有*.xml文件被处理为Zabbix XML模板,脚本尝试使用Zabbix API导入它们。默认额外导入的模板是https://github.com/monitoringartist/zabbix-docker-monitoring/tree/master/template%E3%80%82
Api文件:所有*.api文件被
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务