1 Proxies

概述

一个Zabbix proxy可以代表收集性能和可用性数据 Zabbix server的一部分。这样,proxy可以自行承担部分 数据收集的负载并卸载Zabbix server。

此外,使用proxy是实现集中化和 分布式监控,当所有agents和proxies向一个Zabbix报告时 服务器及所有数据均被集中采集。

一个Zabbix proxy可用于:

  • 监控远程位置
  • 监控通信不可靠的位置
  • 在监控数千台设备时卸载Zabbix server
  • 简化分布式监控的维护

proxy仅需与Zabbix server建立单一TCP连接。 这种方式更容易get绕过防火墙,因为您只需配置 一条防火墙规则。

Zabbix proxy 必须使用独立的数据库。 指向 Zabbix server 数据库将导致系统崩溃 配置

proxy 采集的所有数据在传输前均会存储在本地 传输到服务器。这样就不会因任何临时情况导致数据丢失。 与服务器的通信问题。ProxyLocalBufferproxy configuration file中的ProxyOfflineBuffer参数控制离线缓冲时长 数据在本地保存。

可能会出现某个proxy接收 直接从Zabbix server数据库获取最新配置变更 比配置可能已过时的Zabbix server更为最新的配置 由于数值更新速度较慢 CacheUpdateFrequency。作为 结果,proxy 可能开始收集数据并将其发送至 Zabbix server 忽略这些数据。

Zabbix proxy 是一个数据收集器。它不计算触发器, 处理事件或发送警报。有关proxy的概述 功能特性如下,请查阅下表:

功能 由 proxy 支持
Items
Zabbix agent 检查
Zabbix agent 检查(主动式) 1
简单检查
Trapper 监控项
SNMP检查
SNMP陷阱
IPMI检查
JMX检查
日志 file 监控
内部检查
SSH检查
Telnet检查
外部检查
依赖监控项
脚本 监控项
浏览器 监控项
Built-in web monitoring
Item value preprocessing
Network discovery
Active agent autoregistration
Low-level discovery 2
Remote commands
Calculating triggers
Processing events
Event correlation
Sending alerts

[1] 为确保agent向proxy发起请求(而非其他对象) 服务器)进行主动检查时,proxy必须列在 ServerActive 参数位于 agent 配置 file 中。 [2] 对于LLD(低级别发现),Zabbix proxy仅负责收集和预处理 数据随后被发送至Zabbix server进行进一步处理 处理中

防止过载

如果 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前端中进行配置了。

添加 proxies

在Zabbix前端配置proxy的步骤:

  • 前往:管理 → Proxies
  • 点击创建proxy

参数 描述
Proxy name 输入proxy名称。必须与proxy配置file中的主机名参数保持一致。
Proxy group 为proxy选择load balancing/high availability的proxy 组。
只能选择一个组。
Address for active agents 输入被监控主动agents或发送方需连接的地址。仅支持Zabbix 7.0 agents或更高版本。
该地址用于连接主动和被动proxies。仅当在proxy 组字段中选择proxy 组时此字段才可用。
地址 连接的IP地址/DNS名称。
端口 连接的TCP端口号(默认10051)。支持用户宏。
Proxy mode 选择proxy模式。
主动 - proxy将连接至Zabbix server并请求配置数据
被动 - Zabbix server连接至proxy
注意:若未启用加密通信(敏感),当使用主动proxy时,能访问Zabbix server捕获器端口的第三方可能获取proxy配置数据。这是因为若未进行身份验证或未在Proxy地址字段限制proxy地址,任何人都可伪装成主动proxy请求配置数据。
Proxy address 若指定则仅接受来自此逗号分隔的IP地址列表(可选CIDR表示法)或主动Zabbix proxy的DNS名称的主动proxy请求。
仅当在Proxy模式字段选择主动proxy时此字段可用。不支持宏。
Interface 输入被动proxy的接口详情。
仅当在Proxy模式字段选择被动proxy时此字段可用。
地址 被动proxy的IP地址/DNS名称。
端口 被动proxy的TCP端口号(默认10051)。支持用户宏。
Description 输入proxy描述。

加密选项卡可设置与proxy的加密连接要求。

参数 描述
Connections to proxy 服务器连接被动proxy的方式:无加密(默认)、PSK(预共享密钥)或证书。
Connections from proxy 选择允许来自主动proxy的连接类型。可同时选择多种类型(适用于测试和切换连接类型)。默认为"无加密"。
Issuer 证书允许的颁发者。证书首先通过CA(证书颁发机构)验证。若有效且由CA签名,则可用颁发者字段进一步限制允许的CA。此字段可选,适用于Zabbix安装使用多CA证书的情况。
Subject 证书允许的主题。证书首先通过CA验证。若有效且由CA签名,则可用主题字段限制仅允许特定string的主题值。若为空则接受任何由配置CA签名的有效证书。
PSK identity 预共享密钥标识string。
请勿在PSK标识中放置敏感信息,它会以明文传输用于告知接收方使用哪个PSK。
PSK 预共享密钥(十六进制string)。最大长度:若Zabbix使用GnuTLS或OpenSSL库为512位十六进制数(256字节PSK),若使用mbed TLS(PolarSSL)库则为64位十六进制数(32字节PSK)。示例:1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952

超时选项卡允许为支持超时超时的监控项类型覆盖默认值。

参数 描述
Timeouts for item types 选择超时选项:
全局 - 使用全局超时(每个监控项类型的灰色超时字段显示);
覆盖 - 使用自定义超时(为每个监控项类型在超时字段设置)。允许范围:1 - 600秒(默认继承超时超时)。支持Time suffixes,如30s、1m及user macros

点击全局超时链接可配置超时超时。注意全局超时链接仅对超级管理员类型且有权访问管理General前端部分的用户可见。

支持的监控项类型:
- 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

注意覆盖设置的超时将优先于全局超时,但若在配置中设置了个体监控项超时,则后者优先级更高。

若proxy主version与服务器主version不匹配, 图标将显示在 监控项类型超时旁,悬停提示 "超时已禁用,因proxy与服务器版本不匹配"。 此时proxy将使用proxy配置file中的Timeout参数。

现有proxy的编辑表单包含以下额外按钮:

  • 刷新配置 - 刷新proxy配置
  • 克隆 - 基于现有proxy属性create新proxy
  • 删除 - delete该proxy
主机配置

您可以指定某个特定的 主机 应在 host configuration 表单中通过使用 “被监控于”(Monitored by)字段,由某个 proxy 或 proxy 组 进行监控。

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