mirror of
https://github.com/munin-monitoring/contrib.git
synced 2018-11-08 00:59:34 +01:00
[plugins/upnpc_] Add upnpc-based router monitoring plugin
Signed-off-by: Olivier Mehani <shtrom@ssji.net>
This commit is contained in:
parent
d42751c908
commit
5b0aad0638
149
plugins/upnpc/upnpc_
Executable file
149
plugins/upnpc/upnpc_
Executable file
@ -0,0 +1,149 @@
|
||||
#!/bin/sh
|
||||
# -*- sh -*-
|
||||
|
||||
: << =cut
|
||||
|
||||
=head1 NAME
|
||||
|
||||
upnpc_ - Plugin to monitor routers via UPnP
|
||||
|
||||
=head1 APPLICABLE SYSTEMS
|
||||
|
||||
Linux systems with upnpc installed.
|
||||
|
||||
=head1 CONFIGURATION
|
||||
|
||||
None needed.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Olivier Mehani
|
||||
|
||||
=head1 LICENSE
|
||||
|
||||
GPLv2
|
||||
|
||||
=head1 MAGIC MARKERS
|
||||
|
||||
#%# family=auto
|
||||
#%# capabilities=autoconf suggest
|
||||
|
||||
=cut
|
||||
|
||||
autoconf() {
|
||||
which upnpc >/dev/null && upnpc -s >/dev/null 2>&1 && echo yes || echo "no (No upnpc or no UPnP router)"
|
||||
}
|
||||
|
||||
suggest () {
|
||||
upnpc -s | sed -n " \
|
||||
s/.*uptime=.*/uptime/p; \
|
||||
s/.*MaxBitRate.*/bitrate/p; \
|
||||
s/.*Bytes.*/traffic/p; \
|
||||
s/.*Packets.*/pkts/p; \
|
||||
"
|
||||
}
|
||||
|
||||
config () {
|
||||
case $1 in
|
||||
"uptime")
|
||||
cat << EOF
|
||||
graph_title Uplink connection uptime
|
||||
graph_args -l 0
|
||||
graph_category network
|
||||
graph_scale no
|
||||
graph_vlabel uptime in hours
|
||||
uptime.label uptime
|
||||
uptime.draw AREA
|
||||
uptime.cdef uptime,3600,/
|
||||
EOF
|
||||
;;
|
||||
"bitrate")
|
||||
cat << EOF
|
||||
graph_title Uplink bitrate
|
||||
graph_args --base 1000 -l 0
|
||||
graph_category network
|
||||
graph_vlabel bitrate down (-) / up (+)
|
||||
down.label bps
|
||||
down.warning 4194304:
|
||||
down.critical 1048576:
|
||||
up.label bps
|
||||
up.warning 524288:
|
||||
up.critical 131072:
|
||||
down.graph no
|
||||
up.negative down
|
||||
EOF
|
||||
;;
|
||||
"traffic")
|
||||
cat << EOF
|
||||
graph_title Uplink traffic
|
||||
graph_args --base 1024 -l 0
|
||||
graph_category network
|
||||
graph_vlabel bytes in (-) / out (+) per ${graph_period}
|
||||
down.label Bps
|
||||
down.type DERIVE
|
||||
down.min 0
|
||||
up.label Bps
|
||||
up.type DERIVE
|
||||
up.min 0
|
||||
down.graph no
|
||||
up.negative down
|
||||
EOF
|
||||
;;
|
||||
"pkts")
|
||||
cat << EOF
|
||||
graph_title Uplink packets
|
||||
graph_args --base 1000 -l 0
|
||||
graph_category network
|
||||
graph_vlabel packets in (-) / out (+) per ${graph_period}
|
||||
down.label pps
|
||||
down.type DERIVE
|
||||
down.min 0
|
||||
up.label pps
|
||||
up.type DERIVE
|
||||
up.min 0
|
||||
down.graph no
|
||||
up.negative down
|
||||
EOF
|
||||
;;
|
||||
"*")
|
||||
echo "$0: unknown mode '$1'" >&2
|
||||
exit 1
|
||||
esac
|
||||
}
|
||||
|
||||
fetch () {
|
||||
case $1 in
|
||||
"uptime")
|
||||
upnpc -s | sed -n "s/.*uptime=\([0-9]\+\)s.*/uptime.value \1/p"
|
||||
;;
|
||||
"bitrate")
|
||||
upnpc -s | sed -n "s/^MaxBitRateDown : \([0-9]\+\) bps.*MaxBitRateUp \([0-9]\+\) bps.*/down.value \1\nup.value \2/p"
|
||||
;;
|
||||
"traffic")
|
||||
upnpc -s | sed -n "s/^Bytes:\s*Sent:\s*\([0-9]\+\).*Recv:\s*\([0-9]\+\).*/up.value \1\ndown.value \2/p"
|
||||
;;
|
||||
"pkts")
|
||||
upnpc -s | sed -n "s/^Packets:\s*Sent:\s*\([0-9]\+\).*Recv:\s*\([0-9]\+\).*/up.value \1\ndown.value \2/p"
|
||||
;;
|
||||
"*")
|
||||
echo "$0: unknown mode '$1'" >&2
|
||||
exit 1
|
||||
esac
|
||||
}
|
||||
|
||||
mode=`echo $0 | sed 's/.*_//'`
|
||||
|
||||
case $1 in
|
||||
"autoconf")
|
||||
autoconf
|
||||
;;
|
||||
"suggest")
|
||||
suggest
|
||||
;;
|
||||
"config")
|
||||
config $mode
|
||||
;;
|
||||
*)
|
||||
fetch $mode
|
||||
;;
|
||||
esac
|
Loading…
Reference in New Issue
Block a user