1
0
Fork 0
mirror of https://github.com/munin-monitoring/contrib.git synced 2025-07-21 18:41:03 +00:00

- have some dirs

This commit is contained in:
Steve Schnepp 2012-02-13 18:24:46 +01:00
parent 0b089ea777
commit 08346aac58
687 changed files with 0 additions and 0 deletions

129
plugins/network/ipfwnat_ Executable file
View file

@ -0,0 +1,129 @@
#!/bin/sh
#
# Copyright (C) 2009 Alexey Illarionov <littlesavage@rambler.ru>
#
# Wildcard plugin to monitor ipfw nat aliasing links count
#
# Usage: Link ipfwnat_<nat number> to this file. E.g,
#
# ln -s ipfwnat_ /etc/munin/node.d/ipfwnat_123
#
# ... will moninot nat number 123
#
# This plugin needs to be run as root. Sample plugins.conf:
#
# [ipfwnat_*]
# user root
#
# Furthermore, nat configuration must contain "log" option. E.g.
#
# ipfw nat 123 config ip 198.76.28.4 log
#
# This plugin is based on the if_ plugin.
#
# Magic markers (optional - used by munin-config and some installation
# scripts):
#
#%# family=auto
#%# capabilities=autoconf suggest
NAT_NUM=`basename $0 | sed 's/^ipfwnat_//g'`
ipfw="/sbin/ipfw"
if [ "$1" = "autoconf" ]; then
if [ ! -x $ipfw ]; then
echo "no ($ipfw not found)"
exit 1
fi
err=$($ipfw nat show config 2>&1)
if [ $? -ne 0 ]; then
echo "no ($err)"
exit 1
fi
echo "yes"
exit 0
fi
if [ "$1" = "suggest" ]; then
$ipfw nat show config 2> /dev/null | /usr/bin/awk '/nat [0-9]+ .+ log/{print $3;}'
exit 0
fi
if [ "$1" = "config" ]; then
echo "graph_title Ipfw NAT ${NAT_NUM} aliasing links count"
echo 'graph_args --base 1000 -l 0'
echo 'graph_vlabel links count'
echo 'graph_noscale true'
echo 'graph_category network'
echo 'tcp.draw AREA'
echo 'tcp.label tcp'
echo 'tcp.info TCP aliasing links count'
echo 'udp.draw STACK'
echo 'udp.label udp'
echo 'udp.info UDP aliasing links count'
echo 'sctp.draw STACK'
echo 'sctp.label sctp'
echo 'sctp.info SCTP aliasing links count'
echo 'icmp.draw STACK'
echo 'icmp.label icmp'
echo 'icmp.info ICMP aliasing links count'
echo 'pptp.draw STACK'
echo 'pptp.label pptp'
echo 'pptp.info PPTP aliasing links count'
echo 'proto.draw STACK'
echo 'proto.label proto'
echo 'proto.info proto aliasing links count'
echo 'fragid.draw STACK'
echo 'fragid.label frag_id'
echo 'fragid.info Fragment id aliasing links count'
echo 'fragptr.draw STACK'
echo 'fragptr.label frag_ptr'
echo 'fragptr.info Fragment ptr aliasing links count'
echo "graph_info Ipfw NAT ${NAT_NUM} aliasing links count."
exit 0
fi
$ipfw nat ${NAT_NUM} show 2>/dev/null | /usr/bin/awk '
BEGIN {
res["tcp"] = "U";
res["udp"] = "U";
res["sctp"] = "U";
res["icmp"] = "U";
res["pptp"] = "U";
res["proto"] = "U";
res["frag_id"] = "U";
res["frag_ptr"] = "U";
}
/^nat [0-9]+:/{
split($0, a, /[,\/:[:space:]]+/);
for (f in a) {
if (a[f] ~ /^[a-z_]+=[0-9]+$/) {
split(a[f], v, /=/);
res[v[1]] += (v[2] + 0);
}
}
}
END {
printf "tcp.value %s\n", res["tcp"];
printf "udp.value %s\n", res["udp"];
printf "sctp.value %s\n", res["sctp"];
printf "icmp.value %s\n", res["icmp"];
printf "pptp.value %s\n", res["pptp"];
printf "proto.value %s\n", res["proto"];
printf "fragid.value %s\n", res["frag_id"];
printf "fragptr.value %s\n", res["frag_ptr"];
}
'