Merge latest CVS patches into one
This commit is contained in:
parent
fe8f55b3ec
commit
ab802e45d7
130
debian/patches/01_check_snmp_env
vendored
130
debian/patches/01_check_snmp_env
vendored
|
@ -1,130 +0,0 @@
|
|||
## 01_check_snmp_env by Jan Wagner <waja@cyconet.org>
|
||||
##
|
||||
## DP: Fix some issues via cvs version
|
||||
|
||||
--- old/check_snmp_env.pl 2007-07-04 09:46:55.000000000 +0200
|
||||
+++ new/check_snmp_env.pl 2007-07-06 22:17:06.000000000 +0200
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/perl -w
|
||||
############################## check_snmp_env #################
|
||||
-# Version : 1.2
|
||||
-# Date : April 19 2007
|
||||
+# Version : 1.3
|
||||
+# Date : May 24 2007
|
||||
# Author : Patrick Proy ( patrick at proy.org)
|
||||
# Help : http://www.manubulon.com/nagios/
|
||||
# Licence : GPL - http://www.fsf.org/licenses/gpl.txt
|
||||
@@ -145,9 +145,24 @@
|
||||
|
||||
my @foundry_status = (3,0,2); # oper status : 1:other, 2: Normal, 3: Failure
|
||||
|
||||
+# Linux Net-SNMP with LM-SENSORS
|
||||
+my $linux_temp = "1.3.6.1.4.1.2021.13.16.2.1"; # temperature table
|
||||
+my $linux_temp_descr = "1.3.6.1.4.1.2021.13.16.2.1.2"; # temperature entry description
|
||||
+my $linux_temp_value = "1.3.6.1.4.1.2021.13.16.2.1.3"; # temperature entry value (mC)
|
||||
+my $linux_fan = "1.3.6.1.4.1.2021.13.16.3.1"; # fan table
|
||||
+my $linux_fan_descr = "1.3.6.1.4.1.2021.13.16.3.1.2"; # fan entry description
|
||||
+my $linux_fan_value = "1.3.6.1.4.1.2021.13.16.3.1.3"; # fan entry value (RPM)
|
||||
+my $linux_volt = "1.3.6.1.4.1.2021.13.16.4.1"; # voltage table
|
||||
+my $linux_volt_descr = "1.3.6.1.4.1.2021.13.16.4.1.2"; # voltage entry description
|
||||
+my $linux_volt_value = "1.3.6.1.4.1.2021.13.16.4.1.3"; # voltage entry value (mV)
|
||||
+my $linux_misc = "1.3.6.1.4.1.2021.13.16.4.1"; # misc table
|
||||
+my $linux_misc_descr = "1.3.6.1.4.1.2021.13.16.4.1.2"; # misc entry description
|
||||
+my $linux_misc_value = "1.3.6.1.4.1.2021.13.16.4.1.3"; # misc entry value
|
||||
+
|
||||
+
|
||||
# Globals
|
||||
|
||||
-my $Version='1.2';
|
||||
+my $Version='1.3';
|
||||
|
||||
my $o_host = undef; # hostname
|
||||
my $o_community = undef; # community
|
||||
@@ -160,7 +175,7 @@
|
||||
my $o_version2= undef; # use snmp v2c
|
||||
# check type
|
||||
my $o_check_type= "cisco"; # default Cisco
|
||||
-my @valid_types =("cisco","nokia","bc","iron","foundry");
|
||||
+my @valid_types =("cisco","nokia","bc","iron","foundry","linux");
|
||||
my $o_temp= undef; # max temp
|
||||
my $o_fan= undef; # min fan speed
|
||||
|
||||
@@ -177,7 +192,7 @@
|
||||
sub p_version { print "check_snmp_env version : $Version\n"; }
|
||||
|
||||
sub print_usage {
|
||||
- print "Usage: $0 [-v] -H <host> -C <snmp_community> [-2] | (-l login -x passwd [-X pass -L <authp>,<privp>]) [-p <port>] -T (cisco|nokia|bc|iron|foundry) [-F <rpm>] [-c <celcius>] [-f] [-t <timeout>] [-V]\n";
|
||||
+ print "Usage: $0 [-v] -H <host> -C <snmp_community> [-2] | (-l login -x passwd [-X pass -L <authp>,<privp>]) [-p <port>] -T (cisco|nokia|bc|iron|foundry|linux) [-F <rpm>] [-c <celcius>] [-f] [-t <timeout>] [-V]\n";
|
||||
}
|
||||
|
||||
sub isnnum { # Return true if arg is not a number
|
||||
@@ -221,17 +236,18 @@
|
||||
-P, --port=PORT
|
||||
SNMP port (Default 161)
|
||||
-T, --type=cisco|nokia|bc|iron|foundry
|
||||
- Environemental check :
|
||||
- cisco : voltage,temp,fan,power supply status
|
||||
- will try to check everything present
|
||||
- nokia : fan and power supply
|
||||
- bc : fans, power supply, voltage, disks
|
||||
- iron : fans, power supply, temp
|
||||
- foundry : power supply, temp
|
||||
+ Environemental check :
|
||||
+ cisco : All Cisco equipements : voltage,temp,fan,power supply
|
||||
+ (will try to check everything in the env mib)
|
||||
+ nokia : Nokia IP platforms : fan and power supply
|
||||
+ bc : BlueCoat platforms : fans, power supply, voltage, disks
|
||||
+ iron : IronPort platforms : fans, power supply, temp
|
||||
+ foundry : Foundry Network platforms : power supply, temp
|
||||
+ linux : Net-SNMP with LM-SENSORS : temp, fan, volt, misc
|
||||
-F, --fan=<rpm>
|
||||
- Minimum fan rpm value
|
||||
+ Minimum fan rpm value (only needed for 'iron' & 'linux')
|
||||
-c, --celcius=<celcius>
|
||||
- Maximum temp in degree celcius
|
||||
+ Maximum temp in degree celcius (only needed for 'iron' & 'linux')
|
||||
-f, --perfparse
|
||||
Perfparse compatible output
|
||||
-t, --timeout=INTEGER
|
||||
@@ -428,8 +444,10 @@
|
||||
if (!defined ($cur_status)) { ### Error TODO
|
||||
$volt_global=1;
|
||||
}
|
||||
- $perf_output.=" '".$$resultat{$ciscoVoltageTableDesc .".".$voltindex[$i]}."'=" ;
|
||||
- $perf_output.=$$resultat{$ciscoVoltageTableValue."." . $voltindex[$i]};
|
||||
+ if (defined($$resultat{$ciscoVoltageTableValue."." . $voltindex[$i]})) {
|
||||
+ $perf_output.=" '".$$resultat{$ciscoVoltageTableDesc .".".$voltindex[$i]}."'=" ;
|
||||
+ $perf_output.=$$resultat{$ciscoVoltageTableValue."." . $voltindex[$i]};
|
||||
+ }
|
||||
if ($Nagios_state[$CiscoEnvMonNagios{$cur_status}] ne "OK") {
|
||||
$volt_global= 1;
|
||||
$volt_status{$$resultat{$ciscoVoltageTableDesc .".".$voltindex[$i]}}=$cur_status;
|
||||
@@ -448,8 +466,10 @@
|
||||
if (!defined ($cur_status)) { ### Error TODO
|
||||
$temp_global=1;
|
||||
}
|
||||
- $perf_output.=" '".$$resultat{$ciscoTempTableDesc .".".$tempindex[$i]}."'=" ;
|
||||
- $perf_output.=$$resultat{$ciscoTempTableValue."." . $tempindex[$i]};
|
||||
+ if (defined($$resultat{$ciscoTempTableValue."." . $tempindex[$i]})) {
|
||||
+ $perf_output.=" '".$$resultat{$ciscoTempTableDesc .".".$tempindex[$i]}."'=" ;
|
||||
+ $perf_output.=$$resultat{$ciscoTempTableValue."." . $tempindex[$i]};
|
||||
+ }
|
||||
if ($Nagios_state[$CiscoEnvMonNagios{$cur_status}] ne "OK") {
|
||||
$temp_global= 1;
|
||||
$temp_status{$$resultat{$ciscoTempTableDesc .".".$tempindex[$i]}}=$cur_status;
|
||||
@@ -1003,4 +1023,14 @@
|
||||
|
||||
}
|
||||
|
||||
-exit (3);
|
||||
+########### Cisco env checks ##############
|
||||
+if ($o_check_type eq "linux") {
|
||||
+
|
||||
+ verb("Checking linux env");
|
||||
+
|
||||
+ print "Not implemented yet : UNKNOWN\n";
|
||||
+ exit $ERRORS{"UNKNOWN"};
|
||||
+}
|
||||
+
|
||||
+print "Unknown check type : UNKNOWN\n";
|
||||
+exit $ERRORS{"UNKNOWN"};
|
1041
debian/patches/01_update_pre_1.1.2
vendored
Normal file
1041
debian/patches/01_update_pre_1.1.2
vendored
Normal file
File diff suppressed because it is too large
Load diff
372
debian/patches/02_check_snmp_int
vendored
372
debian/patches/02_check_snmp_int
vendored
|
@ -1,372 +0,0 @@
|
|||
## 02_check_snmp_int by Jan Wagner <waja@cyconet.org>
|
||||
##
|
||||
## DP: Update script to version 1.24
|
||||
|
||||
|
||||
diff -Nur nagios-snmp-plugins-1.1.1.orig/check_snmp_int.pl nagios-snmp-plugins-1.1.1/check_snmp_int.pl
|
||||
--- nagios-snmp-plugins-1.1.1.orig/check_snmp_int.pl 2007-04-23 11:40:39.000000000 +0200
|
||||
+++ nagios-snmp-plugins-1.1.1/check_snmp_int.pl 2007-10-12 22:23:22.000000000 +0200
|
||||
@@ -1,13 +1,12 @@
|
||||
#!/usr/bin/perl -w
|
||||
############################## check_snmp_int ##############
|
||||
-# Version : 1.4.6
|
||||
-# Date : April 23 2007
|
||||
+my $Version='1.24';
|
||||
+# Date : Oct 10 2007
|
||||
# Author : Patrick Proy ( patrick at proy.org )
|
||||
# Help : http://nagios.manubulon.com
|
||||
# Licence : GPL - http://www.fsf.org/licenses/gpl.txt
|
||||
# Contrib : J. Jungmann, S. Probst, R. Leroy, M. Berger
|
||||
# TODO :
|
||||
-# Check isdn "dormant" state
|
||||
# Maybe put base directory for performance as an option
|
||||
#################################################################
|
||||
#
|
||||
@@ -23,10 +22,8 @@
|
||||
|
||||
# Nagios specific
|
||||
|
||||
-use lib "/usr/local/nagios/libexec";
|
||||
-use utils qw(%ERRORS $TIMEOUT);
|
||||
-#my $TIMEOUT = 5;
|
||||
-#my %ERRORS=('OK'=>0,'WARNING'=>1,'CRITICAL'=>2,'UNKNOWN'=>3,'DEPENDENT'=>4);
|
||||
+my $TIMEOUT = 15;
|
||||
+my %ERRORS=('OK'=>0,'WARNING'=>1,'CRITICAL'=>2,'UNKNOWN'=>3,'DEPENDENT'=>4);
|
||||
|
||||
# SNMP Datas
|
||||
|
||||
@@ -36,6 +33,7 @@
|
||||
my $oper_table = '1.3.6.1.2.1.2.2.1.8.';
|
||||
my $admin_table = '1.3.6.1.2.1.2.2.1.7.';
|
||||
my $speed_table = '1.3.6.1.2.1.2.2.1.5.';
|
||||
+my $speed_table_64 = '1.3.6.1.2.1.31.1.1.1.15.';
|
||||
my $in_octet_table = '1.3.6.1.2.1.2.2.1.10.';
|
||||
my $in_octet_table_64 = '1.3.6.1.2.1.31.1.1.1.6.';
|
||||
my $in_error_table = '1.3.6.1.2.1.2.2.1.14.';
|
||||
@@ -49,7 +47,6 @@
|
||||
|
||||
# Globals
|
||||
|
||||
-my $Version='1.4.6';
|
||||
|
||||
# Standard options
|
||||
my $o_host = undef; # hostname
|
||||
@@ -58,6 +55,7 @@
|
||||
my $o_help= undef; # wan't some help ?
|
||||
my $o_admin= undef; # admin status instead of oper
|
||||
my $o_inverse= undef; # Critical when up
|
||||
+my $o_dormant= undef; # Dormant state is OK
|
||||
my $o_verb= undef; # verbose mode
|
||||
my $o_version= undef; # print version
|
||||
my $o_noreg= undef; # Do not use Regexp for name
|
||||
@@ -66,16 +64,16 @@
|
||||
# Performance data options
|
||||
my $o_perf= undef; # Output performance data
|
||||
my $o_perfe= undef; # Output discard/error also in perf data
|
||||
-my $o_perfs= undef; # include speed in performance output (-S)
|
||||
-my $o_perfp= undef; # output performance data in % of max speed (-y)
|
||||
-my $o_perfr= undef; # output performance data in bits/s or Bytes/s (-Y)
|
||||
+my $o_perfs= undef; # include speed in performance output (-S)
|
||||
+my $o_perfp= undef; # output performance data in % of max speed (-y)
|
||||
+my $o_perfr= undef; # output performance data in bits/s or Bytes/s (-Y)
|
||||
# Speed/error checks
|
||||
my $o_checkperf= undef; # checks in/out/err/disc values
|
||||
my $o_delta= 300; # delta of time of perfcheck (default 5min)
|
||||
my $o_ext_checkperf= undef; # extended perf checks (+error+discard)
|
||||
my $o_warn_opt= undef; # warning options
|
||||
my $o_crit_opt= undef; # critical options
|
||||
-my $o_kbits= undef; # Warn and critical in Kbits instead of KBytes
|
||||
+my $o_kbits= undef; # Warn and critical in Kbits instead of KBytes
|
||||
my @o_warn= undef; # warning levels of perfcheck
|
||||
my @o_crit= undef; # critical levels of perfcheck
|
||||
my $o_highperf= undef; # Use 64 bits counters
|
||||
@@ -152,7 +150,7 @@
|
||||
sub p_version { print "check_snmp_int version : $Version\n"; }
|
||||
|
||||
sub print_usage {
|
||||
- print "Usage: $0 [-v] -H <host> -C <snmp_community> [-2] | (-l login -x passwd [-X pass -L <authp>,<privp>) [-p <port>] -n <name in desc_oid> [-i] [-a] [-r] [-f[eSyY]] [-k[qBMGu] -g -w<warn levels> -c<crit levels> -d<delta>] [-o <octet_length>] [-t <timeout>] [-s] --label [-V]\n";
|
||||
+ print "Usage: $0 [-v] -H <host> -C <snmp_community> [-2] | (-l login -x passwd [-X pass -L <authp>,<privp>) [-p <port>] -n <name in desc_oid> [-i -a -D] [-r] [-f[eSyY]] [-k[qBMGu] -g -w<warn levels> -c<crit levels> -d<delta>] [-o <octet_length>] [-t <timeout>] [-s] --label [-V]\n";
|
||||
}
|
||||
|
||||
sub isnnum { # Return true if arg is not a number
|
||||
@@ -195,6 +193,8 @@
|
||||
Make critical when up
|
||||
-a, --admin
|
||||
Use administrative status instead of operational
|
||||
+-D, --dormant
|
||||
+ Dormant state is an OK state
|
||||
-o, --octetlength=INTEGER
|
||||
max-size of the SNMP message, usefull in case of Too Long responses.
|
||||
Be carefull with network filters. Range 484 - 65535, default are
|
||||
@@ -214,8 +214,8 @@
|
||||
--label
|
||||
Add label before speed in output : in=, out=, errors-out=, etc...
|
||||
-g, --64bits
|
||||
- Use 64 bits counters instead of the standard counters
|
||||
- when checking bandwidth & performance data.
|
||||
+ Use 64 bits counters instead of the standard counters when checking
|
||||
+ bandwidth & performance data for interface >= 1Gbps.
|
||||
You must use snmp v2c or v3 to get 64 bits counters.
|
||||
-d, --delta=seconds
|
||||
make an average of <delta> seconds (default 300=5min)
|
||||
@@ -284,7 +284,8 @@
|
||||
'u' => \$o_prct, 'prct' => \$o_prct,
|
||||
'o:i' => \$o_octetlength, 'octetlength:i' => \$o_octetlength,
|
||||
'label' => \$o_label,
|
||||
- 'd:i' => \$o_delta, 'delta:i' => \$o_delta
|
||||
+ 'd:i' => \$o_delta, 'delta:i' => \$o_delta,
|
||||
+ 'D' => \$o_dormant, 'dormant' => \$o_dormant
|
||||
);
|
||||
if (defined ($o_help) ) { help(); exit $ERRORS{"UNKNOWN"}};
|
||||
if (defined($o_version)) { p_version(); exit $ERRORS{"UNKNOWN"}};
|
||||
@@ -460,6 +461,7 @@
|
||||
my (@oid_perf,@oid_perf_outoct,@oid_perf_inoct,@oid_perf_inerr,@oid_perf_outerr,@oid_perf_indisc,@oid_perf_outdisc)=
|
||||
(undef,undef,undef,undef,undef,undef,undef);
|
||||
my @oid_speed=undef;
|
||||
+my @oid_speed_high=undef;
|
||||
my $num_int = 0;
|
||||
|
||||
# Change to 64 bit counters if option is set :
|
||||
@@ -494,7 +496,8 @@
|
||||
if (defined($o_perf) || defined($o_checkperf)) {
|
||||
$oid_perf_inoct[$num_int]= $in_octet_table . $tindex[$num_int];
|
||||
$oid_perf_outoct[$num_int]= $out_octet_table . $tindex[$num_int];
|
||||
- $oid_speed[$num_int]=$speed_table . $tindex[$num_int];
|
||||
+ $oid_speed[$num_int]=$speed_table . $tindex[$num_int];
|
||||
+ $oid_speed_high[$num_int]=$speed_table_64 . $tindex[$num_int];
|
||||
if (defined($o_ext_checkperf) || defined($o_perfe)) {
|
||||
$oid_perf_indisc[$num_int]= $in_discard_table . $tindex[$num_int];
|
||||
$oid_perf_outdisc[$num_int]= $out_discard_table . $tindex[$num_int];
|
||||
@@ -509,25 +512,25 @@
|
||||
# No interface found -> error
|
||||
if ( $num_int == 0 ) { print "ERROR : Unknown interface $o_descr\n" ; exit $ERRORS{"UNKNOWN"};}
|
||||
|
||||
-my ($result,$resultf)=(undef,undef);
|
||||
+my $result=undef;
|
||||
+# Add performance oids if requested
|
||||
+if (defined($o_perf)||defined($o_checkperf)) {
|
||||
+ @oids=(@oids,@oid_perf_outoct,@oid_perf_inoct,@oid_speed);
|
||||
+ if (defined($o_highperf)) {
|
||||
+ @oids=(@oids,@oid_speed_high);
|
||||
+ }
|
||||
+ if (defined ($o_ext_checkperf) || defined($o_perfe)) {
|
||||
+ @oids=(@oids,@oid_perf_inerr,@oid_perf_outerr,@oid_perf_indisc,@oid_perf_outdisc);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
# Get the requested oid values
|
||||
$result = $session->get_request(
|
||||
Varbindlist => \@oids
|
||||
);
|
||||
-if (!defined($result)) { printf("ERROR: Status table : %s.\n", $session->error); $session->close;
|
||||
+if (!defined($result)) { printf("ERROR: Status/statistics table : %s.\n", $session->error); $session->close;
|
||||
exit $ERRORS{"UNKNOWN"};
|
||||
}
|
||||
-# Get the perf value if -f (performance) option defined or -k (check bandwidth)
|
||||
-if (defined($o_perf)||defined($o_checkperf)) {
|
||||
- @oid_perf=(@oid_perf_outoct,@oid_perf_inoct,@oid_perf_inerr,@oid_perf_outerr,@oid_perf_indisc,@oid_perf_outdisc,@oid_speed);
|
||||
- $resultf = $session->get_request(
|
||||
- Varbindlist => \@oid_perf
|
||||
- );
|
||||
- if (!defined($resultf)) { printf("ERROR: Statistics table : %s.\n", $session->error); $session->close;
|
||||
- exit $ERRORS{"UNKNOWN"};
|
||||
- }
|
||||
-}
|
||||
-
|
||||
|
||||
$session->close;
|
||||
|
||||
@@ -544,6 +547,7 @@
|
||||
my $trigger_low=$timenow - 3*$o_delta;
|
||||
my ($old_value,$old_time)=undef;
|
||||
my $speed_unit=undef;
|
||||
+my $speed_real=undef; # speed of interface using either standard or highperf mib.
|
||||
|
||||
# define the OK value depending on -i option
|
||||
my $ok_val= defined ($o_inverse) ? 2 : 1;
|
||||
@@ -570,7 +574,22 @@
|
||||
$n_rows = shift(@ret_array);
|
||||
if ($n_rows != 0) { @file_values = @ret_array };
|
||||
verb ("File read returns : $return with $n_rows rows");
|
||||
- verb ("Interface speed : $$resultf{$oid_speed[$i]}");
|
||||
+ # Get the speed in normal or highperf speed counters
|
||||
+ if ($$result{$oid_speed[$i]} == 4294967295) { # Too high for this counter (cf IF-MIB)
|
||||
+ if (! defined($o_highperf) && (defined($o_prct) || defined ($o_perfs) || defined ($o_perfp))) {
|
||||
+ print "Cannot get interface speed with standard MIB, use highperf mib (-g) : UNKNOWN\n";
|
||||
+ exit $ERRORS{"UNKNOWN"}
|
||||
+ }
|
||||
+ if (defined ($$result{$oid_speed_high[$i]}) && $$result{$oid_speed_high[$i]} != 0) {
|
||||
+ $speed_real=$$result{$oid_speed_high[$i]} * 1000000;
|
||||
+ } else {
|
||||
+ print "Cannot get interface speed using highperf mib : UNKNOWN\n";
|
||||
+ exit $ERRORS{"UNKNOWN"}
|
||||
+ }
|
||||
+ } else {
|
||||
+ $speed_real=$$result{$oid_speed[$i]};
|
||||
+ }
|
||||
+ verb ("Interface speed : $speed_real");
|
||||
#make the checks if the file is OK
|
||||
if ($return ==0) {
|
||||
my $j=$n_rows-1;
|
||||
@@ -583,7 +602,7 @@
|
||||
my $speed_metric=undef;
|
||||
if (defined($o_prct)) { # in % of speed
|
||||
# Speed is in bits/s, calculated speed is in Bytes/s
|
||||
- $speed_metric=$$resultf{$oid_speed[$i]}/800;
|
||||
+ $speed_metric=$speed_real/800;
|
||||
$speed_unit="%";
|
||||
} else {
|
||||
if (defined($o_kbits)) { # metric in bits
|
||||
@@ -614,24 +633,24 @@
|
||||
# First set the modulus depending on highperf counters or not
|
||||
my $overfl_mod = defined ($o_highperf) ? 18446744073709551616 : 4294967296;
|
||||
# Check counter (s)
|
||||
- my $overfl = ($$resultf{$oid_perf_inoct[$i]} >= $file_values[$j][1] ) ? 0 : $overfl_mod;
|
||||
- $checkperf_out_raw[0] = ( ($overfl + $$resultf{$oid_perf_inoct[$i]} - $file_values[$j][1])/
|
||||
+ my $overfl = ($$result{$oid_perf_inoct[$i]} >= $file_values[$j][1] ) ? 0 : $overfl_mod;
|
||||
+ $checkperf_out_raw[0] = ( ($overfl + $$result{$oid_perf_inoct[$i]} - $file_values[$j][1])/
|
||||
($timenow - $file_values[$j][0] ));
|
||||
$checkperf_out[0] = $checkperf_out_raw[0] / $speed_metric;
|
||||
|
||||
- $overfl = ($$resultf{$oid_perf_outoct[$i]} >= $file_values[$j][2] ) ? 0 : $overfl_mod;
|
||||
- $checkperf_out_raw[1] = ( ($overfl + $$resultf{$oid_perf_outoct[$i]} - $file_values[$j][2])/
|
||||
+ $overfl = ($$result{$oid_perf_outoct[$i]} >= $file_values[$j][2] ) ? 0 : $overfl_mod;
|
||||
+ $checkperf_out_raw[1] = ( ($overfl + $$result{$oid_perf_outoct[$i]} - $file_values[$j][2])/
|
||||
($timenow - $file_values[$j][0] ));
|
||||
$checkperf_out[1] = $checkperf_out_raw[1] / $speed_metric;
|
||||
|
||||
if (defined($o_ext_checkperf)) {
|
||||
- $checkperf_out[2] = ( ($$resultf{$oid_perf_inerr[$i]} - $file_values[$j][3])/
|
||||
+ $checkperf_out[2] = ( ($$result{$oid_perf_inerr[$i]} - $file_values[$j][3])/
|
||||
($timenow - $file_values[$j][0] ))*60;
|
||||
- $checkperf_out[3] = ( ($$resultf{$oid_perf_outerr[$i]} - $file_values[$j][4])/
|
||||
+ $checkperf_out[3] = ( ($$result{$oid_perf_outerr[$i]} - $file_values[$j][4])/
|
||||
($timenow - $file_values[$j][0] ))*60;
|
||||
- $checkperf_out[4] = ( ($$resultf{$oid_perf_indisc[$i]} - $file_values[$j][5])/
|
||||
+ $checkperf_out[4] = ( ($$result{$oid_perf_indisc[$i]} - $file_values[$j][5])/
|
||||
($timenow - $file_values[$j][0] ))*60;
|
||||
- $checkperf_out[5] = ( ($$resultf{$oid_perf_outdisc[$i]} - $file_values[$j][6])/
|
||||
+ $checkperf_out[5] = ( ($$result{$oid_perf_outdisc[$i]} - $file_values[$j][6])/
|
||||
($timenow - $file_values[$j][0] ))*60;
|
||||
}
|
||||
}
|
||||
@@ -641,13 +660,13 @@
|
||||
}
|
||||
# Put the new values in the array and write the file
|
||||
$file_values[$n_rows][0]=$timenow;
|
||||
- $file_values[$n_rows][1]=$$resultf{$oid_perf_inoct[$i]};
|
||||
- $file_values[$n_rows][2]=$$resultf{$oid_perf_outoct[$i]};
|
||||
+ $file_values[$n_rows][1]=$$result{$oid_perf_inoct[$i]};
|
||||
+ $file_values[$n_rows][2]=$$result{$oid_perf_outoct[$i]};
|
||||
if (defined($o_ext_checkperf)) { # Add other values (error & disc)
|
||||
- $file_values[$n_rows][3]=$$resultf{$oid_perf_inerr[$i]};
|
||||
- $file_values[$n_rows][4]=$$resultf{$oid_perf_outerr[$i]};
|
||||
- $file_values[$n_rows][5]=$$resultf{$oid_perf_indisc[$i]};
|
||||
- $file_values[$n_rows][6]=$$resultf{$oid_perf_outdisc[$i]};
|
||||
+ $file_values[$n_rows][3]=$$result{$oid_perf_inerr[$i]};
|
||||
+ $file_values[$n_rows][4]=$$result{$oid_perf_outerr[$i]};
|
||||
+ $file_values[$n_rows][5]=$$result{$oid_perf_indisc[$i]};
|
||||
+ $file_values[$n_rows][6]=$$result{$oid_perf_outdisc[$i]};
|
||||
}
|
||||
$n_rows++;
|
||||
$return=write_file($temp_file_name,$n_rows,$n_items_check,@file_values);
|
||||
@@ -703,62 +722,79 @@
|
||||
}
|
||||
# Get rid of special caracters for performance in description
|
||||
$descr[$i] =~ s/'\/\(\)/_/g;
|
||||
- if ( $int_status == $ok_val) {
|
||||
+ if (( $int_status == $ok_val)||(defined($o_dormant) && $int_status == 5)) {
|
||||
$num_ok++;
|
||||
}
|
||||
if (( $int_status == 1 ) && defined ($o_perf)) {
|
||||
if (defined ($o_perfp)) { # output in % of speed
|
||||
if ($usable_data==1) {
|
||||
+ my $warn_factor=1;
|
||||
+ if (!defined($o_prct)) { # warn&crit in K|M|G B|bps -> put warn_factor to make %
|
||||
+ $warn_factor = (defined($o_meg)) ? 1000000 : (defined($o_gig)) ? 1000000000 : 1000;
|
||||
+ if (!defined($o_kbits)) { $warn_factor*=8;}
|
||||
+ $warn_factor/=$speed_real;
|
||||
+ $warn_factor*=100; # now turn into displayed % : 0,1 = 10%
|
||||
+ }
|
||||
$perf_out .= "'" . $descr[$i] ."_in_prct'=";
|
||||
- $perf_out .= sprintf("%.0f",$checkperf_out_raw[0] * 800 / $$resultf{$oid_speed[$i]}) ."%;";
|
||||
- $perf_out .= ($o_warn[0]!=0) ? $o_warn[0] . ";" : ";";
|
||||
- $perf_out .= ($o_crit[0]!=0) ? $o_crit[0] . ";" : ";";
|
||||
+ $perf_out .= sprintf("%.0f",$checkperf_out_raw[0] * 800 / $speed_real) ."%;";
|
||||
+ $perf_out .= ($o_warn[0]!=0) ? sprintf("%.0f",$o_warn[0]*$warn_factor) . ";" : ";";
|
||||
+ $perf_out .= ($o_crit[0]!=0) ? sprintf("%.0f",$o_crit[0]*$warn_factor) . ";" : ";";
|
||||
$perf_out .= "0;100 ";
|
||||
$perf_out .= "'" . $descr[$i] ."_out_prct'=";
|
||||
- $perf_out .= sprintf("%.0f",$checkperf_out_raw[1] * 800 / $$resultf{$oid_speed[$i]}) ."%;";
|
||||
- $perf_out .= ($o_warn[1]!=0) ? $o_warn[1] . ";" : ";";
|
||||
- $perf_out .= ($o_crit[1]!=0) ? $o_crit[1] . ";" : ";";
|
||||
+ $perf_out .= sprintf("%.0f",$checkperf_out_raw[1] * 800 / $speed_real) ."%;";
|
||||
+ $perf_out .= ($o_warn[1]!=0) ? sprintf("%.0f",$o_warn[1]*$warn_factor) . ";" : ";";
|
||||
+ $perf_out .= ($o_crit[1]!=0) ? sprintf("%.0f",$o_crit[1]*$warn_factor) . ";" : ";";
|
||||
$perf_out .= "0;100 ";
|
||||
}
|
||||
} elsif (defined ($o_perfr)) { # output in bites or Bytes /s
|
||||
if ($usable_data==1) {
|
||||
if (defined($o_kbits)) { # bps
|
||||
# put warning and critical levels into bps or Bps
|
||||
- my $warn_factor = (defined($o_meg)) ? 1000000 : (defined($o_gig)) ? 1000000000 : 1000;
|
||||
+ my $warn_factor;
|
||||
+ if (defined($o_prct)) { # warn&crit in % -> put warn_factor to 1% of speed in bps
|
||||
+ $warn_factor=$speed_real/100;
|
||||
+ } else { # just convert from K|M|G bps
|
||||
+ $warn_factor = (defined($o_meg)) ? 1000000 : (defined($o_gig)) ? 1000000000 : 1000;
|
||||
+ }
|
||||
$perf_out .= "'" . $descr[$i] ."_in_bps'=";
|
||||
$perf_out .= sprintf("%.0f",$checkperf_out_raw[0] * 8) .";";
|
||||
$perf_out .= ($o_warn[0]!=0) ? $o_warn[0]*$warn_factor . ";" : ";";
|
||||
$perf_out .= ($o_crit[0]!=0) ? $o_crit[0]*$warn_factor . ";" : ";";
|
||||
- $perf_out .= "0;". $$resultf{$oid_speed[$i]} ." ";
|
||||
+ $perf_out .= "0;". $speed_real ." ";
|
||||
$perf_out .= "'" . $descr[$i] ."_out_bps'=";
|
||||
$perf_out .= sprintf("%.0f",$checkperf_out_raw[1] * 8) .";";
|
||||
$perf_out .= ($o_warn[1]!=0) ? $o_warn[1]*$warn_factor . ";" : ";";
|
||||
$perf_out .= ($o_crit[1]!=0) ? $o_crit[1]*$warn_factor . ";" : ";";
|
||||
- $perf_out .= "0;". $$resultf{$oid_speed[$i]} ." ";
|
||||
+ $perf_out .= "0;". $speed_real ." ";
|
||||
} else { # Bps
|
||||
- my $warn_factor = (defined($o_meg)) ? 1048576 : (defined($o_gig)) ? 1073741824 : 1024;
|
||||
+ my $warn_factor;
|
||||
+ if (defined($o_prct)) { # warn&crit in % -> put warn_factor to 1% of speed in Bps
|
||||
+ $warn_factor=$speed_real/800;
|
||||
+ } else { # just convert from K|M|G bps
|
||||
+ $warn_factor = (defined($o_meg)) ? 1048576 : (defined($o_gig)) ? 1073741824 : 1024;
|
||||
+ }
|
||||
$perf_out .= "'" . $descr[$i] ."_in_Bps'=" . sprintf("%.0f",$checkperf_out_raw[0]) .";";
|
||||
$perf_out .= ($o_warn[0]!=0) ? $o_warn[0]*$warn_factor . ";" : ";";
|
||||
$perf_out .= ($o_crit[0]!=0) ? $o_crit[0]*$warn_factor . ";" : ";";
|
||||
- $perf_out .= "0;". $$resultf{$oid_speed[$i]} ." ";
|
||||
+ $perf_out .= "0;". $speed_real / 8 ." ";
|
||||
$perf_out .= "'" . $descr[$i] ."_out_Bps'=" . sprintf("%.0f",$checkperf_out_raw[1]) .";" ;
|
||||
$perf_out .= ($o_warn[1]!=0) ? $o_warn[1]*$warn_factor . ";" : ";";
|
||||
$perf_out .= ($o_crit[1]!=0) ? $o_crit[1]*$warn_factor . ";" : ";";
|
||||
- $perf_out .= "0;". $$resultf{$oid_speed[$i]} ." ";
|
||||
+ $perf_out .= "0;". $speed_real / 8 ." ";
|
||||
}
|
||||
}
|
||||
} else { # output in octet counter
|
||||
- $perf_out .= "'" . $descr[$i] ."_in_octet'=". $$resultf{$oid_perf_inoct[$i]} ."c ";
|
||||
- $perf_out .= "'" . $descr[$i] ."_out_octet'=". $$resultf{$oid_perf_outoct[$i]} ."c";
|
||||
+ $perf_out .= "'" . $descr[$i] ."_in_octet'=". $$result{$oid_perf_inoct[$i]} ."c ";
|
||||
+ $perf_out .= "'" . $descr[$i] ."_out_octet'=". $$result{$oid_perf_outoct[$i]} ."c ";
|
||||
}
|
||||
if (defined ($o_perfe)) {
|
||||
- $perf_out .= " '" . $descr[$i] ."_in_error'=". $$resultf{$oid_perf_inerr[$i]} ."c ";
|
||||
- $perf_out .= "'" . $descr[$i] ."_in_discard'=". $$resultf{$oid_perf_indisc[$i]} ."c ";
|
||||
- $perf_out .= "'" . $descr[$i] ."_out_error'=". $$resultf{$oid_perf_outerr[$i]} ."c ";
|
||||
- $perf_out .= "'" . $descr[$i] ."_out_discard'=". $$resultf{$oid_perf_outdisc[$i]} ."c";
|
||||
+ $perf_out .= "'" . $descr[$i] ."_in_error'=". $$result{$oid_perf_inerr[$i]} ."c ";
|
||||
+ $perf_out .= "'" . $descr[$i] ."_in_discard'=". $$result{$oid_perf_indisc[$i]} ."c ";
|
||||
+ $perf_out .= "'" . $descr[$i] ."_out_error'=". $$result{$oid_perf_outerr[$i]} ."c ";
|
||||
+ $perf_out .= "'" . $descr[$i] ."_out_discard'=". $$result{$oid_perf_outdisc[$i]} ."c ";
|
||||
}
|
||||
if (defined ($o_perfs)) {
|
||||
- $perf_out .= " '" . $descr[$i] ."_speed_bps'=".$$resultf{$oid_speed[$i]};
|
||||
+ $perf_out .= "'" . $descr[$i] ."_speed_bps'=".$speed_real;
|
||||
}
|
||||
}
|
||||
}
|
43
debian/patches/03_check_snmp_load
vendored
43
debian/patches/03_check_snmp_load
vendored
|
@ -1,43 +0,0 @@
|
|||
## 03_check_snmp_load by Jan Wagner <waja@cyconet.org>
|
||||
##
|
||||
## DP: Update script to version 1.12
|
||||
|
||||
diff -Nur nagios-snmp-plugins-1.1.1.orig/check_snmp_load.pl nagios-snmp-plugins-1.1.1/check_snmp_load.pl
|
||||
--- nagios-snmp-plugins-1.1.1.orig/check_snmp_load.pl 2007-04-16 19:41:20.000000000 +0200
|
||||
+++ nagios-snmp-plugins-1.1.1/check_snmp_load.pl 2007-10-12 22:23:23.000000000 +0200
|
||||
@@ -1,11 +1,10 @@
|
||||
#!/usr/bin/perl -w
|
||||
############################## check_snmp_load #################
|
||||
-# Version : 1.3.2
|
||||
-# Date : Jan 16 2007
|
||||
+my $Version='1.12';
|
||||
+# Date : Oct 12 2007
|
||||
# Author : Patrick Proy ( patrick at proy.org)
|
||||
-# Help : http://www.manubulon.com/nagios/
|
||||
+# Help : http://nagios.manubulon.com/
|
||||
# Licence : GPL - http://www.fsf.org/licenses/gpl.txt
|
||||
-# Changelog : HP-UX load added.
|
||||
# Contributors : F. Lacroix and many others !!!
|
||||
#################################################################
|
||||
#
|
||||
@@ -18,10 +17,8 @@
|
||||
|
||||
# Nagios specific
|
||||
|
||||
-use lib "/usr/local/nagios/libexec";
|
||||
-use utils qw(%ERRORS $TIMEOUT);
|
||||
-#my $TIMEOUT = 15;
|
||||
-#my %ERRORS=('OK'=>0,'WARNING'=>1,'CRITICAL'=>2,'UNKNOWN'=>3,'DEPENDENT'=>4);
|
||||
+my $TIMEOUT = 15;
|
||||
+my %ERRORS=('OK'=>0,'WARNING'=>1,'CRITICAL'=>2,'UNKNOWN'=>3,'DEPENDENT'=>4);
|
||||
|
||||
# SNMP Datas
|
||||
|
||||
@@ -94,7 +91,6 @@
|
||||
|
||||
# Globals
|
||||
|
||||
-my $Version='1.3.2';
|
||||
|
||||
my $o_host = undef; # hostname
|
||||
my $o_community = undef; # community
|
207
debian/patches/04_check_snmp_process
vendored
207
debian/patches/04_check_snmp_process
vendored
|
@ -1,207 +0,0 @@
|
|||
## 04_check_snmp_process by Jan Wagner <waja@cyconet.org>
|
||||
##
|
||||
## DP: Update script to version 1.10
|
||||
|
||||
diff -Nur nagios-snmp-plugins-1.1.1.orig/check_snmp_process.pl nagios-snmp-plugins-1.1.1/check_snmp_process.pl
|
||||
--- nagios-snmp-plugins-1.1.1.orig/check_snmp_process.pl 2007-03-12 21:36:02.000000000 +0100
|
||||
+++ nagios-snmp-plugins-1.1.1/check_snmp_process.pl 2007-10-12 22:23:24.000000000 +0200
|
||||
@@ -1,45 +1,43 @@
|
||||
#!/usr/bin/perl -w
|
||||
############################## check_snmp_process ##############
|
||||
-# Version : 1.4
|
||||
-# Date : March 12 2007
|
||||
-# Author : Patrick Proy (patrick at proy.org)
|
||||
+my $Version='1.10';
|
||||
+# Date : Oct 12 2007
|
||||
+# Author : Patrick Proy (patrick at proy dot org)
|
||||
# Help : http://nagios.manubulon.com
|
||||
# Licence : GPL - http://www.fsf.org/licenses/gpl.txt
|
||||
-# Contrib : Makina Corpus
|
||||
+# Contrib : Makina Corpus, adam At greekattic d0t com
|
||||
# TODO : put $o_delta as an option
|
||||
-# Contrib :
|
||||
+# If testing on localhost, selects itself....
|
||||
###############################################################
|
||||
#
|
||||
# help : ./check_snmp_process -h
|
||||
|
||||
+use strict;
|
||||
+use Net::SNMP;
|
||||
+use Getopt::Long;
|
||||
+
|
||||
############### BASE DIRECTORY FOR TEMP FILE ########
|
||||
my $o_base_dir="/tmp/tmp_Nagios_proc.";
|
||||
my $file_history=200; # number of data to keep in files.
|
||||
my $delta_of_time_to_make_average=300; # 5minutes by default
|
||||
-
|
||||
-use strict;
|
||||
-use Net::SNMP;
|
||||
-use Getopt::Long;
|
||||
|
||||
# Nagios specific
|
||||
|
||||
-use lib "/usr/local/nagios/libexec";
|
||||
-use utils qw(%ERRORS $TIMEOUT);
|
||||
-#my $TIMEOUT = 5;
|
||||
-#my %ERRORS=('OK'=>0,'WARNING'=>1,'CRITICAL'=>2,'UNKNOWN'=>3,'DEPENDENT'=>4);
|
||||
+my $TIMEOUT = 15;
|
||||
+my %ERRORS=('OK'=>0,'WARNING'=>1,'CRITICAL'=>2,'UNKNOWN'=>3,'DEPENDENT'=>4);
|
||||
|
||||
# SNMP Datas
|
||||
my $process_table= '1.3.6.1.2.1.25.4.2.1';
|
||||
my $index_table = '1.3.6.1.2.1.25.4.2.1.1';
|
||||
my $run_name_table = '1.3.6.1.2.1.25.4.2.1.2';
|
||||
my $run_path_table = '1.3.6.1.2.1.25.4.2.1.4';
|
||||
+my $run_param_table = '1.3.6.1.2.1.25.4.2.1.5';
|
||||
my $proc_mem_table = '1.3.6.1.2.1.25.5.1.1.2'; # Kbytes
|
||||
my $proc_cpu_table = '1.3.6.1.2.1.25.5.1.1.1'; # Centi sec of CPU
|
||||
my $proc_run_state = '1.3.6.1.2.1.25.4.2.1.7';
|
||||
|
||||
# Globals
|
||||
|
||||
-my $Version='1.4';
|
||||
|
||||
my $o_host = undef; # hostname
|
||||
my $o_community =undef; # community
|
||||
@@ -57,6 +55,8 @@
|
||||
my $o_path= undef; # check path instead of name
|
||||
my $o_inverse= undef; # checks max instead of min number of process
|
||||
my $o_get_all= undef; # get all tables at once
|
||||
+my $o_param= undef; # Add process parameters for selection
|
||||
+my $o_perf= undef; # Add performance output
|
||||
my $o_timeout= 5; # Default 5s Timeout
|
||||
# SNMP V3 specific
|
||||
my $o_login= undef; # snmp v3 login
|
||||
@@ -80,7 +80,7 @@
|
||||
sub p_version { print "check_snmp_process version : $Version\n"; }
|
||||
|
||||
sub print_usage {
|
||||
- print "Usage: $0 [-v] -H <host> -C <snmp_community> [-2] | (-l login -x passwd) [-p <port>] -n <name> [-w <min_proc>[,<max_proc>] -c <min_proc>[,max_proc] ] [-m<warn Mb>,<crit Mb> -a -u<warn %>,<crit%> ] [-t <timeout>] [-o <octet_length>] [-f ] [-r] [-V] [-g]\n";
|
||||
+ print "Usage: $0 [-v] -H <host> -C <snmp_community> [-2] | (-l login -x passwd) [-p <port>] -n <name> [-w <min_proc>[,<max_proc>] -c <min_proc>[,max_proc] ] [-m<warn Mb>,<crit Mb> -a -u<warn %>,<crit%> -d<delta> ] [-t <timeout>] [-o <octet_length>] [-f -A -F ] [-r] [-V] [-g]\n";
|
||||
}
|
||||
|
||||
sub isnotnum { # Return true if arg is not a number
|
||||
@@ -174,6 +174,12 @@
|
||||
-f, --fullpath
|
||||
Use full path name instead of process name
|
||||
(Windows doesn't provide full path name)
|
||||
+-A, --param
|
||||
+ Add parameters to select processes.
|
||||
+ ex : "named.*-t /var/named/chroot" will only select named process with this parameter
|
||||
+-F, --perfout
|
||||
+ Add performance output
|
||||
+ outputs : memory_usage, num_process, cpu_usage
|
||||
-w, --warn=MIN[,MAX]
|
||||
Number of process that will cause a warning
|
||||
-1 for no warning, MAX must be >0. Ex : -w-1,50
|
||||
@@ -193,6 +199,8 @@
|
||||
checks cpu usage of all process
|
||||
values are warning and critical values in % of CPU usage
|
||||
if more than one CPU, value can be > 100% : 100%=1 CPU
|
||||
+-d, --delta=seconds
|
||||
+ make an average of <delta> seconds for CPU (default 300=5min)
|
||||
-g, --getall
|
||||
In some cases, it is necessary to get all data at once because
|
||||
process die very frequently.
|
||||
@@ -242,6 +250,9 @@
|
||||
'2' => \$o_version2, 'v2c' => \$o_version2,
|
||||
'o:i' => \$o_octetlength, 'octetlength:i' => \$o_octetlength,
|
||||
'g' => \$o_get_all, 'getall' => \$o_get_all,
|
||||
+ 'A' => \$o_param, 'param' => \$o_param,
|
||||
+ 'F' => \$o_perf, 'perfout' => \$o_perf,
|
||||
+ 'd:i' => \$o_delta, 'delta:i' => \$o_delta,
|
||||
'V' => \$o_version, 'version' => \$o_version
|
||||
);
|
||||
if (defined ($o_help)) { help(); exit $ERRORS{"UNKNOWN"}};
|
||||
@@ -411,6 +422,19 @@
|
||||
exit $ERRORS{"UNKNOWN"};
|
||||
}
|
||||
|
||||
+my $resultat_param=undef;
|
||||
+if (defined($o_param)) { # Get parameter table too
|
||||
+ $resultat_param = (Net::SNMP->VERSION < 4) ?
|
||||
+ $session->get_table($run_param_table)
|
||||
+ :$session->get_table(Baseoid => $run_param_table);
|
||||
+ if (!defined($resultat_param)) {
|
||||
+ printf("ERROR: Process param table : %s.\n", $session->error);
|
||||
+ $session->close;
|
||||
+ exit $ERRORS{"UNKNOWN"};
|
||||
+ }
|
||||
+
|
||||
+}
|
||||
+
|
||||
if (defined ($o_get_all)) {
|
||||
$getall_run = (Net::SNMP->VERSION < 4) ?
|
||||
$session->get_table($proc_run_state )
|
||||
@@ -458,8 +482,14 @@
|
||||
verb("Filter : $o_descr");
|
||||
|
||||
foreach my $key ( keys %$resultat) {
|
||||
- verb("OID : $key, Desc : $$resultat{$key}");
|
||||
# test by regexp or exact match
|
||||
+ # First add param if necessary
|
||||
+ if (defined($o_param)){
|
||||
+ my $pid = (split /\./,$key)[-1];
|
||||
+ $pid = $run_param_table .".".$pid;
|
||||
+ $$resultat{$key} .= " " . $$resultat_param{$pid};
|
||||
+ }
|
||||
+ verb("OID : $key, Desc : $$resultat{$key}");
|
||||
my $test = defined($o_noreg)
|
||||
? $$resultat{$key} eq $o_descr
|
||||
: $$resultat{$key} =~ /$o_descr/;
|
||||
@@ -545,6 +575,7 @@
|
||||
}
|
||||
|
||||
my $final_status=0;
|
||||
+my $perf_output;
|
||||
my ($res_memory,$res_cpu)=(0,0);
|
||||
my $memory_print="";
|
||||
my $cpu_print="";
|
||||
@@ -571,6 +602,9 @@
|
||||
} else {
|
||||
$memory_print=", Mem : ".sprintf("%.1f",$res_memory)."Mb OK";
|
||||
}
|
||||
+ if (defined($o_perf)) {
|
||||
+ $perf_output= "'memory_usage'=".sprintf("%.1f",$res_memory) ."MB;".$o_memL[0].";".$o_memL[1];
|
||||
+ }
|
||||
}
|
||||
|
||||
######## Checks CPU usage
|
||||
@@ -609,6 +643,10 @@
|
||||
if ($file_values[$j][0] > $trigger_low) {
|
||||
# found value = centiseconds / seconds = %cpu
|
||||
$found_value= ($res_cpu-$file_values[$j][1]) / ($timenow - $file_values[$j][0] );
|
||||
+ if ($found_value <0) { # in case of program restart
|
||||
+ $j=0;$found_value=undef; # don't look for more values
|
||||
+ $n_rows=0; # reset file
|
||||
+ }
|
||||
}
|
||||
}
|
||||
$j--;
|
||||
@@ -631,6 +669,10 @@
|
||||
} else {
|
||||
$cpu_print.=", Cpu : ".sprintf("%.0f",$found_value)."% OK";
|
||||
}
|
||||
+ if (defined($o_perf)) {
|
||||
+ if (!defined($perf_output)) {$perf_output="";} else {$perf_output.=" ";}
|
||||
+ $perf_output.= "'cpu_usage'=". sprintf("%.0f",$found_value)."%;".$o_cpuL[0].";".$o_cpuL[1];
|
||||
+ }
|
||||
} else {
|
||||
if ($final_status==0) { $final_status=3 };
|
||||
$cpu_print.=", No data for CPU (".$n_rows." line(s)):UNKNOWN";
|
||||
@@ -659,7 +701,14 @@
|
||||
print " (<= ",$o_warnL[1],"):OK";
|
||||
}
|
||||
|
||||
-print $memory_print,$cpu_print,"\n";
|
||||
+print $memory_print,$cpu_print;
|
||||
+
|
||||
+if (defined($o_perf)) {
|
||||
+ if (!defined($perf_output)) {$perf_output="";} else {$perf_output.=" ";}
|
||||
+ $perf_output.= "'num_process'=". $num_int_ok.";".$o_warnL[0].";".$o_critL[0];
|
||||
+ print " | ",$perf_output;
|
||||
+}
|
||||
+print "\n";
|
||||
|
||||
if ($final_status==2) { exit $ERRORS{"CRITICAL"};}
|
||||
if ($final_status==1) { exit $ERRORS{"WARNING"};}
|
222
debian/patches/05_check_snmp_storage
vendored
222
debian/patches/05_check_snmp_storage
vendored
|
@ -1,222 +0,0 @@
|
|||
## 05_check_snmp_storage by Jan Wagner <waja@cyconet.org>
|
||||
##
|
||||
## DP: Update script to version 1.3.3
|
||||
|
||||
diff -Nur nagios-snmp-plugins-1.1.1.orig/check_snmp_storage.pl nagios-snmp-plugins-1.1.1/check_snmp_storage.pl
|
||||
--- nagios-snmp-plugins-1.1.1.orig/check_snmp_storage.pl 2007-03-12 22:01:36.000000000 +0100
|
||||
+++ nagios-snmp-plugins-1.1.1/check_snmp_storage.pl 2007-10-12 22:23:24.000000000 +0200
|
||||
@@ -1,12 +1,12 @@
|
||||
#!/usr/bin/perl -w
|
||||
############################## check_snmp_storage ##############
|
||||
-# Version : 1.3.2
|
||||
-# Date : March 12 2007
|
||||
+# Version : 1.3.3
|
||||
+# Date : Jun 1 2007
|
||||
# Author : Patrick Proy ( patrick at proy.org)
|
||||
# Help : http://nagios.manubulon.com
|
||||
# Licence : GPL - http://www.fsf.org/licenses/gpl.txt
|
||||
# TODO :
|
||||
-# Contribs : Dimo Velev, Makina Corpus
|
||||
+# Contribs : Dimo Velev, Makina Corpus, A. Greiner-Bär
|
||||
#################################################################
|
||||
#
|
||||
# help : ./check_snmp_storage -h
|
||||
@@ -57,7 +57,7 @@
|
||||
# Globals
|
||||
|
||||
my $Name='check_snmp_storage';
|
||||
-my $Version='1.3.2';
|
||||
+my $Version='1.3.3';
|
||||
|
||||
my $o_host = undef; # hostname
|
||||
my $o_community = undef; # community
|
||||
@@ -80,6 +80,8 @@
|
||||
my $o_perf= undef; # Output performance data
|
||||
my $o_short= undef; # Short output parameters
|
||||
my @o_shortL= undef; # output type,where,cut
|
||||
+my $o_reserve= 0; # % reserved blocks (A. Greiner-Bär patch)
|
||||
+my $o_giga= undef; # output and levels in gigabytes instead of megabytes
|
||||
# SNMPv3 specific
|
||||
my $o_login= undef; # Login for snmpv3
|
||||
my $o_passwd= undef; # Pass for snmpv3
|
||||
@@ -95,7 +97,7 @@
|
||||
sub p_version { print "$Name version : $Version\n"; }
|
||||
|
||||
sub print_usage {
|
||||
- print "Usage: $Name [-v] -H <host> -C <snmp_community> [-2] | (-l login -x passwd [-X pass -L <authp>,<privp>]) [-p <port>] -m <name in desc_oid> [-q storagetype] -w <warn_level> -c <crit_level> [-t <timeout>] [-T pl|pu|bl|bu ] [-r] [-s] [-i] [-e] [-S 0|1[,1,<car>]] [-o <octet_length>]\n";
|
||||
+ print "Usage: $Name [-v] -H <host> -C <snmp_community> [-2] | (-l login -x passwd [-X pass -L <authp>,<privp>]) [-p <port>] -m <name in desc_oid> [-q storagetype] -w <warn_level> -c <crit_level> [-t <timeout>] [-T pl|pu|bl|bu ] [-r -s -i -G] [-e] [-S 0|1[,1,<car>]] [-o <octet_length>] [-R <% reserved>]\n";
|
||||
}
|
||||
|
||||
sub round ($$) {
|
||||
@@ -122,7 +124,7 @@
|
||||
|
||||
sub help {
|
||||
print "\nSNMP Disk Monitor for Nagios version ",$Version,"\n";
|
||||
- print "(c)2004-2006 Patrick Proy\n\n";
|
||||
+ print "(c)2004-2007 Patrick Proy\n\n";
|
||||
print_usage();
|
||||
print <<EOT;
|
||||
By default, plugin will monitor %used on drives :
|
||||
@@ -135,7 +137,7 @@
|
||||
name or IP address of host to check
|
||||
-C, --community=COMMUNITY NAME
|
||||
community name for the host's SNMP agent (implies SNMP v1)
|
||||
-2, --v2c
|
||||
+-2, --v2c
|
||||
Use snmp v2c
|
||||
-l, --login=LOGIN ; -x, --passwd=PASSWD
|
||||
Login and auth password for snmpv3 authentication
|
||||
@@ -179,6 +181,11 @@
|
||||
-c, --critical=INTEGER
|
||||
percent / MB of disk used to generate CRITICAL state
|
||||
you can add the % sign
|
||||
+-R, --reserved=INTEGER
|
||||
+ % reserved blocks for superuser
|
||||
+ For ext2/3 filesystems, it is 5% by default
|
||||
+-G, --gigabyte
|
||||
+ output, warning & critical levels in gigabytes
|
||||
-f, --perfparse
|
||||
Perfparse compatible output
|
||||
-S, --short=<type>[,<where>,<cut>]
|
||||
@@ -245,7 +252,9 @@
|
||||
'q:s' => \$o_storagetype, 'storagetype:s'=> \$o_storagetype,
|
||||
'S:s' => \$o_short, 'short:s' => \$o_short,
|
||||
'o:i' => \$o_octetlength, 'octetlength:i' => \$o_octetlength,
|
||||
- 'f' => \$o_perf, 'perfparse' => \$o_perf
|
||||
+ 'f' => \$o_perf, 'perfparse' => \$o_perf,
|
||||
+ 'R:i' => \$o_reserve, 'reserved:i' => \$o_reserve,
|
||||
+ 'G' => \$o_giga, 'gigabyte' => \$o_giga
|
||||
);
|
||||
if (defined($o_help) ) { help(); exit $ERRORS{"UNKNOWN"}};
|
||||
if (defined($o_version) ) { p_version(); exit $ERRORS{"UNKNOWN"}};
|
||||
@@ -271,6 +280,9 @@
|
||||
# Check compulsory attributes
|
||||
if ( ! defined($o_descr) || ! defined($o_host) || !defined($o_warn) ||
|
||||
!defined($o_crit)) { print_usage(); exit $ERRORS{"UNKNOWN"}};
|
||||
+ # Get rid of % sign if any
|
||||
+ $o_warn =~ s/\%//;
|
||||
+ $o_crit =~ s/\%//;
|
||||
# Check for positive numbers
|
||||
if (($o_warn < 0) || ($o_crit < 0)) { print " warn and critical > 0 \n";print_usage(); exit $ERRORS{"UNKNOWN"}};
|
||||
# check if warn or crit in % and MB is tested
|
||||
@@ -278,9 +290,6 @@
|
||||
print "warning or critical cannot be in % when MB are tested\n";
|
||||
print_usage(); exit $ERRORS{"UNKNOWN"};
|
||||
}
|
||||
- # Get rid of % sign
|
||||
- $o_warn =~ s/\%//;
|
||||
- $o_crit =~ s/\%//;
|
||||
# Check warning and critical values
|
||||
if ( ( $o_type eq 'pu' ) || ( $o_type eq 'bu' )) {
|
||||
if ($o_warn >= $o_crit) { print " warn < crit if type=",$o_type,"\n";print_usage(); exit $ERRORS{"UNKNOWN"}};
|
||||
@@ -306,6 +315,10 @@
|
||||
if (defined ($o_octetlength) && (isnnum($o_octetlength) || $o_octetlength > 65535 || $o_octetlength < 484 )) {
|
||||
print "octet lenght must be < 65535 and > 484\n";print_usage(); exit $ERRORS{"UNKNOWN"};
|
||||
}
|
||||
+ #### reserved blocks checks (A. Greiner-Bär patch).
|
||||
+ if (defined ($o_reserve) && (isnnum($o_reserve) || $o_reserve > 99 || $o_reserve < 0 )) {
|
||||
+ print "reserved blocks must be < 100 and >= 0\n";print_usage(); exit $ERRORS{"UNKNOWN"};
|
||||
+ }
|
||||
}
|
||||
|
||||
########## MAIN #######
|
||||
@@ -521,21 +534,35 @@
|
||||
my $crit_state=0;
|
||||
my ($p_warn,$p_crit);
|
||||
my $output=undef;
|
||||
+my $output_metric_val = 1024**2;
|
||||
+my $output_metric = "M";
|
||||
+# Set the metric
|
||||
+if (defined($o_giga)) {
|
||||
+ $output_metric_val *= 1024;
|
||||
+ $output_metric='G';
|
||||
+}
|
||||
+
|
||||
for ($i=0;$i<$num_int;$i++) {
|
||||
verb("Descr : $descr[$i]");
|
||||
verb("Size : $$result{$size_table . $tindex[$i]}");
|
||||
verb("Used : $$result{$used_table . $tindex[$i]}");
|
||||
verb("Alloc : $$result{$alloc_units . $tindex[$i]}");
|
||||
- my $to = $$result{$size_table . $tindex[$i]} * $$result{$alloc_units . $tindex[$i]} / 1024**2;
|
||||
+ if (!defined($$result{$size_table . $tindex[$i]}) ||
|
||||
+ !defined($$result{$used_table . $tindex[$i]}) ||
|
||||
+ !defined ($$result{$alloc_units . $tindex[$i]})) {
|
||||
+ print "Data not fully defined for storage ",$descr[$i]," : UNKNOWN\n";
|
||||
+ exit $ERRORS{"UNKNOWN"};
|
||||
+ }
|
||||
+ my $to = $$result{$size_table . $tindex[$i]} * ( ( 100 - $o_reserve ) / 100 ) * $$result{$alloc_units . $tindex[$i]} / $output_metric_val;
|
||||
my $pu=undef;
|
||||
if ( $$result{$used_table . $tindex[$i]} != 0 ) {
|
||||
- $pu = $$result{$used_table . $tindex[$i]}*100 / $$result{$size_table . $tindex[$i]};
|
||||
+ $pu = $$result{$used_table . $tindex[$i]}* 100 / ( $$result{$size_table . $tindex[$i]} * ( 100 - $o_reserve ) / 100 );
|
||||
}else {
|
||||
$pu=0;
|
||||
}
|
||||
- my $bu = $$result{$used_table . $tindex[$i]} * $$result{$alloc_units . $tindex[$i]} / 1024**2;
|
||||
+ my $bu = $$result{$used_table . $tindex[$i]} * $$result{$alloc_units . $tindex[$i]} / $output_metric_val;
|
||||
my $pl = 100 - $pu;
|
||||
- my $bl = ($$result{$size_table . $tindex[$i]}- $$result{$used_table . $tindex[$i]}) * $$result{$alloc_units . $tindex[$i]} / 1024**2;
|
||||
+ my $bl = ( ( $$result{$size_table . $tindex[$i]} * ( ( 100 - $o_reserve ) / 100 ) - ( $$result{$used_table . $tindex[$i]} ) ) * $$result{$alloc_units . $tindex[$i]} / $output_metric_val );
|
||||
# add a ' ' if some data exists in $perf_out
|
||||
$perf_out .= " " if (defined ($perf_out)) ;
|
||||
##### Ouputs and checks
|
||||
@@ -554,7 +581,7 @@
|
||||
|| (($pu >= $o_warn) && ($locstate=$warn_state=1));
|
||||
if (defined($o_shortL[2])) {}
|
||||
if (!defined($o_shortL[0]) || ($locstate==1)) { # print full output if warn or critical state
|
||||
- $output.=sprintf ("%s: %.0f%%used(%.0fMB/%.0fMB) ",$descr[$i],$pu,$bu,$to);
|
||||
+ $output.=sprintf ("%s: %.0f%%used(%.0f%sB/%.0f%sB) ",$descr[$i],$pu,$bu,$output_metric,$to,$output_metric);
|
||||
} elsif ($o_shortL[0] == 1) {
|
||||
$output.=sprintf ("%s: %.0f%% ",$descr[$i],$pu);
|
||||
}
|
||||
@@ -566,9 +593,9 @@
|
||||
( ($bu >= $o_crit) && ($locstate=$crit_state=1) )
|
||||
|| ( ($bu >= $o_warn) && ($locstate=$warn_state=1) );
|
||||
if (!defined($o_shortL[0]) || ($locstate==1)) { # print full output if warn or critical state
|
||||
- $output.=sprintf("%s: %.0fMBused/%.0fMB (%.0f%%) ",$descr[$i],$bu,$to,$pu);
|
||||
+ $output.=sprintf("%s: %.0f%sBused/%.0f%sB (%.0f%%) ",$descr[$i],$bu,$output_metric,$to,$output_metric,$pu);
|
||||
} elsif ($o_shortL[0] == 1) {
|
||||
- $output.=sprintf("%s: %.0fMB ",$descr[$i],$bu);
|
||||
+ $output.=sprintf("%s: %.0f%sB ",$descr[$i],$bu,$output_metric);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -578,9 +605,9 @@
|
||||
( ($bl <= $o_crit) && ($locstate=$crit_state=1) )
|
||||
|| ( ($bl <= $o_warn) && ($locstate=$warn_state=1) );
|
||||
if (!defined($o_shortL[0]) || ($locstate==1)) { # print full output if warn or critical state
|
||||
- $output.=sprintf ("%s: %.0fMBleft/%.0fMB (%.0f%%) ",$descr[$i],$bl,$to,$pl);
|
||||
+ $output.=sprintf ("%s: %.0f%sBleft/%.0f%sB (%.0f%%) ",$descr[$i],$bl,$output_metric,$to,$output_metric,$pl);
|
||||
} elsif ($o_shortL[0] == 1) {
|
||||
- $output.=sprintf ("%s: %.0fMB ",$descr[$i],$bl);
|
||||
+ $output.=sprintf ("%s: %.0f%sB ",$descr[$i],$bl,$output_metric);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -590,13 +617,13 @@
|
||||
( ($pl <= $o_crit) && ($locstate=$crit_state=1) )
|
||||
|| ( ($pl <= $o_warn) && ($locstate=$warn_state=1) );
|
||||
if (!defined($o_shortL[0]) || ($locstate==1)) { # print full output if warn or critical state
|
||||
- $output.=sprintf ("%s: %.0f%%left(%.0fMB/%.0fMB) ",$descr[$i],$pl,$bl,$to);
|
||||
+ $output.=sprintf ("%s: %.0f%%left(%.0f%sB/%.0f%sB) ",$descr[$i],$pl,$bl,$output_metric,$to,$output_metric);
|
||||
} elsif ($o_shortL[0] == 1) {
|
||||
$output.=sprintf ("%s: %.0f%% ",$descr[$i],$pl);
|
||||
}
|
||||
}
|
||||
# Performance output (in MB)
|
||||
- $perf_out .= "'".$Pdescr. "'=" . round($bu,0) . "MB;" . round($p_warn,0)
|
||||
+ $perf_out .= "'".$Pdescr. "'=" . round($bu,0) . $output_metric ."B;" . round($p_warn,0)
|
||||
. ";" . round($p_crit,0) . ";0;" . round($to,0);
|
||||
}
|
||||
|
||||
@@ -606,8 +633,8 @@
|
||||
my $comp_unit=undef;
|
||||
($o_type eq "pu") && ($comp_oper ="<") && ($comp_unit ="%");
|
||||
($o_type eq "pl") && ($comp_oper =">") && ($comp_unit ="%");
|
||||
-($o_type eq "bu") && ($comp_oper ="<") && ($comp_unit ="MB");
|
||||
-($o_type eq 'bl') && ($comp_oper =">") && ($comp_unit ="MB");
|
||||
+($o_type eq "bu") && ($comp_oper ="<") && ($comp_unit = $output_metric."B");
|
||||
+($o_type eq 'bl') && ($comp_oper =">") && ($comp_unit =$output_metric."B");
|
||||
|
||||
if (!defined ($output)) { $output="All selected storages "; }
|
||||
|
67
debian/patches/06_check_snmp_win
vendored
67
debian/patches/06_check_snmp_win
vendored
|
@ -1,67 +0,0 @@
|
|||
## 06_check_snmp_win by Jan Wagner <waja@cyconet.org>
|
||||
##
|
||||
## DP: Update script to version 1.1
|
||||
|
||||
diff -Nur nagios-snmp-plugins-1.1.1.orig/check_snmp_win.pl nagios-snmp-plugins-1.1.1/check_snmp_win.pl
|
||||
--- nagios-snmp-plugins-1.1.1.orig/check_snmp_win.pl 2006-11-29 20:59:55.000000000 +0100
|
||||
+++ nagios-snmp-plugins-1.1.1/check_snmp_win.pl 2007-10-12 22:23:25.000000000 +0200
|
||||
@@ -1,10 +1,11 @@
|
||||
#!/usr/bin/perl -w
|
||||
############################## check_snmp_win ##############
|
||||
-# Version : 0.6
|
||||
-# Date : Nov 29 2006
|
||||
+my $Version='1.1';
|
||||
+# Date : Oct 12 2007
|
||||
# Author : Patrick Proy (patrick at proy.org)
|
||||
-# Help : http://www.manubulon.com/nagios/
|
||||
+# Help : http://nagios.manubulon.com/
|
||||
# Licence : GPL - http://www.fsf.org/licenses/gpl.txt
|
||||
+# Contrib : Tenaku
|
||||
# TODO :
|
||||
###############################################################
|
||||
#
|
||||
@@ -16,10 +17,10 @@
|
||||
|
||||
# Nagios specific
|
||||
|
||||
-use lib "/usr/local/nagios/libexec";
|
||||
-use utils qw(%ERRORS $TIMEOUT);
|
||||
-#my $TIMEOUT = 5;
|
||||
-#my %ERRORS=('OK'=>0,'WARNING'=>1,'CRITICAL'=>2,'UNKNOWN'=>3,'DEPENDENT'=>4);
|
||||
+#use lib "/usr/local/nagios/libexec";
|
||||
+#use utils qw(%ERRORS $TIMEOUT);
|
||||
+my $TIMEOUT = 15;
|
||||
+my %ERRORS=('OK'=>0,'WARNING'=>1,'CRITICAL'=>2,'UNKNOWN'=>3,'DEPENDENT'=>4);
|
||||
|
||||
# SNMP Datas for processes (MIB II)
|
||||
my $process_table= '1.3.6.1.2.1.25.4.2.1';
|
||||
@@ -44,7 +45,6 @@
|
||||
|
||||
# Globals
|
||||
|
||||
-my $Version='0.6';
|
||||
my $Name='check_snmp_win';
|
||||
|
||||
my $o_host = undef; # hostname
|
||||
@@ -93,7 +93,7 @@
|
||||
|
||||
sub help {
|
||||
print "\nSNMP Windows Monitor for Nagios version ",$Version,"\n";
|
||||
- print "GPL licence, (c)2004-2005 Patrick Proy\n\n";
|
||||
+ print "GPL licence, (c)2004-2007 Patrick Proy\n\n";
|
||||
print_usage();
|
||||
print <<EOT;
|
||||
-v, --verbose
|
||||
@@ -344,7 +344,11 @@
|
||||
foreach my $List (@o_descrL) {
|
||||
my $test=0;
|
||||
for (my $i=0; $i< $num_int; $i++) {
|
||||
- if ( $descr[$i] =~ /$List/i ) { $test++; }
|
||||
+ if (defined($o_noreg)){
|
||||
+ if ($descr[$i] eq $List) { $test++;}
|
||||
+ } else {
|
||||
+ if ( $descr[$i] =~ /$List/i ) { $test++; }
|
||||
+ }
|
||||
}
|
||||
if ($test==0) {
|
||||
$output .= ", " if defined($output);
|
7
debian/patches/series
vendored
7
debian/patches/series
vendored
|
@ -1,9 +1,4 @@
|
|||
01_check_snmp_env
|
||||
02_check_snmp_int
|
||||
03_check_snmp_load
|
||||
04_check_snmp_process
|
||||
05_check_snmp_storage
|
||||
06_check_snmp_win
|
||||
01_update_pre_1.1.2
|
||||
10_fix_net_snmp_version
|
||||
11_fix_privacy_doc
|
||||
15_check_snmp_storage_64bit
|
||||
|
|
Loading…
Reference in a new issue