mirror of
https://github.com/munin-monitoring/contrib.git
synced 2025-07-25 18:38:30 +00: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
1 changed files with 149 additions and 0 deletions
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…
Add table
Add a link
Reference in a new issue