
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
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务