1 proxy代理

概览

Zabbix proxy可以代表Zabbix server收集性能和可用性数据。这样,proxy可以承担部分数据收集的负载,从而减轻Zabbix server的负担。

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

Zabbix proxy可用于:

  • 监控远程位置
  • 监控通信不可靠的地点
  • 当监控数千台设备时,减轻Zabbix server的负载
  • 简化分布式监控的维护

proxy仅需与Zabbix server建立一个TCP连接。这样,绕过防火墙变得更容易,因为只需配置一条防火墙规则。

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

proxy收集的所有数据在传输到服务器前会本地存储。这样,即使与服务器的临时通信问题,也不会丢失数据。proxy配置文件中的ProxyLocalBufferProxyOfflineBuffer参数控制数据本地存储的时间。

可能的情况是,直接从Zabbix server数据库接收最新配置更改的proxy,其配置可能比Zabbix server更及时更新,因为Zabbix server的配置更新可能由于CacheUpdateFrequency的值而较慢。结果是,proxy可能开始收集数据并将其发送给Zabbix server,而Zabbix server可能忽略这些数据。

Zabbix proxy是一个数据收集器。它不计算触发器、处理事件或发送告警。关于proxy功能的概述,请参阅下表:

功能 由proxy支持
监控项
Zabbix agent检查
Zabbix agent检查(主动) 1
简单检查
Trapper监控项
SNMP检查
SNMP陷阱
IPMI检查
JMX检查
日志文件监控
内部检查
SSH检查
Telnet检查
外部检查
依赖监控项
脚本监控项
浏览器监控项
内置Web监控
监控项值预处理
网络自动发现
主动agent自动注册
低级自动发现 2
远程命令
计算触发器
处理事件
事件关联
发送告警

[1] 要确保agent向proxy(而非server)请求主动检查,proxy必须在agent配置文件的ServerActive参数中列出。
[2] 对于LLD,Zabbix proxy仅收集和预处理数据,然后将其发送给Zabbix server进行进一步处理。

过载保护

如果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监视的另一种方式。