AWS 网络负载均衡器后面的 Zabbix 代理偶尔超时

AWS 网络负载均衡器后面的 Zabbix 代理偶尔超时

我在AWS中的架构如下:

有 2 个相同的 zabbix 代理(基于 zabbix/zabbix-agent:centos-4.0.11),每个代理在不同的 EC2 实例上运行。Zabbix 服务器在第三个实例上运行(也使用 4.0 版本通过 dockbix 进行 docker 化),所有三个代理都在同一个 VPC 内。

这个想法是让一个网络负载均衡器监听两个代理运行的端口 (10050),并将上述两个实例注册到目标组。然后,此 NLB 的 DNS 将作为接口提供给 Zabbix 主机配置。目标是让多个 zabbix 主机以同一个 NLB 为目标,并根据流量负载将它们的请求路由到不同的代理。每个主机中都有一个 zabbix 代理项,它调用在两个 zabbix 代理 conf 文件中分别定义的 UserParameter(python 脚本)。

我的问题如下:zabbix_get(以及根据主机配置中设置的间隔自动进行的等效调用)偶尔会超时。有一次我得到了成功的响应

{“response”:“成功”,“信息”:“处理:4;失败:0;总计:4;花费秒数:0.000106”}

(使用的 python 脚本非常快,只需 1 秒)其他时候我会收到如下响应:

zabbix_get [4515]: 执行操作时超时。

这种情况会接连发生。因此,一个成功,下一个超时,然后下一个成功,依此类推。

我尝试用 telnet 测试连接,它始终有效。我甚至尝试使用一个简单的 tcp echo 容器,它也始终有效。

如果您能提供任何关于错误的想法,我们将不胜感激:)

编辑:只是想指出,这种行为不仅发生在我自定义的 UserParameter 定义脚本中,也发生在内置代理调用中,例如agent.versionagent.pingnet.tcp.port[<serverIp>, 10051]

编辑2tcpdump src <serverIp>在代理实例中运行时,似乎发生了类似的流量,并有一个成功和超时的响应

答案1

因此,显然我需要为我的内部 nlb 启用跨可用区负载平衡。这就是为什么它每次请求都会超时,因为我的所有实例都在一个可用区域中。

相关内容