1 Proxies
概述
Zabbix proxy 可以代表 Zabbix 服务器收集性能和可用性数据。这样,proxy 可以自行承担部分数据收集负载,从而减轻 Zabbix 服务器的压力。
此外,当所有 agent 和 proxy 都向同一台 Zabbix 服务器报告,并且所有数据都集中收集时,使用 proxy 是实现集中式和分布式监控的最简单方式。
Zabbix proxy 可用于:
- 监控远程位置
- 监控通信不稳定的位置
- 在监控数千台设备时减轻 Zabbix 服务器负载
- 简化分布式监控的维护

proxy 只需要与 Zabbix 服务器建立一个 TCP 连接。这样更容易绕过防火墙,因为你只需要配置一条防火墙规则。
Zabbix proxy 必须使用单独的数据库。 如果将其指向 Zabbix 服务器数据库,会破坏配置。
proxy 收集的所有数据都会先保存在本地,然后再传输到服务器。这样,即使与服务器之间出现临时通信问题,也不会丢失数据。proxy 配置文件中的 ProxyLocalBuffer 和 ProxyOfflineBuffer 参数控制数据在本地保留的时长。
可能会出现这样的情况:某个 proxy 直接从 Zabbix 服务器数据库接收最新配置变更,因此其配置比 Zabbix 服务器本身更为新。由于 CacheUpdateFrequency 的值,Zabbix 服务器的配置更新速度可能没有那么快。结果,proxy 可能开始收集数据并将其发送给 Zabbix 服务器,而 Zabbix 服务器会忽略这些数据。
Zabbix proxy 是一个数据收集器。它不会计算触发器、处理事件或发送告警。有关 proxy 功能概览,请参阅下表:
| Function | Supported by proxy | |
|---|---|---|
| Items | ||
| Zabbix agent checks | Yes | |
| Zabbix agent checks (active) | Yes 1 | |
| Simple checks | Yes | |
| Trapper items | Yes | |
| SNMP checks | Yes | |
| SNMP traps | Yes | |
| IPMI checks | Yes | |
| JMX checks | Yes | |
| Log file monitoring | Yes | |
| Internal checks | Yes | |
| SSH checks | Yes | |
| Telnet checks | Yes | |
| External checks | Yes | |
| Dependent items | Yes | |
| Script items | Yes | |
| Browser items | Yes | |
| Built-in web monitoring | Yes | |
| Item value preprocessing | Yes | |
| Network discovery | Yes | |
| Active agent autoregistration | Yes | |
| Low-level discovery | Yes 2 | |
| Remote commands | Yes | |
| Calculating triggers | No | |
| Processing events | No | |
| Event correlation | No | |
| Sending alerts | No | |
[1] 为确保 agent 向 proxy(而不是服务器)请求主动检查,必须在 agent 配置文件的 ServerActive 参数中列出该 proxy。
[2] 对于 LLD,Zabbix proxy 只收集并预处理数据,然后将其发送到 Zabbix 服务器进行进一步处理。
防止过载
如果 Zabbix server 停机了一段时间,并且 proxies 已经收集了大量数据, 当服务器启动后,可能会get过载(history cache使用率在95-100%之间持续一段时间)。 这种过载可能导致性能下降,检查处理速度变慢 它们本应如此。为了避免由此产生问题,已实施了针对此场景的保护措施 由于过载 history cache。
当 Zabbix server history cache 已满时,history cache 的写入访问权限将被限制。 throttled,正在阻塞服务器数据收集进程。最常见的 history cache 过载情况出现在服务器停机后,proxies 正在上传收集的数据。为避免 此proxy节流功能已添加(当前无法禁用)。
当history cache使用率达到80%时,Zabbix server将停止接受来自proxies的数据。 相反,proxies 将被放入节流列表中。这种情况将持续到缓存使用率降低为止。 下降到 60%。现在服务器将开始逐一接收来自 proxies 的数据,具体由以下内容定义: 节流列表。这意味着在节流期间第一个尝试上传数据的 proxy 周期较短的请求将被优先处理,在处理完成之前,服务器不会接收来自其他 proxies 的数据。
此限制模式将持续到缓存使用率再次达到 80% 或下降至 20% 为止 或者限制列表为空。在第一种情况下,服务器将再次停止接受 proxy 数据。 在另外两种情况下,服务器将正常启动,接受来自所有proxies的数据。
上述信息可以在下表中说明:
| 历史写入 缓存使用情况 |
Zabbix server 模式 | Zabbix server 操作 |
|---|---|---|
| 达到 80% | 等待 | 停止接受 proxy 数据,但维护一个节流列表(稍后联系的优先级列表 proxies)。 |
| 丢弃到 60% | 被节流 | 开始处理节流列表,但仍不接受 proxy 数据。 |
| 丢弃到 20% | 正常 | 删除限流列表并开始正常接收 proxy 数据。 |
您可能会使用 zabbix[wcache,history,pused] 内部监控项 来关联 Zabbix 的此行为
带有指标的服务器。
配置
一旦你已经installed并 configured一个proxy,就可以在Zabbix前端中进行配置了。
添加 proxy
要在 Zabbix 前端中配置 proxy:
- 转到:Administration → Proxies
- 单击 Create proxy

| Parameter | Description | |
|---|---|---|
| Proxy name | 输入 proxy 名称。它必须与 proxy 配置文件中的 Hostname 参数名称相同。 | |
| Proxy group | 为 proxy 负载均衡/高可用性 选择一个 proxy 组。 | |
| Address for active agents | 输入受监控的 active agent 或发送端必须连接的地址。仅 Zabbix 7.0 agent 或更高版本支持。 此地址用于连接 active 和 passive proxy。仅当在 Proxy group 字段中选择了 proxy 组时,此字段才可用。 |
|
| Address | 要连接的 IP 地址/DNS 名称。 | |
| Port | 要连接的 TCP 端口号(默认 10051)。支持用户宏。 | |
| Proxy mode | 选择 proxy 模式。 Active - proxy 将连接到 Zabbix 服务器并请求配置数据 Passive - Zabbix 服务器连接到 proxy 注意:在未加密通信的情况下,使用 active proxy 时,敏感的 proxy 配置数据可能会被能够访问 Zabbix 服务器 trapper 端口的人员获取。这是因为如果未进行身份验证,或者未在 Proxy address 字段中限制 proxy 地址,任何人都可以伪装成 active proxy 并请求配置数据。 |
|
| Proxy address | 如果指定,则仅接受来自此列表中的 active proxy 请求。列表中的 IP 地址以英文逗号分隔,可选使用 CIDR 表示法,或 active Zabbix proxy 的 DNS 名称。 仅当在 Proxy mode 字段中选择了 active proxy 时,此字段才可用。不支持宏。 |
|
| Interface | 输入 passive proxy 的接口详细信息。 仅当在 Proxy mode 字段中选择了 passive proxy 时,此字段才可用。 |
|
| Address | passive proxy 的 IP 地址/DNS 名称。 | |
| Port | passive proxy 的 TCP 端口号(默认 10051)。支持用户宏。 | |
| Description | 输入 proxy 描述。 | |
Encryption 选项卡允许你要求与 proxy 建立加密连接。
| Parameter | Description |
|---|---|
| Connections to proxy | 服务器连接到 passive proxy 的方式:不加密(默认)、使用 PSK(预共享密钥)或证书。 |
| Connections from proxy | 选择允许来自 active proxy 的连接类型。可以同时选择多种连接类型(适用于测试以及切换到其他连接类型)。默认值为“不加密”。 |
| Issuer | 允许的证书颁发者。证书首先会通过 CA(证书颁发机构)验证。如果证书有效且由 CA 签名,则可使用 Issuer 字段进一步限制允许的 CA。此字段为可选项,适用于 Zabbix 安装使用多个 CA 证书的情况。 |
| Subject | 允许的证书主题。证书首先会通过 CA 验证。如果证书有效且由 CA 签名,则可使用 Subject 字段仅允许一个 Subject 字符串值。如果此字段为空,则接受任何由已配置 CA 签名的有效证书。 |
| PSK identity | 预共享密钥标识字符串。 不要在 PSK identity 中放入敏感信息,因为它会在网络中以未加密方式传输,用于告知接收方应使用哪个 PSK。 |
| PSK | 预共享密钥(十六进制字符串)。如果 Zabbix 使用 GnuTLS 或 OpenSSL 库,最大长度为 512 个十六进制数字(256 字节 PSK);如果 Zabbix 使用 mbed TLS(PolarSSL)库,最大长度为 64 个十六进制数字(32 字节 PSK)。示例:1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952 |
Timeouts 选项卡允许你为支持该功能的监控项类型覆盖全局超时设置。

| Parameter | Description |
|---|---|
| Timeouts for item types | 选择超时选项: Global - 使用全局超时(在每种监控项类型的灰色 Timeout 字段中显示); Override - 使用自定义超时(在每种监控项类型的 Timeout 字段中设置)。允许范围:1 - 600s(默认:继承自全局超时)。支持时间后缀,例如 30s、1m,以及用户宏。 单击 Global timeouts 链接可配置全局超时。请注意,只有具有 Super admin 类型且对 Administration → General 前端部分拥有权限的用户,才能看到 Global timeouts 链接。 支持的监控项类型: - Zabbix agent(被动和主动检查均支持) - Simple check( icmpping*、vmware.* 监控项除外)- SNMP agent(仅适用于 SNMP walk[OID] 和 get[OID] 监控项)- External check - Database monitor - HTTP agent - SSH agent - TELNET agent - Script - Browser 请注意,在 Override 下设置的超时将优先于全局超时,但如果在监控项配置中设置了单个监控项超时,则会被单个监控项超时覆盖。 |
如果 proxy 主版本与服务器主版本不匹配,
则会在 Timeouts for item types 旁显示
图标,并在悬停时显示消息
“由于 proxy 和服务器版本不匹配,已禁用超时”。
在这种情况下,proxy 将使用 proxy 配置文件中的 Timeout 参数。
现有 proxy 的编辑表单还有以下附加按钮:
- Refresh configuration - 刷新 proxy 配置
- Clone - 基于现有 proxy 的属性创建一个新的 proxy
- Delete - 删除 proxy
主机配置
您可以指定某个特定的 主机 应在 host configuration 表单中通过使用 “被监控于”(Monitored by)字段,由某个 proxy 或 proxy 组 进行监控。

主机 mass update 是另一种指定 主机 应由某个 proxy 或 proxy 组 进行监控的方式。