If using Zabbix with mysql innodb, Zabbix proxy stop to send data to Zabbix server in particular situation.
In particular situation, "id" in "proxy_history" table is reset to 1, though "ids" table has incremented number.
So, Zabbix proxy stop to send data untill "id" in "proxy_history" become bigger than the number in "ids" table.
The reason of why it is reset to 1 is following.
Why it occurs:
"id" in "proxy_history" table has "auto_increment" attribute.
Usually, the table keeps the incremented number.
But if there is no data in the table and if you restart the mysql process, it is reset to 1.
"If the table is empty, InnoDB uses the value 1."
How to reproduce:
(1.) stop zabbix server process and zabbix proxy process
(2.) leave them ProxyOfflineBuffer hours. (default is 1 hour) Or change system time by "date" command.
(3.) start zabbix proxy process (housekeeper delete all data in "proxy_history" table)
(4.) stop zabbix proxy process
(5.) restart zabbix proxy's mysql process (mysql losts the incremented number of "id" in "proxy_history" table)
(6.) start zabbix server process and zabbix proxy process
Then, "id" in "proxy_history" table is reset to 1 and you cannot get data from proxy.
How to fix:
idea1: On starting zabbix proxy, if "proxy_history" table has no data, get incremented id from "ids" table and set AUTO_INCREMENT by "ALTER TABLE"
"ALTER TABLE proxy_history AUTO_INCREMENT = 100"
idea2: Avoid to delete all data in housekeeper process.
I think idea1 is better.