一个Zabbix proxy可以代表Zabbix server收集性能和可用性数据。通过这种方式,proxy可以承担部分数据收集负载,从而减轻Zabbix server的压力。
此外,当所有agents和proxies都向单个Zabbix服务器报告且所有数据集中收集时,使用proxy是实现集中式和分布式监控的最简便方法。
Zabbix proxy可用于:
proxy仅需与Zabbix server建立单个TCP连接。这种方式更易于get穿越防火墙,因为只需配置一条防火墙规则。
Zabbix proxy必须使用独立数据库。 指向Zabbix server数据库将导致配置损坏。
proxy收集的所有数据在传输至服务器前会本地存储。这样即使与服务器出现临时通信问题也不会丢失数据。proxy configuration file中的ProxyLocalBuffer和ProxyOfflineBuffer参数控制数据本地保留时长。
可能出现这种情况:直接从Zabbix server数据库接收最新配置变更的proxy,其配置可能比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(而非服务器)请求主动检查,必须在agent配置file的ServerActive参数中列出proxy。
[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 的此行为 带有指标的服务器。
一旦你已经installed并 configured一个proxy,就可以在Zabbix前端中进行配置了。
在Zabbix前端配置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的编辑表单包含以下额外按钮:
您可以指定某个特定的 主机 应在 host configuration 表单中通过使用 “被监控于”(Monitored by)字段,由某个 proxy 或 proxy 组 进行监控。
主机 mass update 是另一种指定 主机 应由某个 proxy 或 proxy 组 进行监控的方式。