diff options
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/check_ifoperstatus.pl | 145 | ||||
-rw-r--r-- | contrib/check_ifstatus.pl | 178 |
2 files changed, 0 insertions, 323 deletions
diff --git a/contrib/check_ifoperstatus.pl b/contrib/check_ifoperstatus.pl deleted file mode 100644 index 3f21cddd..00000000 --- a/contrib/check_ifoperstatus.pl +++ /dev/null @@ -1,145 +0,0 @@ -#!/usr/bin/perl -w -# -# check_ifoperstatus.pl - nagios plugin -# -# -# -# -# Copyright (C) 2000 Christoph Kron -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# -# Report bugs to: ck@zet.net -# -# 11.01.2000 Version 1.0 - -use strict; - -use Net::SNMP; -use Getopt::Long; -&Getopt::Long::config('auto_abbrev'); - - -my $status; -my $TIMEOUT = 15; - -my %ERRORS = ('UNKNOWN' , '-1', - 'OK' , '0', - 'WARNING', '1', - 'CRITICAL', '2'); - -my %ifOperStatus = ('1','up', - '2','down', - '3','testing', - '4','unknown', - '5','dormant', - '6','notPresent'); - -my $state = "UNKNOWN"; -my $answer = ""; -my $snmpkey = 1; -my $community = "public"; -my $port = 161; -my @snmpoids; -my $snmpIfOperStatus; -my $snmpLocIfDescr; -my $hostname; -my $session; -my $error; -my $response; - - -sub usage { - printf "\nMissing arguments!\n"; - printf "\n"; - printf "Perl Check IfOperStatus plugin for Nagios\n"; - printf "checks operational status of specified interface\n"; - printf "usage: \n"; - printf "ifoperstatus.pl -k <IF_KEY> -c <READCOMMUNITY> -p <PORT> <HOSTNAME>"; - printf "\nCopyright (C) 2000 Christoph Kron\n"; - printf "check_ifoperstatus.pl comes with ABSOLUTELY NO WARRANTY\n"; - printf "This programm is licensed under the terms of the "; - printf "GNU General Public License\n(check source code for details)\n"; - printf "\n\n"; - exit $ERRORS{"UNKNOWN"}; -} - -# Just in case of problems, let's not hang Nagios -$SIG{'ALRM'} = sub { - print ("ERROR: No snmp response from $hostname (alarm)\n"); - exit $ERRORS{"UNKNOWN"}; -}; -alarm($TIMEOUT); - - -$status = GetOptions("key=i",\$snmpkey, - "community=s",\$community, - "port=i",\$port); -if ($status == 0) -{ - &usage; -} - - #shift; - $hostname = shift || &usage; - - ($session, $error) = Net::SNMP->session( - -hostname => $hostname, - -community => $community, - -port => $port - ); - - if (!defined($session)) { - $state='UNKNOWN'; - $answer=$error; - print ("$state: $answer"); - exit $ERRORS{$state}; - } - - $snmpIfOperStatus = '1.3.6.1.2.1.2.2.1.8' . "." . $snmpkey; - $snmpLocIfDescr = '1.3.6.1.4.1.9.2.2.1.1.28' . "." . $snmpkey; - - - push(@snmpoids,$snmpIfOperStatus); - push(@snmpoids,$snmpLocIfDescr); - - if (!defined($response = $session->get_request(@snmpoids))) { - $answer=$session->error; - $session->close; - $state = 'CRITICAL'; - print ("$state: $answer,$community,$snmpkey"); - exit $ERRORS{$state}; - } - - $answer = sprintf("host '%s',%s(%s) is %s\n", - $hostname, - $response->{$snmpLocIfDescr}, - $snmpkey, - $ifOperStatus{$response->{$snmpIfOperStatus}} - ); - - $session->close; - - if ( $response->{$snmpIfOperStatus} == 1 ) { - $state = 'OK'; - } - else { - $state = 'CRITICAL'; - } - -print ("$state: $answer"); -exit $ERRORS{$state}; - diff --git a/contrib/check_ifstatus.pl b/contrib/check_ifstatus.pl deleted file mode 100644 index a7ab39ec..00000000 --- a/contrib/check_ifstatus.pl +++ /dev/null @@ -1,178 +0,0 @@ -#!/usr/bin/perl -w -# -# check_ifstatus.pl - nagios plugin -# -# -# Copyright (C) 2000 Christoph Kron -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# -# Report bugs to: ck@zet.net -# -# 11.01.2000 Version 1.0 - -use strict; - -use Net::SNMP; -use Getopt::Long; -&Getopt::Long::config('auto_abbrev'); - - -my $status; -my $TIMEOUT = 1500; - -my %ERRORS = ('UNKNOWN' , '-1', - 'OK' , '0', - 'WARNING', '1', - 'CRITICAL', '2'); - -my %ifOperStatus = ('1','up', - '2','down', - '3','testing', - '4','unknown', - '5','dormant', - '6','notPresent'); - -my $state = "UNKNOWN"; -my $answer = ""; -my $snmpkey; -my $snmpoid; -my $key; -my $community = "public"; -my $port = 161; -my @snmpoids; -my $snmpIfAdminStatus = '1.3.6.1.2.1.2.2.1.7'; -my $snmpIfDescr = '1.3.6.1.2.1.2.2.1.2'; -my $snmpIfOperStatus = '1.3.6.1.2.1.2.2.1.8'; -my $snmpLocIfDescr = '1.3.6.1.4.1.9.2.2.1.1.28'; -my $hostname; -my $session; -my $error; -my $response; -my %ifStatus; -my $ifup =0 ; -my $ifdown =0; -my $ifdormant = 0; -my $ifmessage; - -sub usage { - printf "\nMissing arguments!\n"; - printf "\n"; - printf "Perl Check IfStatus plugin for Nagios\n"; - printf "monitors operational status of each interface\n"; - printf "usage: \n"; - printf "check_ifstatus.pl -c <READCOMMUNITY> -p <PORT> <HOSTNAME>\n"; - printf "Copyright (C) 2000 Christoph Kron\n"; - printf "check_ifstatus.pl comes with ABSOLUTELY NO WARRANTY\n"; - printf "This programm is licensed under the terms of the "; - printf "GNU General Public License\n(check source code for details)\n"; - printf "\n\n"; - exit $ERRORS{"UNKNOWN"}; -} - -# Just in case of problems, let's not hang Nagios -$SIG{'ALRM'} = sub { - print ("ERROR: No snmp response from $hostname (alarm)\n"); - exit $ERRORS{"UNKNOWN"}; -}; -alarm($TIMEOUT); - - -$status = GetOptions("community=s",\$community, - "port=i",\$port); -if ($status == 0) -{ - &usage; -} - - #shift; - $hostname = shift || &usage; - - - - push(@snmpoids,$snmpIfOperStatus); - push(@snmpoids,$snmpLocIfDescr); - push(@snmpoids,$snmpIfAdminStatus); - push(@snmpoids,$snmpIfDescr); - -foreach $snmpoid (@snmpoids) { - - ($session, $error) = Net::SNMP->session( - -hostname => $hostname, - -community => $community, - -port => $port - ); - - if (!defined($session)) { - $state='UNKNOWN'; - $answer=$error; - print ("$state: $answer"); - exit $ERRORS{$state}; - } - - if (!defined($response = $session->get_table($snmpoid))) { - $answer=$session->error; - $session->close; - $state = 'CRITICAL'; - print ("$state: $answer,$community,$snmpkey"); - exit $ERRORS{$state}; - } - - foreach $snmpkey (keys %{$response}) { - $snmpkey =~ /.*\.(\d+)$/; - $key = $1; - $ifStatus{$key}{$snmpoid} = $response->{$snmpkey}; - } - $session->close; -} - - foreach $key (keys %ifStatus) { - # check only if interface is administratively up - if ($ifStatus{$key}{$snmpIfAdminStatus} == 1 ) { - if ($ifStatus{$key}{$snmpIfOperStatus} == 1 ) { $ifup++ ;} - if ($ifStatus{$key}{$snmpIfOperStatus} == 2 ) { - $ifdown++ ; - $ifmessage .= sprintf("%s: down -> %s<BR>", - $ifStatus{$key}{$snmpIfDescr}, - $ifStatus{$key}{$snmpLocIfDescr}); - - } - if ($ifStatus{$key}{$snmpIfOperStatus} == 5 ) { $ifdormant++ ;} - } - } - - - if ($ifdown > 0) { - $state = 'CRITICAL'; - $answer = sprintf("host '%s', interfaces up: %d, down: %d, dormant: %d<BR>", - $hostname, - $ifup, - $ifdown, - $ifdormant); - $answer = $answer . $ifmessage . "\n"; - } - else { - $state = 'OK'; - $answer = sprintf("host '%s', interfaces up: %d, down: %d, dormant: %d\n", - $hostname, - $ifup, - $ifdown, - $ifdormant); - } - -print ("$state: $answer"); -exit $ERRORS{$state}; - |