From: Ethan Galstad Date: Tue, 16 Jul 2002 04:13:21 +0000 (+0000) Subject: Christoph Maser's plugin to check disk usage via SNMP3 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=43e09d6326c4b4f5beec3d40dc27369a7b6ce64c;p=nagiosplug.git Christoph Maser's plugin to check disk usage via SNMP3 git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@65 f882894a-f735-0410-b71e-b25c423dba1c --- diff --git a/contrib/check_disk_snmp.pl b/contrib/check_disk_snmp.pl new file mode 100644 index 0000000..96862e1 --- /dev/null +++ b/contrib/check_disk_snmp.pl @@ -0,0 +1,62 @@ +#!/usr/bin/perl +# cm@financial.com 07/2002 +use strict; +use Net::SNMP; + +if ($#ARGV ne 3) { + print "Worng number of Arguments\n"; + exit 1; +} + + +my ($host, $device, $warnpercent, $errpercent) = @ARGV; +if ($warnpercent >= $errpercent) { + print "Errorratio must be higher then Warnratio!\n"; + exit 1; +} + +my ($session, $error) = Net::SNMP->session( + -hostname => $host, + -nonblocking => 0x0, + -username => 'XXXXX', + -authpassword => 'XXXXXXXX', + -authprotocol => 'md5', + -version => '3', + ); + +if ($@) { + print "SNMP-Error occured"; + exit 1; +} +my $result=undef; + + +my $deviceSize=".1.3.6.1.2.1.25.2.3.1.5.$device"; +my $deviceUsed=".1.3.6.1.2.1.25.2.3.1.6.$device"; +#my $deviceName=".1.3.6.1.2.1.25.3.7.1.2.1536.$device"; +my $deviceName=".1.3.6.1.2.1.25.2.3.1.3.$device"; +my @OID=($deviceSize, $deviceUsed, $deviceName); +$result = $session->get_request( + -varbindlist => \@OID, + ); + +if (!defined($result)) { + printf("ERROR: %s.\n", $session->error); + $session->close; + exit 1; +} + +my $ratio=$result->{$deviceUsed}*100/$result->{$deviceSize}; + +if ($ratio > $errpercent){ + printf("CRITICAL: %s usage %.2f%%\n", $result->{$deviceName}, $ratio); + exit 2; +} +if ($ratio > $warnpercent){ + printf("WARNING: %s usage %.2f%%\n", $result->{$deviceName}, $ratio); + exit 1; +} + +printf("OK: %s usage %.2f%%\n", $result->{$deviceName}, $ratio); +exit 0; +