一个Zabbix proxy可以代表收集性能和可用性数据 的Zabbix server。这样,proxy可以自行承担部分 数据收集的负载并卸载Zabbix server。
此外,使用proxy是实现集中化和 分布式监控,当所有agents和proxies向一个Zabbix报告时 服务器及所有数据均被集中采集。
一个Zabbix proxy可用于:
proxy仅需与Zabbix server建立单一TCP连接。 这样更容易get绕过防火墙 因为你只需要配置 一条防火墙规则。
Zabbix proxy 必须使用独立的数据库 将其指向Zabbix server数据库会导致系统崩溃 配置
由proxy收集的所有数据在传输前会存储在本地 传输到服务器。这样就不会因任何临时情况导致数据丢失 与服务器的通信问题。ProxyLocalBuffer和 proxy configuration file中的ProxyOfflineBuffer参数控制离线状态下 数据保存在本地。
可能会出现一个proxy,它接收 直接从Zabbix server数据库获取最新配置变更 比Zabbix server的配置更及时,后者的配置可能 由于值的原因,更新速度可能不会那么快 CacheUpdateFrequency. 作为 结果,proxy 可能开始收集数据并将其发送到 Zabbix server 忽略这些数据。
Zabbix proxy 是一个数据收集器。它不计算触发器, 处理事件或发送警报。关于proxy的概述 功能特性如下,请查阅下表:
Function | 由 proxy 支持 | |
---|---|---|
Items | ||
Zabbix agent 检查 | Yes | |
Zabbix agent 检查(主动式) | 是 1 | |
简单检查 | 是 | |
Trapper 监控项 | Yes | |
SNMP检查 | 是 | |
SNMP陷阱 | 是 | |
IPMI检查 | 是 | |
JMX检查 | 是 | |
日志 file 监控 | 是 | |
内部检查 | 是 | |
SSH检查 | 是 | |
Telnet检查 | 是 | |
外部检查 | 是 | |
依赖 监控项 | 是 | |
脚本 监控项 | 是 | |
Built-in web monitoring | 是 | |
Item value preprocessing | 是 | |
Network discovery | Yes | |
Active agent autoregistration | 是 | |
Low-level discovery | 是 2 | |
Remote commands | 是 | |
Calculating triggers | No | |
Processing events | No | |
Event correlation | No | |
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的写入访问将被 节流,停滞的服务器数据收集进程。最常见的history cache 过载情况发生在服务器宕机后,当proxies正在上传收集的数据时。为避免 此proxy节流功能已添加(目前无法禁用).
Zabbix server 将在 history cache 使用率达到80%时停止接收来自 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]
internal item将Zabbix server的这种行为与指标关联起来
当您完成installed并configured一个proxy后 就可以在Zabbix前端进行配置了
要在Zabbix前端配置proxy:
参数 | 描述 | |
---|---|---|
Proxy name | 输入proxy名称。必须与proxy配置file中的主机名参数相同。 | |
Proxy mode | 选择proxy模式。 主动 - proxy将连接到Zabbix server并请求配置数据 被动 - Zabbix server连接到proxy 注意 当使用主动proxy时,如果没有加密通信(敏感),proxy配置数据可能会被能够访问Zabbix server trapper端口的第三方获取。这是因为如果未进行身份验证或未在Proxy地址字段中限制proxy地址,任何人都可以伪装成主动proxy并请求配置数据。 |
|
Proxy address | 如果指定,则仅接受来自此逗号分隔的IP地址列表(可选CIDR表示法)或主动Zabbix proxy的DNS名称的主动proxy请求。 此字段仅在Proxy模式字段中选择主动proxy时可用。不支持宏。 此选项自Zabbix 4.0.0起支持。 |
|
Interface | 输入被动proxy的接口详情。 此字段仅在Proxy模式字段中选择被动proxy时可用。 |
|
IP地址 | 被动proxy的IP地址(可选)。 | |
DNS名称 | 被动proxy的DNS名称(可选)。 | |
连接到 | 点击相应按钮将告诉Zabbix server使用什么从proxy检索数据: IP - 连接到proxy IP地址(推荐) DNS - 连接到proxy 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);如果Zabbix使用mbed TLS(PolarSSL)库,为64个十六进制数字(32字节PSK)。示例: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952 |
您可以在host configuration表单中通过由proxy监控字段 指定单个主机应由proxy监控
主机 mass update是另一种 指定主机应由proxy监控的方式