外观
1. Zabbix 数据流向
1.1 系统数据流图
1.2 数据流说明
1.2.1 数据采集模式
NOTE
Zabbix 支持主动采集(Agent 主动推送)和被动采集(Server/Proxy 主动查询)两种模式。
1.2.1.1 主动模式 (Active Mode)
- Agent 定期主动向 Server 或 Proxy 发送监控数据
- 适用于高频监控场景,减少网络连接数
- 数据传输更高效,可靠性更高
1.2.1.2 被动模式 (Passive Mode)
- Server/Proxy 主动连接 Agent 查询数据
- 适用于低频监控或网络受限环境
- 配置简单,但增加服务器负载
1.2.2 代理架构优势
TIP
在大型分布式环境中使用 Proxy 可以显著提升系统性能和可靠性。
- 负载均衡:分散 Server 的数据处理压力
- 网络优化:减少跨网段数据传输延迟
- 离线缓存:网络中断时仍能收集本地数据
- 容灾备份:Proxy 故障不影响其他区域监控
2. Zabbix Server 配置详解
2.1 核心配置文件
Zabbix Server 的主配置文件位于 /etc/zabbix/zabbix_server.conf,以下是重要参数的详细说明:
ini
# 基本配置
PidFile=/run/zabbix/zabbix_server.pid # 进程ID文件路径
LogFile=/var/log/zabbix/zabbix_server.log # 日志文件路径
LogFileSize=0 # 日志文件大小限制,0表示不限制
SocketDir=/run/zabbix # Unix socket目录
# 数据库配置 (关键参数)
DBHost=localhost # 数据库主机地址
DBName=zabbix # 数据库名称
DBUser=zabbix # 数据库用户名
DBPassword=password123! # 数据库密码
DBPort=3306 # 数据库端口
# 性能调优参数
StartPollers=5 # 轮询器进程数,处理被动检查
StartPollersUnreachable=1 # 不可达主机轮询器进程数
StartTrappers=5 # 陷阱器进程数,处理主动Agent数据
StartPingers=1 # ICMP检查进程数
StartDiscoverers=1 # 网络发现进程数
StartHTTPPollers=1 # HTTP代理进程数
# 缓存配置
CacheSize=32M # 配置缓存大小
HistoryCacheSize=16M # 历史数据缓存大小
HistoryIndexCacheSize=4M # 历史索引缓存大小
TrendCacheSize=4M # 趋势缓存大小
# 超时和限制
Timeout=4 # 代理操作超时时间(秒)
UnreachablePeriod=45 # 主机不可达判断时间(秒)
UnreachableDelay=15 # 不可达主机检查间隔(秒)
# 告警和通知
AlertScriptsPath=/usr/lib/zabbix/alertscripts # 告警脚本路径
ExternalScripts=/usr/lib/zabbix/externalscripts # 外部脚本路径
# 高级配置
EnableGlobalScripts=0 # 是否启用全局脚本(安全考虑默认关闭)
StatsAllowedIP=127.0.0.1 # 允许获取内部统计信息的IP1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2.2 关键参数说明
2.2.1 数据库相关参数
IMPORTANT
数据库配置是 Server 正常工作的基础,确保连接参数正确且用户具有足够权限。
- DBHost: 指定数据库服务器地址,localhost 表示本机
- DBName: Zabbix 数据库名称,默认 zabbix
- DBUser/DBPassword: 数据库认证信息,必须有足够权限
- DBPort: 数据库服务端口,MySQL 默认 3306
2.2.2 性能调优参数
TIP
这些参数直接影响 Zabbix 的处理能力和并发性能,需要根据监控规模调整。
- StartPollers: 被动检查的并发进程数,建议 5-20,根据监控主机数量调整
- StartTrappers: 处理主动 Agent 数据的进程数,大型环境建议增加
- CacheSize: 配置缓存大小,影响模板和主机配置的加载速度
2.2.3 缓存配置
- HistoryCacheSize: 存储历史监控数据的内存缓存,建议 128M-512M
- TrendCacheSize: 趋势数据的内存缓存,用于长期统计分析
WARNING
缓存设置过小会导致性能下降,过大会消耗过多内存。建议在内存充足的情况下适当增加。
3. Zabbix Proxy 配置详解
3.1 核心配置文件
Zabbix Proxy 的配置文件位于 /etc/zabbix/zabbix_proxy.conf:
ini
# 基本配置
ProxyMode=0 # 0=主动模式, 1=被动模式
Hostname=Zabbix proxy # Proxy 在 Server 中的注册名称
ListenPort=10051 # Proxy 监听端口
LogFile=/var/log/zabbix/zabbix_proxy.log # 日志文件
LogFileSize=0 # 日志大小限制
PidFile=/run/zabbix/zabbix_proxy.pid # 进程ID文件
SocketDir=/run/zabbix # Socket目录
# Server 连接配置
Server=10.127.140.70 # Zabbix Server IP 地址
ServerPort=10051 # Server 端口
# 本地数据库配置
DBHost=localhost # 本地数据库地址
DBName=zabbix_proxy # Proxy 数据库名称
DBUser=zproxy # 数据库用户名
DBPassword=password123! # 数据库密码
# 性能参数
CacheSize=128M # 配置缓存大小
HistoryCacheSize=32M # 历史缓存大小
HistoryIndexCacheSize=8M # 历史索引缓存
StartPollers=10 # 轮询器进程数
StartTrappers=5 # 陷阱器进程数
# 数据传输配置
ProxyBufferMode=hybrid # 数据缓冲模式: disk/memory/hybrid
ProxyMemoryBufferSize=16M # 内存缓冲区大小
ProxyMemoryBufferTrigger=512 # 内存触发器大小(KB)
# 超时配置
Timeout=4 # 操作超时时间
HeartbeatFrequency=60 # 心跳频率(秒)
ConfigFrequency=3600 # 配置同步频率(秒)
# 数据保持时间
ProxyOfflineBuffer=1 # 离线缓冲时间(小时)
DataSenderFrequency=1 # 数据发送频率(秒)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
3.2 关键参数说明
3.2.1 代理模式配置
NOTE
Proxy 支持主动和被动两种工作模式,主动模式更常用。
- ProxyMode: 0(主动)表示 Proxy 主动连接 Server;1(被动)表示等待 Server 连接
- Server: Zabbix Server 的 IP 地址或主机名
- Hostname: Proxy 在 Server 中注册的唯一标识名
3.2.2 数据库配置
- DBHost/DBName: Proxy 本地数据库,用于缓存监控数据
- DBUser/DBPassword: 数据库认证信息
IMPORTANT
Proxy 的本地数据库用于离线数据缓存,即使与 Server 断开连接也能继续收集数据。
3.2.3 数据传输优化
- ProxyBufferMode: hybrid 模式结合内存和磁盘缓冲,提供最佳性能
- DataSenderFrequency: 数据发送到 Server 的频率,默认每秒一次
- ConfigFrequency: 从 Server 同步配置的频率,默认每小时一次
4. Zabbix Agent 配置详解
4.1 核心配置文件
Zabbix Agent 的配置文件位于 /etc/zabbix/zabbix_agentd.conf:
ini
# 基本配置
PidFile=/run/zabbix/zabbix_agentd.pid # 进程ID文件
LogFile=/var/log/zabbix/zabbix_agentd.log # 日志文件
LogFileSize=0 # 日志大小限制
Server=127.0.0.1 # 被动模式服务器列表
ServerActive=127.0.0.1 # 主动模式服务器列表
Hostname=Zabbix server # Agent 主机名
ListenPort=10050 # 监听端口
ListenIP=0.0.0.0 # 监听IP地址
# 安全配置
EnableRemoteCommands=0 # 是否允许远程命令执行
LogRemoteCommands=0 # 是否记录远程命令日志
# 性能配置
StartAgents=3 # 监听进程数
Timeout=3 # 操作超时时间
BufferSize=100 # 缓冲区大小(秒)
BufferSend=5 # 发送缓冲时间(秒)
# 主动模式配置
RefreshActiveChecks=120 # 主动检查刷新间隔(秒)
MaxLinesPerSecond=20 # 日志监控最大行数/秒
# 用户自定义参数
UserParameter= # 自定义监控项定义
UserParameterDir= # 自定义脚本目录
# TLS 配置 (可选)
TLSConnect=unencrypted # TLS连接方式
TLSAccept=unencrypted # TLS接受方式1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
4.2 关键参数说明
4.2.1 连接模式配置
TIP
Agent 支持主动和被动两种模式,可根据网络环境和监控需求选择。
- Server: 被动模式下允许连接的 Server IP 列表,用逗号分隔
- ServerActive: 主动模式下要连接的 Server IP 列表
- Hostname: Agent 在 Zabbix 中的主机名,必须与前端配置一致
4.2.2 安全配置
WARNING
远程命令执行功能存在安全风险,生产环境建议保持默认关闭。
- EnableRemoteCommands: 控制是否允许 Server 执行远程命令
- LogRemoteCommands: 记录远程命令执行日志,便于审计
4.2.3 性能优化
- StartAgents: 并发监听进程数,建议 1-5,根据负载调整
- BufferSize: 数据缓冲时间,防止网络抖动导致数据丢失
- RefreshActiveChecks: 主动模式下更新监控项配置的频率
5. 配置调优建议
5.1 性能优化
TIP
根据监控规模和硬件配置调整参数,避免资源浪费或性能瓶颈。
5.1.1 小型环境 (< 1000 监控项)
ini
# Server 配置
StartPollers=5
StartTrappers=5
CacheSize=32M
HistoryCacheSize=128M
# Proxy 配置
StartPollers=5
CacheSize=64M
# Agent 配置
StartAgents=3
BufferSize=1001
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
5.1.2 中型环境 (1000-10000 监控项)
ini
# Server 配置
StartPollers=10
StartTrappers=10
CacheSize=128M
HistoryCacheSize=256M
# Proxy 配置
StartPollers=10
CacheSize=128M1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
5.1.3 大型环境 (> 10000 监控项)
ini
# Server 配置
StartPollers=20
StartTrappers=20
CacheSize=256M
HistoryCacheSize=512M
# Proxy 配置 (推荐使用多个 Proxy)
StartPollers=15
CacheSize=256M
DataSenderFrequency=11
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
5.2 监控最佳实践
IMPORTANT
合理的配置是系统稳定运行的保障,定期 review 和调整配置参数。
5.2.1 网络优化
- 合理规划 Proxy 部署位置,减少跨网段数据传输
- 使用压缩传输减少网络带宽占用
- 配置适当的超时时间,避免网络抖动影响
5.2.2 安全加固
- 使用 TLS 加密通信 (TLSConnect/TLSAccept 参数)
- 限制远程命令执行权限
- 配置防火墙只开放必要端口 (10050/10051/80/443)
5.2.3 维护建议
- 定期检查日志文件,及时发现异常
- 监控系统资源使用情况,及时扩容
- 备份配置文件和数据库,做好容灾准备