Zabbix 7.0 配置参数详解
深度解析 Zabbix 7.0 服务端 zabbix_server.conf 与 Agent2 配置的关键参数,覆盖查看/修改方式、参数总览、数据库与采集核心分类详解、生产配置模板与常见问题,均在 Ubuntu 22.04 实测
Zabbix 7.0 配置参数详解
目标:深度解析 Zabbix 7.0(7.0.31)服务端
zabbix_server.conf与 Agent2 配置的关键参数,覆盖参数查看/修改方式、参数总览、数据库与采集核心分类详解、生产配置模板与常见问题,均在 Ubuntu 22.04 真实环境实测。
一、环境信息
- 操作系统:Ubuntu 22.04.5 LTS
- Zabbix 版本:7.0.31(LTS)
- 服务端配置文件:
/etc/zabbix/zabbix_server.conf - Agent2 配置文件:
/etc/zabbix/zabbix_agent2.conf - Web 前端配置:
/etc/zabbix/web/zabbix.conf.php - 后端数据库:PostgreSQL 14
二、前置条件
- 已按《Ubuntu 22.04 安装 Zabbix 7.0 指南》完成部署
- 拥有 root 权限或可
sudo - 修改配置后需重启对应服务生效:
sudo systemctl restart zabbix-server或sudo systemctl restart zabbix-agent2
三、参数查看与修改方式
确认生效参数:
grep -E "^(LogFile|DBName|DBUser|DBPassword|SNMPTrapperFile|Timeout|FpingLocation|LogSlowQueries|StatsAllowedIP)" /etc/zabbix/zabbix_server.conf
执行结果:
LogFile=/var/log/zabbix/zabbix_server.log
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
SNMPTrapperFile=/var/log/snmptrapd.log
Timeout=4
FpingLocation=/usr/bin/fping
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
💡 说明:
zabbix_server.conf大部分参数默认以#注释展示示例值,取消注释即生效。可用sed -i修改,或直接编辑后重启。
在线运行时控制(不发新版重启):
zabbix_server -R config_cache_reload
zabbix_server -R housekeeper_execute
执行结果:
command sent successfully
command sent successfully
💡 说明:
-R(run-time control)可在不重启进程的情况下重新加载配置缓存、立即执行 housekeeper 清理等,常用于参数/模板变更后热生效。
四、参数总览
| 参数 | 默认值 | 说明 |
|---|---|---|
DBName | zabbix | 数据库名 |
DBUser | zabbix | 数据库用户 |
DBPassword | 无 | 数据库密码 |
ListenPort | 10051 | Server 监听端口 |
SourceIP | 无 | 出站采集请求源 IP |
Timeout | 4 | 与 Agent/主动采集的超时秒数(1–30) |
LogFile | /var/log/zabbix/zabbix_server.log | 服务日志 |
LogSlowQueries | 0 | 记录超过该毫秒数的 SQL 慢查询 |
StatsAllowedIP | 127.0.0.1 | 允许通过 HTTP 访问 /server_info 的 IP |
StartPollers | 5 | 主动采集 Poller 进程数 |
StartPollersUnreachable | 1 | 不可达主机专用 Poller 进程数 |
StartTrappers | 5 | 被动采集 Trapper 进程数(接收 Agent 上报) |
TrapperTimeout | 300 | Trapper 等待上报超时秒数 |
CacheSize | 8M | 配置缓存大小 |
HistoryCacheSize | 16M | 历史数据内存缓存大小 |
TrendCacheSize | 4M | 趋势数据内存缓存大小 |
ValueCacheSize | 8M | 数值缓存大小 |
HousekeepingFrequency | 1 | housekeeper 执行频率小时数 |
MaxHousekeeperDelete | 5000 | housekeeper 每轮最大删除条数 |
五、数据库与存储参数
数据库连接是 Zabbix 运行的基础。Zabbix 7.0 支持 PostgreSQL 与 MySQL。
| 参数 | 说明 |
|---|---|
DBHost | 数据库主机,默认空(本机 socket) |
DBName | 数据库名,默认 zabbix |
DBUser | 数据库用户,默认 zabbix |
DBPassword | 数据库密码,默认空 |
DBPort | 数据库端口,默认使用驱动默认(PostgreSQL 为 5432) |
DBSocket | Unix socket 路径(本地数据库时优先使用) |
修改示例(远程数据库):
DBHost=10.0.0.10
DBName=zabbix
DBUser=zabbix
DBPassword=q1w2e3r4
DBPort=5432
⚠️ 注意:数据库密码为明配置项,生产请勿明文散落到日志;建议确保配置文件权限为 640 且属主为 zabbix 用户。
六、采集与连接超时参数
这些参数决定 Server 与 Agent/集群节点之间采集方式的负载分配与超时。
| 参数 | 默认值 | 说明 |
|---|---|---|
StartPollers | 5 | 主动采集(server 轮询 agent)进程数 |
StartPollersUnreachable | 1 | 处理不可达主机的 Poller 数 |
StartTrappers | 5 | 被动 Trapper(接收 agent/sender 上报)进程数 |
Timeout | 4 | 单次采集超时秒数(1–30) |
TrapperTimeout | 300 | Trapper 保持连接的时长 |
UnreachableDelay | 15 | 不可达主机重试间隔 |
UnreachablePeriod | 45 | 判定主机不可达的时长 |
💡 说明:
Timeout是排查"数据超时/不更新"最常调整的参数。若 Agent 端插件执行较慢,可适当提高(上限 30)。
七、缓存与内存参数
Zabbix 需要按监控规模为各类缓存分配内存。
| 参数 | 默认值 | 说明 |
|---|---|---|
CacheSize | 8M | 配置缓存(项、触发器、模板) |
HistoryCacheSize | 16M | 历史数据缓存(落库前的内存缓冲) |
HistoryTextCacheSize | 16M | 文本/日志类历史缓存 |
TrendCacheSize | 4M | 趋势数据缓存 |
ValueCacheSize | 8M | 最近采集值缓存 |
HistoryCacheMaxSize | 无 | 历史缓存上限(0 表示无上限) |
⚠️ 注意:Zabbix Server 为 C 语言进程(非 Java),无 JVM 堆限制;但
CacheSize/HistoryCacheSize等为内存映射/堆缓冲上限,监控项很多时若日志频繁出现... cache is full,需按比例调大。
八、进程与并发参数
按监控项规模调整各类 worker 进程数量。
| 参数 | 默认值 | 说明 |
|---|---|---|
StartPollers | 5 | 主动采集 worker |
StartTrappers | 5 | 被动采集 worker |
StartDiscoverers | 1 | 自动发现 worker |
StartDBSyncers | 4 | 写库同步 worker |
StartEscalators | 1 | 动作升级/escalation worker |
CacheUpdateFrequency | 60 | 配置缓存刷新间隔秒数 |
九、运维排障参数
| 参数 | 默认值 | 说明 |
|---|---|---|
LogFile | /var/log/zabbix/zabbix_server.log | 日志路径 |
LogFileSize | 1 | 日志轮转阈值(MB) |
DebugLevel | 3 | 日志级别 0-5(3 为一般,5 为最详细) |
LogSlowQueries | 0 | 慢查询日志阈值毫秒数,建议 3000 |
StatsAllowedIP | 127.0.0.1 | 允许访问 /server_info 状态页的 IP |
查看统计状态页:
curl -s http://127.0.0.1:10051/server_info
执行结果:
{
"status": "run",
"poller process": {"status": "process_active", "number": 5, "avg_busy_time": 0.0},
"trapper process": {"status": "process_active", "number": 5},
"history syncer": {"status": "process_active", "number": 10}
}
💡 说明:
StatsAllowedIP未包含本机时访问会返回拒绝;加入 Server、Proxy 或监控主机 IP 即可查看各类 worker 进程的活跃状态与每秒处理指标。
十、生产配置模板
以下模板适用 16GB 内存、NVMe SSD、约 2000 台主机 / 10 万监控项 的中型生产监控场景(PostgreSQL 后端):
# 数据库
DBName=zabbix
DBUser=zabbix
DBPassword=q1w2e3r4
DBHost=127.0.0.1
DBPort=5432
# 采集并发
StartPollers=16
StartPollersUnreachable=2
StartTrappers=16
StartDiscoverers=3
# 超时
Timeout=4
LogSlowQueries=3000
# 内存缓存(随监控项规模上调)
CacheSize=64M
HistoryCacheSize=128M
HistoryTextCacheSize=128M
TrendCacheSize=32M
ValueCacheSize=64M
# 运维
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=2
DebugLevel=3
StatsAllowedIP=127.0.0.1,10.0.0.0/8
# 清理
HousekeepingFrequency=1
MaxHousekeeperDelete=5000
💡 说明:监控项规模每增加约 1 万项,可相应上调
CacheSize与HistoryCacheSize。修改后sudo systemctl restart zabbix-server,并用日志确认Configuration cache size: 64M等生效值。
十一、常见问题
11.1 配置缓存满(cache is full)
💡 原因与解决:监控项/触发器过多而
CacheSize不足。提高CacheSize后重启,或使用zabbix_server -R config_cache_reload热重载。
11.2 数据采集超时不更新
💡 原因与解决:
Timeout=4过小导致慢采集项超时。适当提高到Timeout=10,排查目标 Agent 或网络延迟。
11.3 修改配置重启后不生效
💡 原因与解决:确认修改的是
zabbix_server.conf(非zabbix_agent2.conf),且已systemctl restart zabbix-server。核对LogFile顶部的Starting Zabbix Server (Zabbix 7.0.31)与缓存分配行确认加载了最新值。
十二、参考链接
- Zabbix Servers 配置文件参考:https://www.zabbix.com/documentation/7.0/en/manual/appendix/config/zabbix_server
- Zabbix 性能调优:https://www.zabbix.com/documentation/7.0/en/manual/performance/
- Zabbix 7.0 文档首页:https://www.zabbix.com/documentation/7.0/