From 41b8a926e1da58d33622369dfe767b7ff50fccd4 Mon Sep 17 00:00:00 2001 From: Mat Sugumaran Date: Wed, 27 Jun 2007 14:41:38 +0000 Subject: [PATCH] @NAGIOS_PLUGINS@ macro added git-svn-id: http://svn.centreon.com/Plugins/Dev@2544 6bcd3966-0018-0410-8128-fd23d134de7e --- .../src/check_centreon_dell_temperature | 8 +- centreon-plugins/src/check_centreon_http | 20 +- .../{check_https.pl => check_centreon_https} | 0 centreon-plugins/src/check_centreon_nt | 8 +- centreon-plugins/src/check_centreon_ping | 4 +- .../src/check_centreon_radware_cpu | 2 +- .../src/check_centreon_snmp_loadaverage | 2 +- ...gmatch.pl => check_centreon_snmp_logmatch} | 4 +- .../src/check_centreon_snmp_process | 4 +- .../src/check_centreon_snmp_process_detailed | 4 +- .../src/check_centreon_snmp_remote_storage | 4 +- ... check_centreon_snmp_tcp_port_connections} | 6 +- .../src/check_centreon_snmp_traffic | 4 +- .../src/check_centreon_snmp_uptime | 6 +- .../src/check_centreon_snmp_value | 4 +- centreon-plugins/src/check_centreon_tcp | 5 +- centreon-plugins/src/check_meta_service.pl | 6 +- centreon-plugins/src/check_nt_centreon | 2 +- .../src/check_oreon_snmp_traffic.pl | 453 ------------------ centreon-plugins/src/check_snmp_mem.pl | 1 - 20 files changed, 43 insertions(+), 504 deletions(-) rename centreon-plugins/src/{check_https.pl => check_centreon_https} (100%) rename centreon-plugins/src/{check_snmp_logmatch.pl => check_centreon_snmp_logmatch} (95%) rename centreon-plugins/src/{check_tcp_con.pl => check_centreon_snmp_tcp_port_connections} (93%) delete mode 100644 centreon-plugins/src/check_oreon_snmp_traffic.pl diff --git a/centreon-plugins/src/check_centreon_dell_temperature b/centreon-plugins/src/check_centreon_dell_temperature index 624b09a29..a98d92c4c 100644 --- a/centreon-plugins/src/check_centreon_dell_temperature +++ b/centreon-plugins/src/check_centreon_dell_temperature @@ -1,12 +1,12 @@ #! /usr/bin/perl -w # -# $Id: check_graph_dell_temperature.pl,v 1.1 2005/07/27 22:22:48 wistof Exp $ +# $Id: check_graph_dell_temperature,v 1.4 2005/07/27 22:22:48 wistof Exp $ # # Oreon's plugins are developped with GPL Licence : # http://www.fsf.org/licenses/gpl.txt # Developped by : Wistof # -# Modified for Oreon Project by : Mathieu Chateau - Christophe Coraboeuf +# Modified for Oreon Project by : Mathieu Chateau - Christophe Coraboeuf - Sugumaran Mathavarajan # # The Software is provided to you AS IS and WITH ALL FAULTS. # OREON makes no representation and gives no warranty whatsoever, @@ -16,8 +16,6 @@ # In no event will OREON be liable for any direct, indirect, punitive, special, # incidental or consequential damages however they may arise and even if OREON has # been previously advised of the possibility of such damages. - -# based on "graph plugins" developped by Oreon Team. See http://www.oreon.org. ## ## Plugin init ## @@ -25,7 +23,7 @@ use strict; use Net::SNMP qw(:snmp oid_lex_sort); use FindBin; use lib "$FindBin::Bin"; -use lib "/srv/nagios/libexec"; +use lib "@NAGIOS_PLUGINS@"; use utils qw($TIMEOUT %ERRORS &print_revision &support); if (eval "require oreon" ) { diff --git a/centreon-plugins/src/check_centreon_http b/centreon-plugins/src/check_centreon_http index 208085e2e..8b15905af 100644 --- a/centreon-plugins/src/check_centreon_http +++ b/centreon-plugins/src/check_centreon_http @@ -1,32 +1,28 @@ #! /usr/bin/perl -w # -# $Id: check_graph_http,v 1.3 2005/08/01 18:03:52 gollum123 Exp $ +# $Id: check_graph_http,v 1.4 2005/08/01 18:03:52 gollum123 Exp $ # # This plugin is developped under GPL Licence: # http://www.fsf.org/licenses/gpl.txt - -# Developped by Linagora SA: http://www.linagora.com - +# # Modified for Oreon Project by : Sugumaran Mathavarajan - Mathieu Chateau - Christophe Coraboeuf - +# # The Software is provided to you AS IS and WITH ALL FAULTS. -# LINAGORA makes no representation and gives no warranty whatsoever, +# OREON makes no representation and gives no warranty whatsoever, # whether express or implied, and without limitation, with regard to the quality, # safety, contents, performance, merchantability, non-infringement or suitability for -# any particular or intended purpose of the Software found on the LINAGORA web site. -# In no event will LINAGORA be liable for any direct, indirect, punitive, special, -# incidental or consequential damages however they may arise and even if LINAGORA has +# any particular or intended purpose of the Software found on the OREON web site. +# In no event will OREON be liable for any direct, indirect, punitive, special, +# incidental or consequential damages however they may arise and even if OREON has # been previously advised of the possibility of such damages. -# based on "graph plugins" developped by Oreon Team. See http://www.oreon.org. - ## ## Plugin init ## use strict; use FindBin; use lib "$FindBin::Bin"; -use lib "/srv/nagios/libexec"; +use lib "@NAGIOS_PLUGINS@"; use utils qw($TIMEOUT %ERRORS &print_revision &support); if (eval "require oreon" ) { diff --git a/centreon-plugins/src/check_https.pl b/centreon-plugins/src/check_centreon_https similarity index 100% rename from centreon-plugins/src/check_https.pl rename to centreon-plugins/src/check_centreon_https diff --git a/centreon-plugins/src/check_centreon_nt b/centreon-plugins/src/check_centreon_nt index ad77ae291..830a81a58 100644 --- a/centreon-plugins/src/check_centreon_nt +++ b/centreon-plugins/src/check_centreon_nt @@ -1,15 +1,13 @@ #! /usr/bin/perl -w # -# $Id: check_graph_nt.pl,v 1.3 2005/08/01 18:04:00 gollum123 Exp $ +# $Id: check_graph_nt.pl,v 1.4 2005/08/01 18:04:00 gollum123 Exp $ # # Oreon's plugins are developped with GPL Licence : # http://www.fsf.org/licenses/gpl.txt # Developped by : Julien Mathis - Mathieu Mettre -# Under control of Flavien Astraud, Jerome Landrieu for Epitech. -# Oreon's plugins are developped in partnership with Linagora company. # # Modified for Oreon Project by : Mathieu Chateau - Christophe Coraboeuf -# Modified for Oreon Project by : Sugumaran Mathavarajan - mat.sugumaran@merethis.com +# Modified for Oreon Project by : Sugumaran Mathavarajan - msugumaran@merethis.com # # The Software is provided to you AS IS and WITH ALL FAULTS. # OREON makes no representation and gives no warranty whatsoever, @@ -26,7 +24,7 @@ use strict; use FindBin; use lib "$FindBin::Bin"; -use lib "/srv/nagios/libexec"; +use lib "@NAGIOS_PLUGINS@"; use utils qw($TIMEOUT %ERRORS &print_revision &support); diff --git a/centreon-plugins/src/check_centreon_ping b/centreon-plugins/src/check_centreon_ping index 2e24a1cb7..29da08658 100644 --- a/centreon-plugins/src/check_centreon_ping +++ b/centreon-plugins/src/check_centreon_ping @@ -1,6 +1,6 @@ #! /usr/bin/perl -w # -# $Id: check_oreon_ping,v 1.2 2006/04/28 10:21:49 Julien Mathis $ +# $Id: check_oreon_ping,v 1.3 2006/04/28 10:21:49 Julien Mathis $ # # Oreon's plugins are developped with GPL Licence : # http://www.fsf.org/licenses/gpl.txt @@ -25,7 +25,7 @@ use strict; use FindBin; use lib "$FindBin::Bin"; -use lib "/srv/nagios/libexec"; +use lib "@NAGIOS_PLUGINS@"; use utils qw($TIMEOUT %ERRORS &print_revision &support); if (eval "require oreon" ) { diff --git a/centreon-plugins/src/check_centreon_radware_cpu b/centreon-plugins/src/check_centreon_radware_cpu index eb0abd920..92702dbbb 100644 --- a/centreon-plugins/src/check_centreon_radware_cpu +++ b/centreon-plugins/src/check_centreon_radware_cpu @@ -28,7 +28,7 @@ use strict; use Net::SNMP qw(:snmp); use FindBin; use lib "$FindBin::Bin"; -use lib "/usr/local/nagios/libexec/"; +use lib "@NAGIOS_PLUGINS@"; use utils qw($TIMEOUT %ERRORS &print_revision &support); use vars qw($PROGNAME); diff --git a/centreon-plugins/src/check_centreon_snmp_loadaverage b/centreon-plugins/src/check_centreon_snmp_loadaverage index 566b56926..9aca08235 100644 --- a/centreon-plugins/src/check_centreon_snmp_loadaverage +++ b/centreon-plugins/src/check_centreon_snmp_loadaverage @@ -28,7 +28,7 @@ use strict; use Net::SNMP qw(:snmp); use FindBin; use lib "$FindBin::Bin"; -use lib "/srv/nagios/libexec"; +use lib "@NAGIOS_PLUGINS@"; use utils qw($TIMEOUT %ERRORS &print_revision &support); if (eval "require oreon" ) { use oreon qw(get_parameters); diff --git a/centreon-plugins/src/check_snmp_logmatch.pl b/centreon-plugins/src/check_centreon_snmp_logmatch similarity index 95% rename from centreon-plugins/src/check_snmp_logmatch.pl rename to centreon-plugins/src/check_centreon_snmp_logmatch index 693e5162a..4f422d96f 100644 --- a/centreon-plugins/src/check_snmp_logmatch.pl +++ b/centreon-plugins/src/check_centreon_snmp_logmatch @@ -25,7 +25,7 @@ use strict; use Net::SNMP qw(:snmp); use FindBin; use lib "$FindBin::Bin"; -use lib "/usr/local/nagios/libexec"; +use lib "@NAGIOS_PLUGINS@"; use utils qw($TIMEOUT %ERRORS &print_revision &support); if (eval "require oreon" ) { @@ -47,7 +47,7 @@ my ($hrStorageDescr, $hrStorageAllocationUnits, $hrStorageSize, $hrStorageUsed); my ($AllocationUnits, $Size, $Used); my ($tot, $used, $pourcent, $return_code); -$PROGNAME = "check_snmp_remote_storage"; +$PROGNAME = "$0"; sub print_help (); sub print_usage (); Getopt::Long::Configure('bundling'); diff --git a/centreon-plugins/src/check_centreon_snmp_process b/centreon-plugins/src/check_centreon_snmp_process index b20272e59..50f0b267e 100644 --- a/centreon-plugins/src/check_centreon_snmp_process +++ b/centreon-plugins/src/check_centreon_snmp_process @@ -5,7 +5,7 @@ # GPL License: http://www.gnu.org/licenses/gpl.txt # # Developped by : Julien Mathis - Romain Le Merlus -# Christophe Coraboeuf +# Christophe Coraboeuf - Sugumaran Mathavarajan # ################################################################### # This program is free software; you can redistribute it and/or @@ -28,7 +28,7 @@ use strict; use Net::SNMP qw(:snmp oid_lex_sort); use FindBin; use lib "$FindBin::Bin"; -use lib "/srv/nagios/libexec"; +use lib "@NAGIOS_PLUGINS@"; use utils qw($TIMEOUT %ERRORS &print_revision &support); if (eval "require oreon" ) { use oreon qw(get_parameters); diff --git a/centreon-plugins/src/check_centreon_snmp_process_detailed b/centreon-plugins/src/check_centreon_snmp_process_detailed index 3f606c9ed..d367b00e8 100644 --- a/centreon-plugins/src/check_centreon_snmp_process_detailed +++ b/centreon-plugins/src/check_centreon_snmp_process_detailed @@ -13,7 +13,7 @@ ############################## check_oreon_snmp_process_detailed ############## # Version : 1.2.2 # Date : Jun 20 2007 -# Author : Sugumaran Mathavarajan - mat.sugumaran@merethis.com +# Author : Sugumaran Mathavarajan - msugumaran@merethis.com # Company : Merethis # Licence : GPL - http://www.fsf.org/licenses/gpl.txt # TODO : put $o_delta as an option @@ -32,7 +32,7 @@ use Getopt::Long; # Nagios specific -use lib "/srv/nagios/libexec"; +use lib "@NAGIOS_PLUGINS@"; use utils qw(%ERRORS $TIMEOUT); # Oreon specific diff --git a/centreon-plugins/src/check_centreon_snmp_remote_storage b/centreon-plugins/src/check_centreon_snmp_remote_storage index 4ebde14ff..58b0c3f29 100644 --- a/centreon-plugins/src/check_centreon_snmp_remote_storage +++ b/centreon-plugins/src/check_centreon_snmp_remote_storage @@ -5,7 +5,7 @@ # GPL License: http://www.gnu.org/licenses/gpl.txt # # Developped by : Julien Mathis - Romain Le Merlus -# Christophe Coraboeuf +# Christophe Coraboeuf - Sugumaran Mathavarajan # ################################################################### # This program is free software; you can redistribute it and/or @@ -28,7 +28,7 @@ use strict; use Net::SNMP qw(:snmp); use FindBin; use lib "$FindBin::Bin"; -use lib "/srv/nagios/libexec"; +use lib "@NAGIOS_PLUGINS@"; use utils qw($TIMEOUT %ERRORS &print_revision &support); if (eval "require oreon" ) { use oreon qw(get_parameters); diff --git a/centreon-plugins/src/check_tcp_con.pl b/centreon-plugins/src/check_centreon_snmp_tcp_port_connections similarity index 93% rename from centreon-plugins/src/check_tcp_con.pl rename to centreon-plugins/src/check_centreon_snmp_tcp_port_connections index 4fa6555f8..cb40dbdaa 100644 --- a/centreon-plugins/src/check_tcp_con.pl +++ b/centreon-plugins/src/check_centreon_snmp_tcp_port_connections @@ -1,6 +1,6 @@ #! /usr/bin/perl -w # -# $Id: check_TcpConn.pl,v 1.2 2005/11/17 10:21:49 Sugumaran Mat $ +# $Id: check_TcpConn.pl,v 1.3 2005/11/17 10:21:49 Sugumaran Mat $ # # This plugin is developped under GPL Licence: # http://www.fsf.org/licenses/gpl.txt @@ -24,7 +24,7 @@ use strict; use Net::SNMP qw(:snmp); use FindBin; use lib "$FindBin::Bin"; -use lib "/srv/nagios/libexec"; +use lib "@NAGIOS_PLUGINS@"; use utils qw($TIMEOUT %ERRORS &print_revision &support); if (eval "require oreon" ) { @@ -41,7 +41,7 @@ use Getopt::Long; use vars qw($opt_h $opt_V $opt_H $opt_C $opt_v $opt_p $opt_c $opt_w); use vars qw($snmp); -$PROGNAME = "ckeck_TcpConn"; +$PROGNAME = "$0"; sub print_help (); sub print_usage (); diff --git a/centreon-plugins/src/check_centreon_snmp_traffic b/centreon-plugins/src/check_centreon_snmp_traffic index 691b2c95b..0b815cdc0 100644 --- a/centreon-plugins/src/check_centreon_snmp_traffic +++ b/centreon-plugins/src/check_centreon_snmp_traffic @@ -5,7 +5,7 @@ # GPL License: http://www.gnu.org/licenses/gpl.txt # # Developped by : Julien Mathis - Romain Le Merlus -# Christophe Coraboeuf +# Christophe Coraboeuf - Sugumaran Mathavarajan # ################################################################### # This program is free software; you can redistribute it and/or @@ -28,7 +28,7 @@ use strict; use Net::SNMP qw(:snmp oid_lex_sort); use FindBin; use lib "$FindBin::Bin"; -use lib "/srv/nagios/libexec"; +use lib "@NAGIOS_PLUGINS@"; use utils qw($TIMEOUT %ERRORS &print_revision &support); if (eval "require oreon" ) { use oreon qw(get_parameters); diff --git a/centreon-plugins/src/check_centreon_snmp_uptime b/centreon-plugins/src/check_centreon_snmp_uptime index 0387bf70d..2adffd9f4 100644 --- a/centreon-plugins/src/check_centreon_snmp_uptime +++ b/centreon-plugins/src/check_centreon_snmp_uptime @@ -1,6 +1,6 @@ #! /usr/bin/perl -w # -# $Id: check_graph_uptime.pl,v 1.2 2005/07/27 22:21:49 wistof Exp $ +# $Id: check_graph_uptime.pl,v 1.3 2005/07/27 22:21:49 wistof Exp $ # # This plugin is developped under GPL Licence: # http://www.fsf.org/licenses/gpl.txt @@ -8,7 +8,7 @@ # Developped by Linagora SA: http://www.linagora.com # Modified for Oreon Project by : Mathieu Chateau - Christophe Coraboeuf -# Modified For Oreon compatibility by Julien Mathis For Merethis +# Modified For Oreon compatibility by Julien Mathis - Sugumaran mathavarajan For Merethis # # The Software is provided to you AS IS and WITH ALL FAULTS. # LINAGORA makes no representation and gives no warranty whatsoever, @@ -27,7 +27,7 @@ use strict; use Net::SNMP qw(:snmp); use FindBin; use lib "$FindBin::Bin"; -use lib "/srv/nagios/libexec"; +use lib "@NAGIOS_PLUGINS@"; use utils qw($TIMEOUT %ERRORS &print_revision &support); if (eval "require oreon" ) { diff --git a/centreon-plugins/src/check_centreon_snmp_value b/centreon-plugins/src/check_centreon_snmp_value index 491d7ee55..4739d34b3 100644 --- a/centreon-plugins/src/check_centreon_snmp_value +++ b/centreon-plugins/src/check_centreon_snmp_value @@ -5,7 +5,7 @@ # GPL License: http://www.gnu.org/licenses/gpl.txt # # Developped by : Julien Mathis - Romain Le Merlus -# Christophe Coraboeuf +# Christophe Coraboeuf - Sugumaran Mathavarajan # ################################################################### # This program is free software; you can redistribute it and/or @@ -28,7 +28,7 @@ use strict; use Net::SNMP qw(:snmp); use FindBin; use lib "$FindBin::Bin"; -use lib "/srv/nagios/libexec"; +use lib "@NAGIOS_PLUGINS@"; use utils qw($TIMEOUT %ERRORS &print_revision &support); use vars qw($PROGNAME); diff --git a/centreon-plugins/src/check_centreon_tcp b/centreon-plugins/src/check_centreon_tcp index 71f945a86..e21bd7ba0 100644 --- a/centreon-plugins/src/check_centreon_tcp +++ b/centreon-plugins/src/check_centreon_tcp @@ -1,5 +1,5 @@ #! /usr/bin/perl -w -# $Id: check_graph_tcp.pl,v 1.2 2005/08/01 17:50:50 gollum123 Exp $ +# $Id: check_graph_tcp.pl,v 1.3 2005/08/01 17:50:50 gollum123 Exp $ # # Oreon's plugins are developped with GPL Licence : # http://www.fsf.org/licenses/gpl.txt @@ -20,8 +20,7 @@ use strict; use FindBin; use lib "$FindBin::Bin"; -#use lib "/srv/nagios/libexec"; -use lib "/usr/lib/nagios/plugins"; +use lib "@NAGIOS_PLUGINS@"; use utils qw($TIMEOUT %ERRORS &print_revision &support); if (eval "require oreon" ) { diff --git a/centreon-plugins/src/check_meta_service.pl b/centreon-plugins/src/check_meta_service.pl index 57ed4ea0a..68892696f 100644 --- a/centreon-plugins/src/check_meta_service.pl +++ b/centreon-plugins/src/check_meta_service.pl @@ -26,7 +26,7 @@ use DBI; use vars qw($PROGNAME); use Getopt::Long; use vars qw($opt_V $opt_H $opt_h $opt_i); -use lib "/srv/nagios/libexec"; +use lib "@NAGIOS_PLUGINS@"; use utils qw($TIMEOUT %ERRORS &print_revision &support); ## For Debug mode = 1 @@ -42,7 +42,9 @@ GetOptions "V" => \$opt_V, "i=s" => \$opt_i); - +########################### +## Set Database information +########################### my $dbh = DBI->connect("DBI:mysql:database=oreon;host=localhost", "oreon", "oreon-pwd", {'RaiseError' => 1}); diff --git a/centreon-plugins/src/check_nt_centreon b/centreon-plugins/src/check_nt_centreon index 7f232edbd..9c99e77cf 100644 --- a/centreon-plugins/src/check_nt_centreon +++ b/centreon-plugins/src/check_nt_centreon @@ -24,7 +24,7 @@ use strict; use FindBin; use lib "$FindBin::Bin"; -use lib "/srv/nagios/libexec"; +use lib "@NAGIOS_PLUGINS@"; use utils qw($TIMEOUT %ERRORS &print_revision &support); if (eval "require oreon" ) { diff --git a/centreon-plugins/src/check_oreon_snmp_traffic.pl b/centreon-plugins/src/check_oreon_snmp_traffic.pl deleted file mode 100644 index d8466c513..000000000 --- a/centreon-plugins/src/check_oreon_snmp_traffic.pl +++ /dev/null @@ -1,453 +0,0 @@ -#! /usr/bin/perl -w -################################################################### -# Oreon is developped with GPL Licence 2.0 -# -# GPL License: http://www.gnu.org/licenses/gpl.txt -# -# Developped by : Julien Mathis - Romain Le Merlus -# Christophe Coraboeuf -# -################################################################### -# 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. -# -# For information : contact@merethis.com -#################################################################### -# -# Script init -# - -use strict; -use Net::SNMP qw(:snmp oid_lex_sort); -use FindBin; -use lib "$FindBin::Bin"; -use lib "@NAGIOS_PLUGINS@"; -use utils qw($TIMEOUT %ERRORS &print_revision &support); -if (eval "require oreon" ) { - use oreon qw(get_parameters); - use vars qw(%oreon); - %oreon=get_parameters(); -} else { - print "Unable to load oreon perl module\n"; - exit $ERRORS{'UNKNOWN'}; -} -use vars qw($PROGNAME); -use Getopt::Long; -use vars qw($opt_V $opt_h $opt_v $opt_C $opt_b $opt_k $opt_u $opt_p $opt_H $opt_D $opt_i $opt_n $opt_w $opt_c $opt_s $opt_T); - -# Plugin var init - -my($proc, $proc_run, @test, $row, @laste_values, $last_check_time, $last_in_bits, $last_out_bits, @last_values, $update_time, $db_file, $in_traffic, $out_traffic, $in_usage, $out_usage); - -$PROGNAME = "check_graph_traffic"; -sub print_help (); -sub print_usage (); - -Getopt::Long::Configure('bundling'); -GetOptions - ("h" => \$opt_h, "help" => \$opt_h, - "u=s" => \$opt_u, "username=s" => \$opt_u, - "p=s" => \$opt_p, "password=s" => \$opt_p, - "k=s" => \$opt_k, "key=s" => \$opt_k, - "s" => \$opt_s, "show" => \$opt_s, - "V" => \$opt_V, "version" => \$opt_V, - "i=s" => \$opt_i, "interface=s" => \$opt_i, - "n" => \$opt_n, "name" => \$opt_n, - "v=s" => \$opt_v, "snmp=s" => \$opt_v, - "C=s" => \$opt_C, "community=s" => \$opt_C, - "b=s" => \$opt_b, "bps=s" => \$opt_b, - "w=s" => \$opt_w, "warning=s" => \$opt_w, - "c=s" => \$opt_c, "critical=s" => \$opt_c, - "T=s" => \$opt_T, - "H=s" => \$opt_H, "hostname=s" => \$opt_H); - -if ($opt_V) { - print_revision($PROGNAME,'$Revision: 1.2 $'); - exit $ERRORS{'OK'}; -} - -if ($opt_h) { - print_help(); - exit $ERRORS{'OK'}; - -Getopt::Long::Configure('bundling'); -} - -################################################## -##### Verify Options -## - -if (!$opt_H) { -print_usage(); -exit $ERRORS{'OK'}; -} -my $snmp = "1"; -if ($opt_v && $opt_v =~ /^[0-9]$/) { -$snmp = $opt_v; -} - -if ($snmp eq "3") { -if (!$opt_u) { -print "Option -u (--username) is required for snmpV3\n"; -exit $ERRORS{'OK'}; -} -if (!$opt_p && !$opt_k) { -print "Option -k (--key) or -p (--password) is required for snmpV3\n"; -exit $ERRORS{'OK'}; -}elsif ($opt_p && $opt_k) { -print "Only option -k (--key) or -p (--password) is needed for snmpV3\n"; -exit $ERRORS{'OK'}; -} -} - -if ($opt_n && !$opt_i) { - print "Option -n (--name) need option -i (--interface)\n"; - exit $ERRORS{'UNKNOWN'}; -} - -if (!$opt_C) { -$opt_C = "public"; -} - -if (!$opt_i) { -$opt_i = 2; -} - -if (!$opt_b) { -$opt_b = 95; -} - -if ($opt_b =~ /([0-9]+)/) { -my $bps = $1; -} -my $critical = 95; -if ($opt_c && $opt_c =~ /[0-9]+/) { -$critical = $opt_c; -} -my $warning = 80; -if ($opt_w && $opt_w =~ /[0-9]+/) { -$warning = $opt_w; -} -my $interface = 0; -if ($opt_i =~ /([0-9]+)/ && !$opt_n){ - $interface = $1; -} elsif (!$opt_n) { - print "Unknown -i number expected... or it doesn't exist, try another interface - number\n"; - exit $ERRORS{'UNKNOWN'}; -} - -if ($critical <= $warning){ - print "(--crit) must be superior to (--warn)"; - print_usage(); - exit $ERRORS{'OK'}; -} - -################################################# -##### Plugin snmp requests -## - -my $OID_DESC =$oreon{MIB2}{IF_DESC}; - -# create a SNMP session -my ($session, $error); -if ($snmp eq "1" || $snmp eq "2") { -($session, $error) = Net::SNMP->session(-hostname => $opt_H, -community => $opt_C, -version => $snmp); -if (!defined($session)) { - print("UNKNOWN: SNMP Session : $error\n"); - exit $ERRORS{'UNKNOWN'}; -} -}elsif ($opt_k) { - ($session, $error) = Net::SNMP->session(-hostname => $opt_H, -version => $snmp, -username => $opt_u, -authkey => $opt_k); -if (!defined($session)) { - print("UNKNOWN: SNMP Session : $error\n"); - exit $ERRORS{'UNKNOWN'}; -} -}elsif ($opt_p) { - ($session, $error) = Net::SNMP->session(-hostname => $opt_H, -version => $snmp, -username => $opt_u, -authpassword => $opt_p); -if (!defined($session)) { - print("UNKNOWN: SNMP Session : $error\n"); - exit $ERRORS{'UNKNOWN'}; -} -} - -#getting interface using its name instead of its oid index - -if ($opt_n) { - my $result = $session->get_table(Baseoid => $OID_DESC); - if (!defined($result)) { - printf("ERROR: Description Table : %s.\n", $session->error); - $session->close; - exit $ERRORS{'UNKNOWN'}; - } - foreach my $key ( oid_lex_sort(keys %$result)) { - if ($result->{$key} =~ m/$opt_i/) { - my @oid_list = split (/\./,$key); - $interface = pop (@oid_list) ; - } - } -} - -my $OID_IN =$oreon{MIB2}{IF_IN_OCTET}.".".$interface; -my $OID_OUT = $oreon{MIB2}{IF_OUT_OCTET}.".".$interface; -my $OID_SPEED = $oreon{MIB2}{IF_SPEED}.".".$interface; - -# Get desctiption table - -if ($opt_s) { - my $result = $session->get_table(Baseoid => $OID_DESC); - if (!defined($result)) { - printf("ERROR: Description Table : %s.\n", $session->error); - $session->close; - exit $ERRORS{'UNKNOWN'}; - } - foreach my $key ( oid_lex_sort(keys %$result)) { - my @oid_list = split (/\./,$key); - my $index = pop (@oid_list) ; - print "Interface $index :: $$result{$key}\n"; - } - exit $ERRORS{'OK'}; -} - - -####### Get IN bytes - -my $in_bits; -my $result = $session->get_request(-varbindlist => [$OID_IN]); -if (!defined($result)) { - printf("ERROR: IN Bits : %s", $session->error); - if ($opt_n) { print " - You must specify interface name when option -n is used";} - print ".\n"; - $session->close; - exit $ERRORS{'UNKNOWN'}; -} -$in_bits = $result->{$OID_IN} * 8; - - -####### Get OUT bytes - -my $out_bits; -$result = $session->get_request(-varbindlist => [$OID_OUT]); -if (!defined($result)) { - printf("ERROR: Out Bits : %s", $session->error); - if ($opt_n) { print " - You must specify interface name when option -n is used";} - print ".\n"; - $session->close; - exit $ERRORS{'UNKNOWN'}; -} -$out_bits = $result->{$OID_OUT} * 8; - - -####### Get SPEED of interface - -my $speed_card; -$result = $session->get_request(-varbindlist => [$OID_SPEED]); -if (!defined($result)) { - printf("ERROR: Interface Speed : %s", $session->error); - if ($opt_n) { print " - You must specify interface name when option -n is used";} - print ".\n"; - $session->close; - exit $ERRORS{'UNKNOWN'}; -} - -if (defined($opt_T)){ - $speed_card = $opt_T * 1000000; -} else { - $speed_card = $result->{$OID_SPEED}; -} - -############################################# -##### Plugin return code -## - -$last_in_bits = 0; -$last_out_bits = 0; - -my $flg_created = 0; - -if (-e "/tmp/oreon_traffic_if".$interface."_".$opt_H) { - open(FILE,"<"."/tmp/oreon_traffic_if".$interface."_".$opt_H); - while($row = ){ - @last_values = split(":",$row); - $last_check_time = $last_values[0]; - $last_in_bits = $last_values[1]; - $last_out_bits = $last_values[2]; - $flg_created = 1; - } - close(FILE); -} else { - $flg_created = 0; -} - -$update_time = time(); - -unless (open(FILE,">"."/tmp/oreon_traffic_if".$interface."_".$opt_H)){ - print "Unknown - /tmp/oreon_traffic_if".$interface."_".$opt_H. " !\n"; - exit $ERRORS{"UNKNOWN"}; -} -print FILE "$update_time:$in_bits:$out_bits"; -close(FILE); - -if ($flg_created == 0){ - print "First execution : Buffer in creation.... \n"; - exit($ERRORS{"UNKNOWN"}); -} - - -## Bandwith = IN + OUT / Delta(T) = 6 Mb/s -## (100 * Bandwith) / (2(si full duplex) * Ispeed) -## Count must round at 4294967296 -## - -if (($in_bits - $last_in_bits > 0) && defined($last_in_bits)) { - my $total = 0; - if ($in_bits - $last_in_bits < 0){ - $total = 4294967296 - $last_in_bits + $in_bits; - } else { - $total = $in_bits - $last_in_bits; - } - my $diff = time() - $last_check_time; - if ($diff == 0){$diff = 1;} - my $pct_in_traffic = $in_traffic = abs($total / $diff); -} else { - $in_traffic = 0; -} - -if ($out_bits - $last_out_bits > 0 && defined($last_out_bits)) { - my $total = 0; - if ($out_bits - $last_out_bits < 0){ - $total = 4294967296 - $last_out_bits + $out_bits; - } else { - $total = $out_bits - $last_out_bits; - } - my $diff = time() - $last_check_time; - if ($diff == 0){$diff = 1;} - my $pct_out_traffic = $out_traffic = abs($total / $diff); -} else { - $out_traffic = 0; -} - -if ( $speed_card != 0 ) { - $in_usage = sprintf("%.1f",($in_traffic*100) / $speed_card); - $out_usage = sprintf("%.1f",($out_traffic*100) / $speed_card); -} - -my $in_prefix = ""; -my $out_prefix = ""; - -my $in_perfparse_traffic = $in_traffic; -my $out_perfparse_traffic = $out_traffic; - -if ($in_traffic > 1000) { - $in_traffic = $in_traffic / 1000; - $in_prefix = "k"; - if($in_traffic > 1000){ - $in_traffic = $in_traffic / 1000; - $in_prefix = "M"; - } - if($in_traffic > 1000){ - $in_traffic = $in_traffic / 1000; - $in_prefix = "G"; - } -} - -if ($out_traffic > 1000){ - $out_traffic = $out_traffic / 1000; - $out_prefix = "k"; - if ($out_traffic > 1000){ - $out_traffic = $out_traffic / 1000; - $out_prefix = "M"; - } - if ($out_traffic > 1000){ - $out_traffic = $out_traffic / 1000; - $out_prefix = "G"; - } -} - -my $in_bits_unit = ""; -$in_bits = $in_bits/1048576; -if ($in_bits > 1000){ - $in_bits = $in_bits / 1000; - $in_bits_unit = "G"; -} else { - $in_bits_unit = "M"; -} - -my $out_bits_unit = ""; -$out_bits = $out_bits/1048576; -if ($out_bits > 1000){ - $out_bits = $out_bits / 1000; - $out_bits_unit = "G"; -} else { - $out_bits_unit = "M"; -} - - -if ( $speed_card == 0 ) { - print "CRITICAL: Interface speed equal 0! Interface must be down.|traffic_in=0B/s traffic_out=0B/s\n"; - exit($ERRORS{"CRITICAL"}); -} - -##################################### -##### Display result -## - - -my $in_perfparse_traffic_str = sprintf("%.1f",abs($in_perfparse_traffic)); -my $out_perfparse_traffic_str = sprintf("%.1f",abs($out_perfparse_traffic)); - -$in_perfparse_traffic_str =~ s/\./,/g; -$out_perfparse_traffic_str =~ s/\./,/g; - -my $status = "OK"; - -if(($in_usage > $warning) or ($out_usage > $warning)){ - $status = "WARNING"; -} - -if (($in_usage > $critical) or ($out_usage > $critical)){ - $status = "CRITICAL"; -} - - -printf("Traffic In : %.2f ".$in_prefix."b/s (".$in_usage." %%), Out : %.2f ".$out_prefix."b/s (".$out_usage." %%) - ", $in_traffic, $out_traffic); -printf("Total RX Bits In : %.2f ".$in_bits_unit."B, Out : %.2f ".$out_bits_unit."b", $in_bits, $out_bits); -printf("|traffic_in=".$in_perfparse_traffic_str."Bits/s traffic_out=".$out_perfparse_traffic_str."Bits/s\n"); -exit($ERRORS{$status}); - -sub print_usage () { - print "\nUsage:\n"; - print "$PROGNAME\n"; - print " -H (--hostname) Hostname to query - (required)\n"; - print " -C (--community) SNMP read community (defaults to public,\n"; - print " used with SNMP v1 and v2c\n"; - print " -v (--snmp_version) 1 for SNMP v1 (default)\n"; - print " 2 for SNMP v2c\n"; - print " -s (--show) Describes all interfaces number (debug mode)\n"; - print " -i (--interface) Set the interface number (2 by default)\n"; - print " -n (--name) Allows to use interface name with option -d instead of interface oid index\n"; - print " (ex: -i \"eth0\" -n, -i \"VMware Virtual Ethernet Adapter for VMnet8\" -n\n"; - print " (choose an unique expression for each interface)\n"; - print " -w (--warn) Signal strength at which a warning message will be generated\n"; - print " (default 80)\n"; - print " -c (--crit) Signal strength at which a critical message will be generated\n"; - print " -T Max Banwidth\n"; - print " (default 95)\n"; - print " -V (--version) Plugin version\n"; - print " -h (--help) usage help\n"; -} - -sub print_help () { - print "######################################################\n"; - print "# Copyright (c) 2004-2007 Oreon-project #\n"; - print "# Bugs to http://www.oreon-project.org/ #\n"; - print "######################################################\n"; - print_usage(); - print "\n"; -} diff --git a/centreon-plugins/src/check_snmp_mem.pl b/centreon-plugins/src/check_snmp_mem.pl index ed93c641b..485e925d3 100644 --- a/centreon-plugins/src/check_snmp_mem.pl +++ b/centreon-plugins/src/check_snmp_mem.pl @@ -24,7 +24,6 @@ use utils qw(%ERRORS $TIMEOUT); # Oreon specific -#use lib "@NAGIOS_PLUGINS@"; if (eval "require oreon" ) { use oreon qw(get_parameters create_rrd update_rrd &is_valid_serviceid); use vars qw($VERSION %oreon);