
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文件被
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务