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
内置网页监控 Yes
监控项值预处理 Yes
网络自动发现 Yes
主动代理自动注册 Yes
低级别自动发现 Yes
远程命令 Yes
计算触发器 No
处理事件 No
事件关联 No
发送警报 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的数据。

上述信息可以用以下表格表示:

History write
cache usage
Zabbix server模式 Zabbix server执行操作
达到 80% 等待 停止接受 proxy 数据,但维护一个节流列表(即将要连接的proxy的优先列表)。
下降到 60% 节流 开始处理限制列表,但仍不接受proxy数据。
D下降到 20% 正常 删除限制列表,并开始正常接受proxy数据。

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

配置

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

添加一个proxy节点

在zabbix前端配置一个proxy

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

参数 描述
Proxy name 输入proxy名称。它必须与proxy配置文件中的Hostname参数中的名称相同。
Proxy group 为 proxy 选择 proxy群组 负载均衡/高可用.
一个proxy只能选择一个proxy群组。
主动模式 active agents 参数地址 监控的主动模式active agent或发送者 zabbix sender 必须连接的地址。支持 Zabbix 7.0 版本或更高版本的agent。
此地址用于连接主动 active和 被动 passive agent。仅当在 _Proxy group 字段中选择了群组时,此字段才可用。
Address IP地址或者DNS名称使用连接。
Port 要连接的 TCP 端口号(默认为 10051)。支持用户宏。
*Proxy mode 选择proxy模式。
主动 - proxy将连接到Zabbix server并请求配置数据
被动 - - Zabbix server连接到proxy
Note 没有加密的通信(敏感的)proxy配置数据可能会成为可以访问Zabbix服务器的端口时,使用一个主动的proxy。这是可能的,因为任何人都可以假装是一个活动的proxy并请求配置数据,如果身份验证没有发生或proxy地址不受限制在Proxy 地址字段。
Proxy address 如果指定,则仅接受来自此逗号分隔的IP地址列表(可选CIDR表示法)或主动Zabbix proxy的DNS名称的主动 proxy 请求
只有在“*proxy 模式”字段中选择了主动 proxy时,此字段才可用。不支持宏。
Interface 输入被动proxy的接口详细信息
只有在“proxy模式”字段中选择了被动proxy时,此字段才可用。
Address IP address/DNS name of the passive proxy.
Port 被动proxy的TCP端口号(默认为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

超时选项卡 global 允许您覆盖支持它的项目类型的超时。

参数 描述
Timeouts for item types 超时选项:
Global - 使用全局超时(显示在每个项目类型的灰色超时字段中);
Override - 使用自定义超时(在每个项目类型的timeout字段中设置)。 允许范围: 1 - 600s (默认: 继承自 全局 超时). 时间后缀, e.g. 30s, 1m, 和用户宏 被支持的.

点击“全局超时”链接可以配置 全局 超时。请注意,全局超时链接仅对具有权限的超级管理员类型的用户可见 Administration一般 前端页面.

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

请注意,在覆盖下设置的超时将优先于全局超时,但如果在 i监控项配置 则不是。

如果proxy主版本与server主版本(例如7.0.0,7.0.1主版本一致)不匹配, 图标将显示在“项目类型超时”旁边,并带有悬停消息 “由于proxy和server版本不匹配,超时被禁用”。 在这种情况下,proxy 将使用 Timeout 参数,从proxy 配置文件中。

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

  • 刷新配置 - 刷新proxy的配置
  • 克隆 - 基于现有proxy的属性创建一个新的proxy
  • 删除 - 删除该proxy
主机配置

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

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