SNMP

check_snmpv2.pl

Description:

Script is used to check values of snmp enabled devices, such as Brocade switches, IBM Blade Chassis, Cisco devices…etc.

I added option for port. Added output to the first line if there is a critical or warning and a counter for number of checks OK.

Current Version

1.7.0

Last Release Date

2012-01-13

Compatible With

  • Nagios 3.x
  • Nagios 4.x
  • Nagios XI

Owner

License

GPL


Project Files
Project Photos
Project Notes
USAGE: check_snmp.pl -H hostname -C community -p port -V version -t Title -O label:oid:warn:crit:[(l)less than | (g)greater than]:[(a)text|(n)number You can enter multiple oid's, but the format MUST be ( label:oid:warn:crit:g:n,label:oid:warn:crit:l:a,... ),comma seperated. Example (IBM Blade Chassis Voltages): check_snmp.pl -H testbc -C public -p 161 -V 1 -t TESTBC_volt -O plus5:.1.3.6.1.4.1.2.3.51.2.2.2.1.1.0:4:3:l:n,plus3.3:.1.3.6.1.4.1.2.3.51.2.2.2.1.2.0:3:2.6:l:n,plus12:.1.3.6.1.4.1.2.3.51.2.2.2.1.3.0:11:10.5:l:n,minus5:.1.3.6.1.4.1.2.3.51.2.2.2.1.5.0:-4:-3.7:g:n,plus2.5:.1.3.6.1.4.1.2.3.51.2.2.2.1.6.0:2.2:2:l:n,plus1.8:.1.3.6.1.4.1.2.3.51.2.2.2.1.8.0:1.5:1.2:l:n TESTBC_volt Status OK: minus5 = -4.93 OK: plus2.5 = 2.48 OK: plus1.8 = 1.76 OK: plus3.3 = 3.26 OK: plus5 = 4.84 OK: plus12 = 11.78 | minus5=-4.93;-4;-3.7;0; plus2.5=2.48;2.2;2;0; plus1.8=1.76;1.5;1.2;0; plus3.3=3.26;3;2.6;0; plus5=4.84;4;3;0; plus12=11.78;11;10.5;0; Example (Text Based Check value): check_snmp.pl -H intbc -C public -p 161 -V 1 -t TESTBC_DIMM11 -O DIMM:.1.3.6.1.4.1.2.3.51.2.2.8.2.2.1.4.112:DIMM:dimm:x:a TESTBC_DIMM11 Status CRITICAL: DIMM = "DIMM 11" | Nagios Command Definition: define command{ command_name check_snmpv2 command_line $USER1$/check_snmp.pl -H $HOSTNAME$ -C $ARG1$ -p 161 -V $ARG2$ -t $ARG3$ -O $ARG4$ }
Reviews (3) Add a Review
Working as documented except for the less and greater triggers
by RedFish, February 28, 2014
I had to modify the operators at lines 71,77,89 and 95 because they were "greater or equal" and "less or equal" instead of simply ">" or "Something I missed was the possibility to use directly textual MIB instead of the numeric OID, I saw that by using NetSNMP::OID it should be possible but did not have the time to try.
Helpful? Yes  No 
"use strict" blues
by rafamiga, December 31, 2012
I've patched the plugin to work with pragma "use strict" which apparently my Nagios3 uses...

Here's the patch:

http://orfika.net/src/check_snmpv2.pl.patch
Helpful? Yes  No 
Why?
by willix, January 31, 2012
I don't want to discourage you (and starting like this is a good way to get some practice writing nagios plugins) but why are you writing this? Your script is not really a perl plugin because it relies on retrieving SNMP with external command. As such its just a wrapper and we already have check_snmp included with nagios plugin, written purely in C, and that can retrieve data from multiple SNMP OIDs and compare values. There is also at least one other alternative check_snmp (which is faster but does not work with SNMP v3), just look around exchange.

And if you want temperature I recommend you just download check_snmp_temperature.pl. Take a look at how its code too to learn how to write nagios plugins in Perl that retrieve data by SNMP. Then consider what is needed for your setup and write a new perl plugin (if it does not already exist) that you'd be proud of.
Owner's Reply:

Yeah, I've been writing plugins for nagios/netsaint for over a decade now.

There are lots of plugin scripts out there that are wrappers. And most scripts that utilize protocols, need to wrap themselves around libraries.

The check_snmp plugin does not take into consideration the output a device will generate. It is not that good, but a good start for most people.

I have seen lots of scripts which give you this output, or that output, but never one I can ask for whatever output I am looking for. So I wrote script that is easy enough to do just that. I can use this script to check every OID on any any device, and out put the data so it is useful for performance data or not.

Yes, I am proud of all of my code. Because I wrote it, and it works, and it is simple to understand and expand upon.


0 of 1 found this review helpful.
Helpful? Yes  No 1
Add a Review

You must be logged in to submit a review.

Thank you for your review!

Your review has been submitted and is pending approval.

Recommend

To:


From:


Thank you for your recommendation!

Your recommendation has been sent.

Project Stats
Rating
3.7 (3)
Favorites
1
Views
151,744