这是原厂英文文档的翻译页面. 欢迎帮助我们 完善文档.
2022 Zabbix中国峰会
2022 Zabbix中国峰会

1 proxy代理

概览

Zabbix Proxy可以代表Zabbix server收集性能和可用性数据。 通过这种方式,proxy可以自己承担一些收集数据的负载,并减轻Zabbix Server的负担。

此外,当所有agents和proxy都向一个Zabbix server报告并且所有数据都集中收集时,使用Proxy代理是实现集中式和分布式监控的最简单方法。

Zabbix proxy 可以被使用作为:

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

proxy 只需要一个到Zabbix server的TCP连接。 这样就可以更容易地绕过防火墙,因为您只需要配置一条防火墙规则。

Zabbix proxy代理必须使用单独的数据库。将其指向Zabbix server数据库将破坏配置。

proxy收集的所有数据在传输到server之前都存储在本地。这种方式不会因为与server之间的任何临时通信问题而丢失数据。ProxyLocalBufferProxyOfflineBuffer参数在proxy配置文件控制数据在本地保存多长时间。

可能会出现这样的情况:直接从Zabbix server数据库接收最新配置更改的proxy代理拥有比Zabbix server更最新的配置,而Zabbix server的配置可能因为CacheUpdateFrequency的值而不能快速更新。因此,proxy代理可能会开始收集数据并将它们发送到忽略这些数据的Zabbix server。

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

功能 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
Built-in web monitoring Yes
Item value preprocessing Yes
Network discovery Yes
Active agent autoregistration Yes
Low-level discovery Yes
Remote commands Yes
Calculating triggers No
Processing events No
Event correlation No
Sending alerts No

[1] 为确保agent请求proxy(而不是server)进行活动检查,proxy代理必须被列于ServerActive 配置文件中的参数。

过载保护

如果Zabbix server宕机一段时间,proxy已经收集了大量数据,然后server启动,它可能会超载(历史缓存使用率在一段时间内保持在95-100%)。这种过载可能会导致性能下降,检查的处理速度比正常情况下要慢。 对这种场景的保护是为了避免由于重载历史缓存而产生的问题。

当Zabbix server 历史缓存满时,历史缓存写访问被限制,停止server数据收集进程。最常见的历史缓存过载情况是server停机后,proxy上传收集的数据。 为了避免这种情况,添加了proxy节流(目前无法禁用)。

当历史缓存使用率达到80%时,Zabbix server 将停止接受来自proxy的数据。 相反,这些proxy将被放在一个节流列表中。 这将持续到缓存使用率下降到60%。现在,server 将开始逐一接受来自节流列表定义的proxy的数据。 这意味着在节流期间试图上载数据的第一个proxy将首先被接收数据,在此之前,server将不会接受来自其他proxy的数据。

这种调节模式将继续,直到缓存使用率再次达到80%,或者下降到20%,或者调节列表为空。 在第一种情况下,server 将再次停止接受proxy数据。 在另外两种情况下,server 将开始正常工作,接受来自所有proxy的数据。

你可以使用zabbix[wcache,history,pused] 内部项将Zabbix server的行为与一个度量关联起来。

配置

如果你 安装配置 一个proxy , 下一步就是Zabbix前端配置。

添加一个proxy代理

在Zabbix前端中配置proxy:

  • 前往: Administration → Proxies
  • 点击 创建proxy

参数 描述
Proxy name 输入proxy名称。 必须与proxy配置文件中的“Hostname”保持一致。
Proxy mode 选择proxy模式。
主动 - proxy将连接到Zabbix server并请求配置数据
被动 - - Zabbix server连接到proxy
Note 没有加密的通信(敏感的)proxy配置数据可能会成为可以访问Zabbix服务器的端口时,使用一个主动的proxy。这是可能的,因为任何人都可以假装是一个活动的proxy并请求配置数据,如果身份验证没有发生或proxy地址不受限制在Proxy 地址字段。
Proxy address 如果指定了,那么主动的proxy请求只接受这个以逗号分隔的IP地址列表(可选的CIDR标记),或者主动 Zabbix proxy的DNS名称。
该字段仅在“Proxy 模式”字段中选择了active proxy时有效。 宏是不支持的。
从Zabbix 4.0.0开始就支持这个选项。
Interface 输入被动proxy的接口详细信息。
该字段仅在“Proxy模式”字段中选择被动proxy时有效。
IP address 被动proxy的IP地址(可选)。
DNS name 被动proxy的DNS名称(可选)。
Connect to 点击相应的按钮将告诉Zabbix server使用什么来从proxy检索数据:
IP -连接proxyIP地址(推荐)
DNS -连接到proxy DNS名称
Port 被动proxy的TCP/UDP端口号(默认为10051)。
Description 输入proxy描述信息。

加密选项卡允许您要求与proxy的加密连接。

参数 描述
Connections to proxy 服务器如何连接到被动proxy: 不加密(默认),使用PSK(预共享密钥)或证书。
Connections from proxy 选择从活动proxy中允许的连接类型。 可以同时选择几种连接类型(这对于测试和切换到其他连接类型很有用)。 默认为“不加密”。
Issuer 允许的证书颁发者。 证书首先由CA(证书颁发机构)验证。 如果它是有效的,由CA签名,那么Issuer字段可以用于进一步限制所允许的CA。此字段是可选的,用于Zabbix安装使用来自多个CA的证书时。
Subject 证书允许的主题。 证书首先由CA验证。如果它是有效的,由CA签名,那么Subject字段可以用来只允许一个值的Subject字符串。 如果此字段为空,则接受由配置的CA签名的任何有效证书。
PSK identity - 预共享密钥标识字符串。
不要把敏感信息放在PSK身份中,它在网络上未经加密传输,以通知接收方使用哪个PSK。
PSK Pre-shared关键(hex-string)。最大长度: 512十六进制数字(256字节PSK) 如果Zabbix使用GnuTLS或OpenSSL库,64十六进制数字(32字节PSK)如果Zabbix使用mbed TLS (PolarSSL)库。 例如: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952
主机配置

你可以在主机配置表单中指定一个单独的主机应该被一个proxy监控,使用Monitored by proxy字段。

主机 批量更新是指定主机应该由proxy监视的另一种方式。