Zabbix 2.0 low level discovery – SNMP

Zabbix 2.0 makes it easy to add network devices, file systems, and SNMP devices for monitoring.  They call their new method low-level discovery and I will show you how I set it up so you can quickly start monitoring your environment.

I first showed you how to set up low-level discovery for file systems  and network interfaces.  Today, you’ll see how to set it up for SNMP.

Low level discovery of SNMP is a huge improvement over how you managed SNMP capable devices in previous Zabbix releases.  It makes monitoring SNMP devices so much easier and accounts for dynamic attributes with minimal modifications.

There are still some improvements to LLD for SNMP that need to be made but this new feature is seeing a lot of activity in the Zabbix forums so I’m hopeful that the Zabbix team will address them soon.

SNMP Discovery Rules

The easiest way to get started and to learn about low level discovery for SNMP devices is to grab a few templates from the Zabbix Appliance build.  I only recently discovered this virtual image of a fully functioning test zabbix server.  This pre-built Zabbix server can be quickly spun up on your hypervisor of choice for testing.

To make it even easier for you, here are the templates downloaded from the most recent appliance build.


Import these templates through your Zabbix UI under Configuration, Templates, Import and then link Template_SNMP_Generic and Template_SNMP_Interfaces to Template_SNMP_Device.  The idea is to add a single template (Template_SNMP_Device) to every host you want to have those items, triggers, graphs, etc.

LLD SNMP Template Screen

A time saving template trick I do is to create a template for each of my SNMP community strings and then link the Template_SNMP_Device to those community name templates.  That way you can use a {$SNMP_COMMUNITY} macro in each template to set the community string across many hosts easily.

The Zabbix Appliance SNMP templates use a combination of low level discovery and special OIDs to create a template that can provide some pretty good system and network information for most SNMP devices right out of the box.

For example, one template provides me with the following info for most SNMP devices this template is assigned to.  This information is provided for every interface discovered by the template rules.

  • Admin Status
  • Description
  • Inbound errors
  • incoming traffic
  • interface name
  • operational status
  • outbound errors
  • outgoing traffic

It’s nice to link one template to a network device and instantly have monitoring of dynamic interfaces almost immediately with no changes to the templates.

General SNMP Configuration

Using these example templates as guides I’ve created additional templates for other SNMP devices.  One thing you will likely encounter is the need to add MIBs to your Zabbix server for SNMP devices so that you can use human readable names as opposed to all numeric OIDs.  This is pretty straight forward.

First, check where your MIBs are located (most likely /usr/share/snmp/mibs, on CentOS/RHEL anyway):

net-snmp-config --default-mibdirs

Copy your MIB files to the location specified as your default mibdir

Add a reference to your new MIB files in /etc/snmp/snmp.conf in the format


where NEW-SNMP-DEVICE comes from the first line of your MIB file.


Now you should be able to use a textual representation of your OID in your Zabbix items, etc.  The net-snmp page has a lot more information on this.

That’s it for now.  This should be enough info to make you dangerous…  I’ll add more as I do more with SNMP low level discovery.

Let me know if this helps you out or if you have any questions and if you know of a better file sharing site than filefactory, let me know. It’s kinda clunky and very slow. It was a quick decision and I would like something better for getting those files to you.

6 Comments on “Zabbix 2.0 low level discovery – SNMP”

  1. Jairo Rodriguez says:

    Hello Chris.

    I am new in Zabbix, and I would like to get my box already to monitor some servers and network device such as Cisco router and switches, I will be thank that you can make a tutorial with more details like printscreen, my problem is more with the network device that uses SNMP and have differents Community Strings.

    Sorry my bad english.
    Best Regards

    • Jairo Rodriguez says:

      One more thing :

      The files that you uploaded not longer exist.
      Sorry, this file is no longer available. It may have been deleted by the uploader, or has expired.

    • Chris says:


      Sorry for the late reply. I have created a community string specific template and then linked the SNMP_Device template to that new template. That way you can set a macro for {$SNMP_COMMUNITY} in the community string template and assign that to multiple hosts without needing to change the SNMP_Device template.

      For example, create something like this:

      c_Template_SNMP_community_STRING1 – put one of your community strings in as {$SNMP_COMMUNITY} macro
      c_Template_SNMP_community_STRING2 – put another one of your community strings in as {$SNMP_COMMUNITY} macro

      In each one of these templates link to the c_Template_SNMP_Device template. Then you simply add each device to one template depending on its community string.

      I hope this helps.

  2. Keith says:

    I understand the concept of what you are talking about, but I don’t know where the macro lives. It’s not making sense to me.

    • Chris says:

      The macros are created under ‘Configuration’, ‘Templates’, select your template, and select the ‘Macros’ tab.

      Enter {$SNMP_COMMUNITY} in the ‘Macro’ field and your community string in the ‘value’ field, save and you are done.

      Start adding hosts to the SNMP community string template

      Let me know if this still doesn’t answer your question.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s