[ZBX-4332] Zabbix Proxy via stunnel fails to detect connection errors with the Zabbix Server Created: 2011 Nov 08 Updated: 2017 May 30 Resolved: 2012 Feb 20 |
|
Status: | Closed |
Project: | ZABBIX BUGS AND ISSUES |
Component/s: | Proxy (P) |
Affects Version/s: | 1.8.5 |
Fix Version/s: | None |
Type: | Incident report | Priority: | Critical |
Reporter: | dazman | Assignee: | Unassigned |
Resolution: | Won't fix | Votes: | 0 |
Labels: | None | ||
Remaining Estimate: | Not Specified | ||
Time Spent: | Not Specified | ||
Original Estimate: | Not Specified | ||
Environment: |
CentOS, stunnel |
Description |
When Zabbix Proxy sends data back to the Zabbix Server via stunnel, if the stunnel connection fails to the server, Zabbix Proxy still thinks that the data has been sent. As such, data is lost during connectivity issues between the stunnel client and the stunnel server. The ids in the ids table on the Proxy also keeps incrementing even if stunnel is reporting "connection reset by peer", with 0 bytes sent. It can be seen in the stunnel logs that Zabbix keeps sending data through stunnel, in line with the items Interval. Without stunnel, it seems Proxy detects a connectivity issue, and waits a while before trying again - it doesn't just keep trying to send individual items back. Once the connection is back up, it logs "Connection restored.". You don't get that when going over stunnel. This could be due to that the Proxy is always able to connect to the TCP port stunnel is forwarding - it's running on the same box. The problem is, if the stunnel part fails, Proxy doesn't detect that the Zabbix server didn't get the data, and carries on as if it has. |
Comments |
Comment by Alexei Vladishev [ 2012 Feb 20 ] |
I am not sure it is Zabbix issue. I believe stunnel should emulate normal TCP behavior. |
Comment by dazman [ 2012 Apr 03 ] |
It seems Zabbix Proxy sends data as soon as it gets a connection to whatever Server/ServerPort is set to. Usually this is fine, but, stunnel always allows a connection, if the server side is up or not. I think we would need some checking by the proxy to ensure that the server is responding before sending the data. Is there any checking done by the Proxy beyond the initial connect()? Thanks. |
Comment by richlv [ 2013 Apr 19 ] |
this probably happened because proxy treats certain network errors as... success. see |