Nagios SNMP Plugins

1.2 GPL (GNU General Public License)    
3.2/5 21
Nagios SNMP Plugins package contains two plugins to be used with Nagios.




Nagios SNMP Plugins package contains two plugins to be used with Nagios. They should still work with NetSaint, but as this is now really ancient, I don't support Netsaint any longer. You also need the Net SNMP Daemon in a reasonable new version.


What can these plugins do?

NET-SNMP gives you an unique feature: It makes checks for running processes and/or disk size configurable in the SNMP daemon and queryable via SNMP. So you can do

proc syslogd
proc klogd

disk / 5%
disk /usr 10%

in your snmpd.local.conf and have the snmp daemon check that you always have free space on your root and usr file system and that you have syslogd and klogd processes running.

Querying this from a monitoring tool however, is very cumbersome. You need to check what disks are there, then query error status.

These two plugins do all the work for you.

Where do the plugins run?

Well, on Linux. That's where I wrote them. They should compile on any other *x like Operating system, too. If you get them to compile, please let me know.

I compiled and tested these plugins on

RedHat Linux 9
Fedora Core 1,3-6
RedHat Enterprise Linux 3-5
CentOS 5

using various nagios versions between 1.2 and 2.9.
Users reported success on various SuSE Linux and SLES versions. Compilation on *BSD seems to be possible if you have a GNU getline library.

How do I build and install?

Unpack the distribution.


automake --add-missing

or simply


You should now have two binaries: check_snmp_disk and check_snmp_proc.

Copy them into your Nagios plugins directory.

How do I configure the plugins?

Using Nagios there are two ways to configure the plugins:

The old way: add the following two lines to your /etc/nagios/command.cfg:

command[check_snmp_disk]=/usr/lib/nagios/plugins/check_snmp_disk -H $HOSTADDRESS$ -C $ARG1$
command[check_snmp_proc]=/usr/lib/nagios/plugins/check_snmp_proc -H $HOSTADDRESS$ -C $ARG1$

Replace /usr/lib/nagios/plugins/ with the directory where you copied the binaries!

The new way: add the following lines to your /etc/nagios/checkcommands.cfg:

# 'check_snmp_disk' command definition
define command {
command_name check_snmp_disk
command_line $USER1$/check_snmp_disk -H $ARG1$ -C $USER3$

# 'check_snmp_proc' command definition
define command {
command_name check_snmp_proc
command_line $USER1$/check_snmp_proc -H $ARG1$ -C $USER3$

The Community password should be defined in your resources.cfg config file. If you don't use $USER3$, adjust the definition above.

How do I use the plugins?

First, select something to check. You find a detailed description in man snmpd.conf(5).

I, e.g. use (in /etc/snmpd/snmpd.local.conf under RedHat/Fedora):

# SNMP checked disks
disk / 5%
disk /usr 5%
disk /var 10%
disk /boot 1%
disk /mnt/disk0 10%
# SNMP checked Processes
proc crond
proc ntpd
proc sshd
proc syslogd
proc klogd

Which assures that my disks do not fill up and that I have the most important processes running on my boxes.

You need a configured snmpd with at least a read community configured.

Now try your configuration: Run the disk plugin manually:

check_snmp_disk -H host to check -C community

It should report either

Checked xxx disks. and a return code of 0 if everything is fine (xxx should be the number of disks configured in the snmp.local.conf file),


< diskname >: less than xxx% free (= yyy%) (devicename) and a return code of 2 if there is a problem (diskname and devicename depend on the disk, xxx is the threshold configured and yyy is the actual free space).

The same testing can be done with the check_snmp_proc plugin.
Now configure your monitor program to monitor a host (in hosts.cfg):

The old way:


where community is your read-community from above) and you are set. The ;0;24x7;3;5;1;admins;120;24x7;1;1;0;; parameters should be adjusted to match your configuration.

The new way:

# Service definition
define service {
use generic-service

host_name myhost
service_description Disk Space
check_command check_snmp_disk!myhost

# Service definition
define service {
use generic-service

host_name myhost
service_description Running processes
check_command check_snmp_proc!myhost

You should replace myhost with your host.

What's New in This Release:

This release adds an '-l' option to list checked disks and processes in the output.
Last updated on January 27th, 2008

0 User reviews so far.