1
0
Fork 0
mirror of https://git.freebsd.org/ports.git synced 2025-07-13 23:39:20 -04:00
ports/sysutils/munin-common/files/patch-plugins_node.d.freebsd_if__packets__.in
Mathieu Arnold 2ff6de7ee9 Fix the bind9_rndc plugin wrt Perl 5.18+ hash randomzation.
While there, group all patches for the three ports in munin-common, and remove
an obsolete patch.

PR:		195689
Submitted by:	Vlad "Blackflow" K.
Sponsored by:	Absolight
2014-12-10 15:52:14 +00:00

113 lines
2.9 KiB
Bash

--- plugins/node.d.freebsd/if_packets_.in.orig 2014-12-10 15:34:51 UTC
+++ plugins/node.d.freebsd/if_packets_.in
@@ -0,0 +1,110 @@
+#!@@GOODSH@@
+# -*- sh -*-
+#
+# Wildcard-plugin to monitor network interfaces. To monitor an
+# interface, link if_packets_<interface> to this file. E.g.
+#
+# ln -s /usr/share/munin/node/plugins-auto/if_packets_ /etc/munin/node.d/if_packets_eth0
+#
+# ...will monitor eth0.
+#
+# To aggregate all network interfaces on the system (except lo0),
+# link if_packets_aggregated to this file.
+#
+# Any device found in /usr/bin/netstat can be monitored.
+#
+# Magic markers (optional - used by munin-config and some installation
+# scripts):
+#
+#%# family=auto
+#%# capabilities=autoconf suggest
+
+INTERFACE=${0##*if_packets_}
+
+if [ "$1" = "autoconf" ]; then
+ if [ -x /sbin/ifconfig -o -x /usr/bin/netstat ]; then
+ echo yes
+ exit 0
+ else
+ echo "no (/usr/bin/netstat not found)"
+ exit 0
+ fi
+fi
+
+if [ "$1" = "suggest" ]; then
+ if [ -x /sbin/ifconfig ]
+ then
+ ifconfig -l | sed -Ee 's/[[:<:]](pfsync|faith|pf(log|sync)|lo|plip|carp|enc|fwe)[^ ]*//g' | xargs -n 1 echo
+ exit 0
+ elif [ -x /usr/bin/netstat ]; then
+ netstat -i -b -n | sed -n -e '/^faith/d' -e '/^lo[0-9]/d' -e '/^pf(log|sync)/d' -e '/<Link#[0-9]*>/s/\** .*//p'
+ exit 0
+ else
+ exit 1
+ fi
+fi
+
+if [ "$1" = "config" ]; then
+
+ echo "graph_order rpackets opackets"
+ echo "graph_title $INTERFACE pps"
+ echo 'graph_args --base 1000'
+ echo 'graph_vlabel packets per ${graph_period} in (-) / out (+)'
+ echo 'graph_category network'
+ echo "graph_info This graph shows the packets counter of the $INTERFACE network interface. Please note that the traffic is shown in packets per second."
+ echo 'rpackets.label received'
+ echo 'rpackets.type COUNTER'
+ echo 'rpackets.graph no'
+
+ echo 'rpackets.min 0'
+ echo 'opackets.label pps'
+ echo 'opackets.type COUNTER'
+ echo 'opackets.negative rpackets'
+
+ echo 'opackets.min 0'
+ echo "opackets.info Packets sent (+) and received (-) on the $INTERFACE network interface."
+ exit 0
+fi
+
+if [ "$INTERFACE" = "aggregated" ]; then
+ /usr/bin/netstat -i -b -n | grep -v '^lo' | awk '
+BEGIN { rsum = 0; osum = 0; }
+/<Link#[0-9]*>/ {
+ if (NF == 10) {
+ rsum += $4; osum += $7;
+ } else if (NF == 11) {
+ if ($4 ~ /:/) {
+ rsum += $5; osum += $8;
+ } else {
+ rsum += $4; osum += $8;
+ }
+ } else { # NF == 12
+ rsum += $6; osum += $9;
+ }
+}
+END {
+ printf "rpackets.value %i\n", rsum;
+ printf "opackets.value %i\n", osum;
+}'
+
+else
+ /usr/bin/netstat -i -b -n -I $INTERFACE | awk '
+/<Link#[0-9]*>/ {
+ if (NF == 10) {
+ print "rpackets.value", $4;
+ print "opackets.value", $7;
+ } else if (NF == 11) {
+ if ($4 ~ /:/) {
+ print "rpackets.value", $5;
+ print "opackets.value", $8;
+ } else {
+ print "rpackets.value", $4;
+ print "opackets.value", $8;
+ }
+ } else { # NF == 12
+ print "rpackets.value", $5;
+ print "opackets.value", $9;
+ }
+}'
+fi
+