Zabbix proxies 可以组织成 proxy 组 以实现 Proxy 负载均衡 和高可用性。
Proxy 负载均衡 和高可用性是指在 proxy 组 内的 proxies 之间自动重新分配 主机:
满足以下条件时,Proxy 负载均衡 和高可用性功能将生效:
Proxy 负载均衡和高可用性由Zabbix server通过服务器进程类型与线程管理,该组件持续监控每个proxy 组中所有proxies的状态及其主机分布。
Proxy通过proxy故障转移确保组内高可用性:当proxy离线时,其主机会立即重新分配到其他proxies。 当主机被重新分配给拥有最少主机的proxies时,也会触发Proxy 负载均衡。
此外,当proxy的主机数量与组平均值相差至少10个主机且达到2倍系数时(主机过剩或主机不足),将触发Proxy 负载均衡。 如果失衡状态在宽限期(10×故障转移延迟)后仍然存在,则该proxy 组将进入主机重新分配队列。
proxy 组管理器使用以下逻辑重新分配主机:
主机重新分配示例:
proxy上的主机 | 组平均值 | 主机重新分配 |
---|---|---|
100 | 50 | 是 |
60 | 50 | 否 |
40 | 50 | 否 |
25 | 50 | 是 |
15 | 5 | 是 |
10 | 5 | 否 |
当proxy 组中的主机数量少于10个monitored by时,可能导致组内proxies之间的主机分布不均。
要在 Zabbix 前端配置一个 proxy 组:
参数 | 描述 |
---|---|
Name | 输入 proxy 组 名称。 |
Failover period | 输入故障转移执行前的等待时间(默认为 1m;允许范围为 10s-15m)。 支持时间后缀(例如,30s,1m)。 支持用户宏。 |
Minimum number of proxies | 输入组在线所需的最少在线 proxies 数量(默认为 1;允许范围为 1-1000)。 支持用户宏。 |
Description | 输入 proxy 组 描述。 |
Proxies | 组中的 proxies 列表。最多显示五个 proxies(根据对 proxy 的权限,显示为链接或纯文本)。 当编辑现有 proxy 组 且组中至少有一个 proxy 时,将显示此列表。 |
要使用Proxy 负载均衡,您需要在Zabbix前端配置一个proxy 组(如上所述),并确保主机被monitored by到proxy 组,而非单独的proxies(您可以使用主机mass update将主机从proxies移至proxy 组)。
若使用Zabbix agent,还需按以下方式配置:
对于passive checks,在服务器参数中列出所有proxy 组的proxies。
对于active checks,建议在ServerActive参数中列出所有proxy 组的proxies或Zabbix server。
Note that only Zabbix agent 7.0 (or later) will work with proxy groups in its active mode.
若ServerActive
参数仅包含proxy 组(或Zabbix server)中的一个proxy,agent仍能连接至正确的proxy。 当agent服务启动并连接至指定的proxy时,agent将接收并缓存组内所有proxy的IP列表及其当前负载。 随后,主动检查将根据proxy 组内当前的proxy-主机分配,重定向至正确的在线proxy以执行主机。
在Zabbix agent的ServerActive
参数中仅指定单个proxy时,若agent启动/重启期间该proxy处于离线状态,可能导致监控数据丢失。
使用Zabbix sender时,数据请求也会根据proxy 组内当前的proxy-主机分配,重定向至正确的在线proxy以执行主机。 但若通过file发送多个主机的数值,请使用-g
option以避免将数据发送至错误的proxy。
Zabbix agent还必须能够通过防火墙连接至proxy 组中的所有proxies。 否则,主动检查可能在重定向或故障转移期间挂起或失败。例如:
测试Proxy 负载均衡: