Zabbix is capable of monitoring SNMP-capable devices, and even displays their status in its web interface:

SNMP is up
The green icon indicates that Zabbix is receiving data.

SNMP is down
The red icon indicates that Zabbix is not receiving data.

However, I can't find any obvious way to have Zabbix notify me if an SNMP device has become unavailable.

Today I found one of my servers had run out of disk space; the disk was being monitored by SNMP, but Zabbix hadn't received any data since December 15th! For all that time it was showing this red icon but I never had reason to view the host list in that time and thus I missed it. Until today when the server died due to running out of disk space and my phone rang in the middle of dinner...

On investigation I found, of course, that snmpd is stopped. I would have liked to have been notified of this two months ago!

Shouldn't Zabbix generate an event when this happens? The Zabbix manual mentions nothing about it. And Google only wants to tell me how to monitor specific OIDs. How do I get notified when an SNMP device is simply not responding?

The obvious approach is to create a trigger, though I have no idea what item name this data point might have (again, it's not in the manual or apparent from Google).

The server is Zabbix 2.0.9 and I am using its built-in Template SNMP Disks template.


You can setup a trigger prototype using the "nodata" function.

You'll need to pick an item that will be in all the monitored systems.

Using Device Name (OID: SNMPv2-MIB::sysName.0, key: sysName) in the Template SNMP Generic as an example, you could create a trigger with an expression such as:

{Template SNMP Generic:sysName.nodata(5m)}=1

This would fire when there is no response for this item for five minutes.

| improve this answer | |
  • This doesn't seem quite as clean as simply making use of whatever Zabbix is doing internally, but in the absence of anything else, it is what I'm going with. – Michael Hampton Feb 19 '14 at 17:03
  • It's better to use {Template SNMP Generic:sysUpTime.nodata(5m)}=1, because, by default sysName is refreshed only once in an hour – GioMac Nov 19 '15 at 14:36

Since Zabbix 2.4, you can use Internal Checks

In your case, you should use this : zabbix[host,,available]

Changing for snmp.

Add an Internal Check iten to your host or template, and a trigger to check if it's unavaiable (0) or available (1).

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.