From 5508e60112dad4e30300d807442c7e9795acf1fe Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Fri, 20 Sep 2013 15:18:53 +0200 Subject: add nagios-plugin output --- check_snmp_switch_traffic.pl | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/check_snmp_switch_traffic.pl b/check_snmp_switch_traffic.pl index be6bbcf..2b832be 100755 --- a/check_snmp_switch_traffic.pl +++ b/check_snmp_switch_traffic.pl @@ -21,7 +21,7 @@ sub snmp_walk($$$) { my $results = $session->get_next_request( -varbindlist => [ $oid ] ); - return unless $results; + nagios_die($session->error()) unless $results; foreach my $result (keys %{ $results }) { return unless index($result, "${start}.") eq 0; @@ -92,13 +92,20 @@ sub get_info ($$) { } } else { - print $session->error(); + nagios_die($session->error()); } } return $IFACES; } +sub nagios_die ($) { + my $err = shift; + $err = "Unknown error" unless defined $err; + print "SNMP UNKNOWN - $err\n"; + exit 3; +} + my $host; my $port = 161; my $community = 'public'; @@ -118,17 +125,18 @@ my ($session, $err) = Net::SNMP->session( -port => $port, -community => $community ); -die "[ERROR] $err\n" unless defined $session; +nagios_die($err) unless defined $session; my $IFACES = get_ifaces($session); get_info($session, $IFACES); +$session->close(); +print "SNMP OK |"; foreach my $key (sort {$a <=> $b} keys %{ $IFACES }) { - printf "%s(in)=%s; %s(out)=%s; ", $IFACES->{$key}{'name'}, $IFACES->{$key}{'in'}, $IFACES->{$key}{'name'}, $IFACES->{$key}{'out'}; + printf " %s(in)=%sc; %s(out)=%sc;", $IFACES->{$key}{'name'}, $IFACES->{$key}{'in'}, $IFACES->{$key}{'name'}, $IFACES->{$key}{'out'}; } print "\n"; - -$session->close(); +exit 0; __END__ -- cgit v1.2.3-1-g7c22