diff --git a/debian/patches/25_check_snmp_int_add_metrik b/debian/patches/25_check_snmp_int_add_metrik new file mode 100644 index 0000000..0a0646d --- /dev/null +++ b/debian/patches/25_check_snmp_int_add_metrik @@ -0,0 +1,82 @@ +From a0f606c2c29d1f5588fab0b464a7e905f3872255 Mon Sep 17 00:00:00 2001 +From: Patrick Grimm +Date: Mon, 11 Mar 2024 18:28:15 +0100 +Subject: [PATCH] add metrik for Interface speed K|M|G Bits/s and more comments + +--- + doc/04-Plugins.md | 2 ++ + plugins/check_snmp_int.pl | 20 ++++++++++++-------- + 2 files changed, 14 insertions(+), 8 deletions(-) + +diff --git a/doc/04-Plugins.md b/doc/04-Plugins.md +index bf2a593..21b672a 100644 +--- a/doc/04-Plugins.md ++++ b/doc/04-Plugins.md +@@ -211,10 +211,12 @@ Usage: ./check_snmp_int.pl [-v] -H -C [-2] | (-l login - + warning level for input / output bandwidth (0 for no warning) + unit depends on B,M,G,u options and interface speed is in bps + warning for error & discard input / output in error/min (need -q) ++ warning level for interface speed only in K|M|G Bits/s (0 for no warning) + -c, --critical=input,output[,error in,error out,discard in,discard out,interface speed] + critical level for input / output bandwidth (0 for no critical) + unit depends on B,M,G,u options and interface speed is in bps + critical for error & discard input / output in error/min (need -q) ++ critical level for interface speed only in K|M|G Bits/s (0 for no critical) + -s, --short=int + Make the output shorter : only the first chars of the interface(s) + If the number is negative, then get the LAST caracters. +diff --git a/plugins/check_snmp_int.pl b/plugins/check_snmp_int.pl +index d978c66..fd45a61 100755 +--- a/plugins/check_snmp_int.pl ++++ b/plugins/check_snmp_int.pl +@@ -266,10 +266,12 @@ sub help { + warning level for input / output bandwidth (0 for no warning) + unit depends on B,M,G,u options + warning for error & discard input / output in error/min (need -q) ++ warning level for interface speed only in K|M|G Bits/s (0 for no warning) + -c, --critical=input,output[,error in,error out,discard in,discard out,interface speed] + critical level for input / output bandwidth (0 for no critical) + unit depends on B,M,G,u options + critical for error & discard input / output in error/min (need -q) ++ critical level for interface speed only in K|M|G Bits/s (0 for no critical) + -s, --short=int + Make the output shorter : only the first chars of the interface(s) + If the number is negative, then get the LAST caracters. +@@ -955,16 +957,18 @@ sub check_options { + if ($l == 0 || $l == 1) { $print_out .= $speed_unit; } + } + if (defined($o_perfs) && defined($o_ext_checkperf)) { ++ my $warn_factor = (defined($o_meg)) ? 1000000 : (defined($o_gig)) ? 1000000000 : 1000; + $print_out .= "/"; +- if (defined($o_crit[6]) && ($o_crit[6] != 0) && ($speed_real < $o_crit[6])) { ++ if (defined($o_crit[6]) && ($o_crit[6] != 0) && ($speed_real / $warn_factor < $o_crit[6])) { + $final_status = 2; +- $print_out .= sprintf("CRIT %.0fbps", $speed_real); +- } elsif (defined($o_warn[6]) && ($o_warn[6] != 0) && ($speed_real < $o_warn[6])) { ++ $print_out .= sprintf("CRIT %.0f", $speed_real / $warn_factor); ++ } elsif (defined($o_warn[6]) && ($o_warn[6] != 0) && ($speed_real / $warn_factor < $o_warn[6])) { + $final_status = ($final_status == 2) ? 2 : 1; +- $print_out .= sprintf("WARN %.0fbps", $speed_real); ++ $print_out .= sprintf("WARN %.0f", $speed_real / $warn_factor); + } else { +- $print_out .= sprintf("%.0fbps", $speed_real); ++ $print_out .= sprintf("%.0f", $speed_real / $warn_factor); + } ++ $print_out .= (defined($o_meg)) ? "Mbps" : (defined($o_gig)) ? "Gbps" : "kbps"; + } + $print_out .= ")"; + } else { # Return unknown when no data +@@ -1058,10 +1062,10 @@ sub check_options { + $perf_out .= "'" . $descr[$i] . "_out_discard'=" . $$result{ $oid_perf_outdisc[$i] } . "c "; + } + if (defined($o_perfs)) { +- $speed_real = "" unless (defined($speed_real)); ++ my $warn_factor = (defined($o_meg)) ? 1000000 : (defined($o_gig)) ? 1000000000 : 1000; + $perf_out .= "'" . $descr[$i] . "_speed_bps'=" . $speed_real . ";"; +- $perf_out .= defined($o_warn[6]) ? $o_warn[6] . ";" : ";"; +- $perf_out .= defined($o_crit[6]) ? $o_crit[6] . ";" : ";"; ++ $perf_out .= defined($o_warn[6]) ? $o_warn[6] * $warn_factor . ";" : ";"; ++ $perf_out .= defined($o_crit[6]) ? $o_crit[6] * $warn_factor . ";" : ";"; + $perf_out .= "; "; + } + if (defined($o_weather) && $usable_data == 1) { diff --git a/debian/patches/series b/debian/patches/series index 1181284..cf15b22 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -13,5 +13,6 @@ 22_check_snmp_storage_fix_space_btrfs 23_check_snmp_int_interface_speed 24_tcp_udp_ipv4_ipv6 +25_check_snmp_int_add_metrik 50_disable_epn 51_fix_privacy_doc