What is the right way to monitor agent status? I want to be able to see whether agent is running or not. agent.ping
item only shows if agent is Up, but it doesn't switch to Down. Simple check icmpping
seems to behave the same way.
Best Answer
The best way to monitor agent.ping
is via triggers, and for that item you would use the nodata()
trigger function (the default template already does that.
The icmpping
item actually returns 1 when the host is reachable via ICMP ping, and 0 when not (but that's not really monitoring the agent).
If you want to see up/down in the item itself, you could monitor agent TCP port (10050 by default) with item like net.tcp.service
- but using a trigger on agent.ping would be the recommended way still.
Instead of monitoring the port, you can have from version 2+ the internal Zabbix checks which stores the 0 and 1 values each time, not like agent.ping which only stores the value 1 (the main reason why you do not get a "Down" message).
https://www.zabbix.com/documentation/3.2/manual/config/items/itemtypes/internal
Key that you need is zabbix[host,agent,available] and the item type should be "Zabbix internal" instead of "Zabbix agent".