-
Type:
Problem report
-
Resolution: Unresolved
-
Priority:
Trivial
-
None
-
Affects Version/s: 7.4.15
-
Component/s: Agent2 (G), Proxy (P), Server (S)
-
None
-
Environment:Active Zabbix-agent2, zabbix proxy group and
Steps to reproduce:
Configure Zabbix Server, Proxy Group with at least 2 proxies, Assign host to this group and Zabbix Agent2 to use proxy serves in that group:
ServerActive=proxy1;proxy2
Active agent is assigned to proxy1 through Proxy Group. Tis proxy1 goes down for a relatively short time (let's say restart) and server does not register this small disruption, but agent connects/fails over to proxy2. From agents point of view everything is ok- it can communicate to the proxy, but this proxy2 does not have any tasks/jobs assigned to this agent. In the mean time proxy1 comes back to online. Agent is not connected to it (but is connected to proxy2). No monitoring data arrives.
This occurs even if proxy1 is down until server marks it down and triggers agents failover between proxy servers. Now agents are seeing jobs scheduled for them and monitoring data arrives via proxy2.
Proxy1 comes back online. At some point Zabbix Server redistributes agents between proxies, but agents themselves will be still connected to "wrong" proxy2 as for them there is no reason to fail over as the connection to proxy2 is not interrupted. And again no monitoring data arrives.
Result:
No monitoring data arrives.
Expected:
After proxy failover all 3 components: server, proxy(ies) and active agent(s) should be able to agree which proxy server in this proxy group is correct for this active agent.
I think that at least in theory should be relatively easy fix. The "wrong" proxy, where agent is connected to, actually can tell to agent which one of proxies in the same group is correct for this agent and redirect it back to it. After that agent can continue to communicate to correct proxy. Or this "wrong" proxy can tell to the agent that "i'm not your proxy", and after that agent can take next from the list until it encounters "correct" proxy.