
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Zabbix 2.4 Docker镜像是Zabbix社区提供的Docker化部署方案,基于CentOS 7构建,集成了Supervisor、Nginx和PHP环境,包含Zabbix Server、Web UI及几乎所有核心功能(MySQL支持、Java、SNMP、Curl、IPMI、IPv6、Jabber、fping等)。【重要提示】Zabbix 2.4已不再受支持,官方建议使用3.0版本(详见Zabbix生命周期政策)。
该镜像需配合外部MySQL/MariaDB数据库使用(可通过Docker容器部署)。
适用于需要快速部署Zabbix 2.4监控系统的环境(尽管已不推荐,仅作历史版本参考),支持单机部署或基于Docker Compose的编排部署。
1. 创建数据持久化卷
bash# 创建/var/lib/mysql作为MySQL数据持久化存储 docker run -d -v /var/lib/mysql --name zabbix-db-storage busybox:latest
2. 启动数据库容器
bash# 启动MariaDB容器,默认使用1GB innodb_buffer_pool_size docker run \ -d \ --name zabbix-db \ -v /backups:/backups \ -v /etc/localtime:/etc/localtime:ro \ --volumes-from zabbix-db-storage \ --env="MARIADB_USER=zabbix" \ --env="MARIADB_PASS=my_password" \ zabbix/zabbix-db-mariadb
3. 启动Zabbix容器
bash# 启动Zabbix容器并链接到数据库 docker run \ -d \ --name zabbix \ -p 80:80 \ -p 10051:10051 \ -v /etc/localtime:/etc/localtime:ro \ --link zabbix-db:zabbix.db \ --env="ZS_DBHost=zabbix.db" \ --env="ZS_DBUser=zabbix" \ --env="ZS_DBPassword=my_password" \ zabbix/zabbix-2.4 # 等待约60秒初始化完成 # Zabbix Web UI将在80端口可用,Zabbix Server在10051端口监听
4. 数据备份
仅备份Zabbix配置数据:
bashdocker exec \ -ti zabbix-db \ /zabbix-backup/zabbix-mariadb-dump -u zabbix -p my_password -o /backups
完整数据库备份:
bashdocker exec \ -ti zabbix-db \ bash -c "\ mysqldump -u zabbix -pmy_password zabbix | \ bzip2 -cq9 > /backups/zabbix_db_dump_$(date +%Y-%m-%d-%H.%M.%S).sql.bz2"
直接使用Docker Compose启动:
bashdocker-compose up -d
需先启动数据库容器以提供Zabbix所需的数据库服务,推荐使用zabbix/zabbix-db-mariadb镜像。
数据库容器启动示例:
bashdocker run \ -d \ --name zabbix-db \ -p 3306:3306 \ -v /etc/localtime:/etc/localtime:ro \ --env="MARIADB_USER=zabbix" \ --env="MARIADB_PASS=my_password" \ zabbix/zabbix-db-mariadb
启动Zabbix容器时需使用与数据库容器相同的认证凭据。
可通过环境变量配置Zabbix Server和Web UI(PHP)参数,常用变量如下(完整列表见下方表格):
| 变量 | 默认值 | 描述 |
|---|---|---|
| PHP_date_timezone | UTC | PHP时区 |
| ZS_DBHost | zabbix.db | 数据库主机 |
| ZS_DBUser | zabbix | 数据库用户名 |
| ZS_DBPassword | zabbix | 数据库密码 |
| ZS_ListenPort | *** | Zabbix Server监听端口 |
| ZW_ZBX_SERVER | localhost | Web UI连接的Zabbix Server地址 |
完整环境变量列表:
| 变量 | 默认值 |
|---|---|
| PHP_date_timezone | UTC |
| PHP_max_execution_time | 300 |
| PHP_max_input_time | 300 |
| PHP_memory_limit | 128M |
| PHP_error_reporting | E_ALL |
| ZS_ListenPort | *** |
| ZS_SourceIP | |
| ZS_LogFile | /tmp/zabbix_server.log |
| ZS_LogFileSize | 10 |
| ZS_DebugLevel | 3 |
| ZS_PidFile | /var/run/zabbix_server.pid |
| ZS_DBHost | zabbix.db |
| ZS_DBName | zabbix |
| ZS_DBSchema | |
| ZS_DBUser | zabbix |
| ZS_DBPassword | zabbix |
| ZS_DBSocket | /tmp/mysql.sock |
| ZS_DBPort | 3306 |
| ZS_StartPollers | 5 |
| ZS_StartPollersUnreachable | 1 |
| ZS_StartTrappers | 5 |
| ZS_StartPingers | 1 |
| ZS_StartDiscoverers | 1 |
| ZS_StartHTTPPollers | 1 |
| ZS_StartTimers | 1 |
| ZS_JavaGateway | 127.0.0.1 |
| ZS_JavaGatewayPort | *** |
| ZS_StartJavaPollers | 0 |
| ZS_StartVMwareCollectors | 0 |
| ZS_VMwareFrequency | 60 |
| ZS_VMwarePerfFrequency | 60 |
| ZS_VMwareCacheSize | 8M |
| ZS_VMwareTimeout | 10 |
| ZS_SNMPTrapperFile | /tmp/zabbix_traps.tmp |
| ZS_StartSNMPTrapper | 0 |
| ZS_ListenIP | 0.0.0.0 |
| ZS_HousekeepingFrequency | 1 |
| ZS_MaxHousekeeperDelete | 500 |
| ZS_SenderFrequency | 30 |
| ZS_CacheSize | 8M |
| ZS_CacheUpdateFrequency | 60 |
| ZS_StartDBSyncers | 4 |
| ZS_HistoryCacheSize | 8M |
| ZS_TrendCacheSize | 4M |
| ZS_HistoryTextCacheSize | 16M |
| ZS_ValueCacheSize | 8M |
| ZS_Timeout | 3 |
| ZS_TrapperTimeout | 300 |
| ZS_UnreachablePeriod | 45 |
| ZS_UnavailableDelay | 60 |
| ZS_UnreachableDelay | 15 |
| ZS_AlertScriptsPath | /usr/local/share/zabbix/alertscripts |
| ZS_ExternalScripts | /usr/local/share/zabbix/externalscripts |
| ZS_FpingLocation | /usr/sbin/fping |
| ZS_Fping6Location | /usr/sbin/fping6 |
| ZS_SSHKeyLocation | |
| ZS_LogSlowQueries | 0 |
| ZS_TmpDir | /tmp |
| ZS_StartProxyPollers | 1 |
| ZS_ProxyConfigFrequency | 3600 |
| ZS_ProxyDataFrequency | 1 |
| ZS_AllowRoot | 0 |
| ZS_User | zabbix |
| ZS_Include | |
| ZS_SSLCertLocation | /usr/local/share/zabbix/ssl/certs |
| ZS_SSLKeyLocation | /usr/local/share/zabbix/ssl/keys |
| ZS_SSLCALocation | |
| ZS_LoadModulePath | /usr/lib/zabbix/modules |
| ZS_LoadModule | |
| ZW_ZBX_SERVER | localhost |
| ZW_ZBX_SERVER_PORT | *** |
| ZW_ZBX_SERVER_NAME | Zabbix Server |
可通过挂载卷的方式使用自定义配置文件(会覆盖环境变量配置),需挂载/etc/custom-config/目录:
bash-v /host/custom-config/:/etc/custom-config/
支持的配置文件:
| 文件 | 描述 |
|---|---|
| php-zabbix.ini | PHP配置文件 |
| zabbix_server.conf | Zabbix Server配置文件 |
通过以下变量控制Zabbix组件的启用状态:
| 变量 | 默认值 | 描述 |
|---|---|---|
| ZS_enabled | true | Zabbix Server启用状态(启用时会执行数据库操作) |
| ZA_enabled | true | Zabbix Agent启用状态(启用时会执行数据库操作) |
| ZW_enabled | true | Zabbix Web UI启用状态(启用时会执行数据库操作) |
| SNMPTRAP_enabled | false | SNMP陷阱处理进程(162端口)启用状态 |
默认启用所有Zabbix组件(除SNMP陷阱),可通过设置这些变量实现组件分离部署(如仅部署Web UI容器以实现扩展)。
初始化完成后,通过http://docker_host_ip访问Zabbix Web UI,初始登录凭据:
Adminzabbixbashdocker ps
bashdocker logs zabbix
bashdocker exec -ti zabbix /bin/bash
bashdocker history --no-trunc=true zabbix/zabbix-2.4 | tr -s ' ' | tail -n+2 | awk -F " ago " '{print $2}'
指定标签即可运行特定Zabbix 2.4版本(如2.4.4):
bashdocker run \ -d \ --name zabbix \ -p 80:80 \ -p ***:*** \ -v /etc/localtime:/etc/localtime:ro \ --link zabbix-db:zabbix.db \ --env="ZS_DBHost=zabbix.db" \ --env="ZS_DBUser=zabbix" \ --env="ZS_DBPassword=my_password" \ zabbix/zabbix-2.4:2.4.4
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务