From 6ac458ace1c2cd77de3965f1f66b1c74f7205517 Mon Sep 17 00:00:00 2001 From: Olivier Mehani Date: Fri, 4 Jun 2021 14:41:31 +1000 Subject: [PATCH] [snmp__if_combined] Add support for stacked series in root graph From a summary comment in the code: If a stacked graph is requested, plot the total. Rather than aggregating them with CDEFs of SUMs, we sum them in the script, which allows us to create real series than can be easily borrowed by other loaning graphs. Those series are recv_bits and send_bits. There are longstanding bugs with them (dating back to snmp__if). This has been documented, as well as some potential ad hoc fixes for the data. Some outdated bug were also removed from the doc. Signed-off-by: Olivier Mehani --- .../example-graphs/snmp_if_combined-1.png | Bin 0 -> 54213 bytes .../example-graphs/snmp_if_combined-day.png | Bin 0 -> 72031 bytes plugins/snmp/snmp__if_combined | 186 ++++++++++++++---- 3 files changed, 151 insertions(+), 35 deletions(-) create mode 100644 plugins/snmp/example-graphs/snmp_if_combined-1.png create mode 100644 plugins/snmp/example-graphs/snmp_if_combined-day.png diff --git a/plugins/snmp/example-graphs/snmp_if_combined-1.png b/plugins/snmp/example-graphs/snmp_if_combined-1.png new file mode 100644 index 0000000000000000000000000000000000000000..f214147b96ffec82c9016152dea5061bc3d2123e GIT binary patch literal 54213 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

UVp6%|@pdno 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 literal 0 HcmV?d00001 diff --git a/plugins/snmp/example-graphs/snmp_if_combined-day.png b/plugins/snmp/example-graphs/snmp_if_combined-day.png new file mode 100644 index 0000000000000000000000000000000000000000..dbdc464a4b80e8f4700a772eaa68135a19da3787 GIT binary patch literal 72031 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 literal 0 HcmV?d00001 diff --git a/plugins/snmp/snmp__if_combined b/plugins/snmp/snmp__if_combined index adae8210..2d55508a 100755 --- a/plugins/snmp/snmp__if_combined +++ b/plugins/snmp/snmp__if_combined @@ -13,6 +13,24 @@ as "munin-node-configure --snmp switch.langfeldt.net --snmpversion 2c interfaces. On a typical switch you will get one plugin pr. ethernet port. On a router you might get one plugin per VLAN interface. +=head2 NOTABLE DIFFERENCE WITH SNMP__IF_MULTI + +The smnp__if_multi plugin records data in _bytes_ per second, and shows +them as bps by using CDEFs when graphing. This plugin performs the +multiplication upon reporting the value, and therefore doesn't have a +CDEF in the graphing path. + +This is important when migration from snmp__if_multi, for at least two aspects: + +- Reusing RRDs: it is not possible to just rename the old RRD files from + smnp__if_multi, as historical data will be graphed as 8 times smaller than in + reality. The stored values would need to be adjusted. +- Data loaning: borrowing graphs no longer need to include a CDEF to convert + bytes to bits. Conversely, they do now need a CDEF to convert bits to bytes. + +To reflect this aspect explicitely, the root graph's totals are named +recv_bits and send_bits. + =head1 CONFIGURATION As a rule SNMP plugins need site specific configuration. The default @@ -22,6 +40,7 @@ configuration (shown here) will only work on insecure sites/devices: env.version 2 env.community public env.ifTypeOnly ethernetCsmacd + env.stackedRoot 1 In general SNMP is not very secure at all unless you use SNMP version 3 which supports authentication and privacy (encryption). But in any @@ -51,12 +70,21 @@ would normally be for VPNs. A minor horde of different interface types are supposted, please see IANAifType-MIB (on your system or find with Google) for a full list. +The stackedRoot option determines whether the root summary graph shows the traffic +on each interface separately, or stacks them on top of one another to show the +total traffic through the device. + =head1 INTERPRETATION A single graph is generated with all the interfaces overlaid one over the other: incoming traffic is received on the interface from the connected device, outgoing is sent to it instead. +With the `stackedRoot` option, traffic is plotted as stacked areas instead, and +two additional series are calculated to show the total usage of the device. +Those series are useful for loaning into higher-level summary graphs (but see +BUGS below). + Sub-graphs are created, one per interface, akin to snmp__if_multi plugin. @@ -82,6 +110,8 @@ counters (see FEATURES below). =head1 BUGS +=head2 Missing indexing options + Should support indexing by - ifIndex @@ -92,12 +122,41 @@ Should support indexing by (and anything else MRTG can index by) in addition to OID-index as now. -Pulling in a user definable set of ifName/ifDescr/ifAlias for textual -description and even graph_title would also be nice. +=head2 Total traffic oddities in stackedRoot mode. + +When using the `stackedRoot` option, the total lines (`send_bits` and +`recv_bits`) may sometimes jump to nonsensical values. This is a bug shared with +the original snmp__if_multi. + +This seems to be due to the way those series are calculated, by summing the +current values of the other counters. The first issue is that of summing 64-bit +values into a single variable that is likely to also be 64 bits. The second +issue (compounded by the first) is that of wraparound. When one of the counters +wraps around, the sum jumps backwards. With a `min` set to 0, and other counters +having kept increasing, this looks like a huge increase the total counter. +Depending on the `max` (which should match the backplane bandwidth), this may +not be correctly recognised as a spurious value, just reconded as valid. + +There is no clear solution to this bug at the moment, save for trying to salvage +the data after the fact. This can be done my either clipping all values beyond a +maximum (e.g., the known use of the switch, rather that its full backplane +bandwith). + + RANGE='[0-9.]\+e+\(0[789]\|[1-9][0-9]\)' # Anything >=1e07 + rrdtool dump ${RRD_FILE} \ + | sed "s/${RANGE}/NaN/" \ + | rrdtool restore - ${RRD_FILE}.new + mv ${RRD_FILE}.new ${RRD_FILE} # Make sure you have a backup! + +Alternatively, if you can determine the time at whiche the spurious value was +recorded, you can just make that value a NaN. + + TIMESTAMP="1623492000" + rrdtool dump "${RRD_FILE}" \ + | sed "/${TIMESTAMP}/s/.*<\/v>/NaN<\/v>/" \ + | rrdtool restore - "${RRD_FILE}.new" + mv ${RRD_FILE}.new ${RRD_FILE} # Make sure you have a backup! -If we get a patch to support the .oldname attribute then we may use -that to let the operator change the indexing dynamically without data -loss. =head1 FEATURES @@ -117,7 +176,7 @@ usage of it, it is nothing the plugin can fix. In the future Munin may be able to run the plugin more often than the counter wraps around. -=head1 AUTHOR +=head1 AUTHORS Copyright (C) 2012 Diego Elio Pettenò. @@ -136,6 +195,8 @@ Reworked to snmp__if_multi by Nicolai Langfeldt. Reworked to snmp__if_combined by Diego Elio Pettenò. +Stacked option by Olivier Mehani + =head1 LICENSE GPLv2 @@ -177,6 +238,11 @@ if (defined $ARGV[0] and $ARGV[0] eq "snmpconf") { exit 0; } +my $stackedRoot = 0; +if (exists $ENV{'stackedRoot'}) { + $stackedRoot = $ENV{'stackedRoot'}; +} + my $sysDescr = '1.3.6.1.2.1.1.1.0'; my $sysLocation = '1.3.6.1.2.1.1.6.0'; my $sysContact = '1.3.6.1.2.1.1.4.0'; @@ -550,17 +616,24 @@ graph_info This graph shows the total traffic for $host. END print "graph_order"; + my @ifs; foreach my $if (sort {$a <=> $b} keys %{$snmpinfo}) { print " recv$if=snmp_if_combined.$if.recv send$if=snmp_if_combined.$if.send"; + push @ifs, "snmp_if_combined.$if"; + } + if ($stackedRoot) { + print " recv_bits send_bits"; } print "\n"; + # XXX: For some reason, Munin doesn't resolve AREASTACK properly in this case... + my $area_or_stack = "AREA"; foreach my $if (sort {$a <=> $b} keys %{$snmpinfo}) { my $alias = $snmpinfoX->{$if}->{ifAlias} || $snmpinfo->{$if}->{ifDescr} || "Interface $if"; if (! ($alias =~ /\d+/) ) { - # If there are no numbers in the $alias add the if index - $alias .=" (if $if)"; + # If there are no numbers in the $alias add the if index + $alias .=" (if $if)"; } print <{$if}->{ifOperStatus} || 1; - my $response; - # 1 means up # 2 means set to down # Everything else we ignore. - print "multigraph snmp_if_combined.$if\n"; - - if ($status == 2) { - # Interface is down - print "recv.value U\n"; - print "send.value U\n"; - print "send.extinfo This interface is currently down.\n"; - goto if_errors; - } - - $response = $snmpinfoX->{$if}->{ifHCInOctets} || $snmpinfo->{$if}->{ifInOctets}; - printf("recv.value %s\n", defined($response) ? ($response * 8) : "U"); - - $response = $snmpinfoX->{$if}->{ifHCOutOctets} || $snmpinfo->{$if}->{ifOutOctets}; - printf("send.value %s\n", defined($response) ? ($response * 8) : "U"); - - if_errors: - - print "multigraph snmp_if_combined_err.$if\n"; - - if ($status == 2) { - print <{$if}->{ifHCInOctets} || $snmpinfo->{$if}->{ifInOctets}; + $recv = defined($response) ? ($response * 8) : undef; + printf("recv.value %s\n", $recv || "U"); + + $response = $snmpinfoX->{$if}->{ifHCOutOctets} || $snmpinfo->{$if}->{ifOutOctets}; + $send = defined($response) ? ($response * 8) : undef; + printf("send.value %s\n", $send || "U"); + + print "multigraph snmp_if_combined_err.$if\n"; + my $errors = $snmpinfo->{$if}->{ifInErrors}; my $discards = $snmpinfo->{$if}->{ifInDiscards}; printf("errors_in.value %s\n". @@ -781,6 +883,8 @@ END $discards || "U", ($errors || 0) + ($discards || 0) ); + + return ($recv, $send); } sub do_config { @@ -806,6 +910,18 @@ if ($ARGV[0] and $ARGV[0] eq "config") { exit 0; } +my $recv = 0; +my $send = 0, +my $recv_if; +my $send_if; + foreach my $if (sort {$a <=> $b} keys %{$snmpinfo}) { - do_fetch_if($if); + ($recv_if, $send_if) = do_fetch_if($if); + $recv += ($recv_if || 0); + $send += ($send_if || 0); +} +if ($stackedRoot) { + print "multigraph snmp_if_combined\n"; + print "recv_bits.value $recv\n"; + print "send_bits.value $send\n"; }