We are monitoring a lot of Java Virtual Machines. All monitored servers have a java agent deployed which requests local MBean data and sends it back to the Zabbix server. Until now we have checked the availability via a noData() Trigger on one of the JMX items. This works good as long as the server does not queue items. If this is the case and the queue is growing the item which is the foundation for the trigger does not get called. In this case the trigger value becomes true and an alert is raised. Since the trigger is part of a template assigned to all JVMs we have a lot of false alerts.
Who knows a clever way to check the availability without using the zabbix agent? The trigger looks like this:
<expression>{{HOSTNAME}:jmx[java.lang:type=Runtime][Uptime].nodata(600)}=1</expression>
So if the item jmx[java.lang:type=Runtime][Uptime] does not get called in 600s (due to queueing of items in zabbix queue) the alert is thrown. Using the count(600,1) function does not help as well - same problem.
Who knows a clever way to check the availability without using the zabbix agent? The trigger looks like this:
<expression>{{HOSTNAME}:jmx[java.lang:type=Runtime][Uptime].nodata(600)}=1</expression>
So if the item jmx[java.lang:type=Runtime][Uptime] does not get called in 600s (due to queueing of items in zabbix queue) the alert is thrown. Using the count(600,1) function does not help as well - same problem.
Comment