1 Proxies

概述

Zabbix proxy 可以代表 Zabbix 服务器收集性能和可用性数据。这样,proxy 可以自行承担部分数据收集负载,从而减轻 Zabbix 服务器的压力。

此外,当所有 agent 和 proxy 都向同一台 Zabbix 服务器报告,并且所有数据都集中收集时,使用 proxy 是实现集中式和分布式监控的最简单方式。

Zabbix proxy 可用于:

  • 监控远程位置
  • 监控通信不稳定的位置
  • 在监控数千台设备时减轻 Zabbix 服务器负载
  • 简化分布式监控的维护

proxy 只需要与 Zabbix 服务器建立一个 TCP 连接。这样更容易绕过防火墙,因为你只需要配置一条防火墙规则。

Zabbix proxy 必须使用单独的数据库。 如果将其指向 Zabbix 服务器数据库,会破坏配置。

proxy 收集的所有数据都会先保存在本地,然后再传输到服务器。这样,即使与服务器之间出现临时通信问题,也不会丢失数据。proxy 配置文件中的 ProxyLocalBufferProxyOfflineBuffer 参数控制数据在本地保留的时长。

可能会出现这样的情况:某个 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 的此行为 带有指标的服务器。

配置

一旦你已经installedconfigured一个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 类型且对 AdministrationGeneral 前端部分拥有权限的用户,才能看到 Global timeouts 链接。

支持的监控项类型:
- Zabbix agent(被动和主动检查均支持)
- Simple checkicmpping*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 组 进行监控的方式。