mirror of
https://github.com/munin-monitoring/contrib.git
synced 2025-07-21 18:41:03 +00:00
Add dd-wrt-wifi-devices plugin
.. to monitor the number of connected WiFi devices on a DD-WRT based router
This commit is contained in:
parent
3ac71f4c23
commit
99763204d5
1 changed files with 103 additions and 0 deletions
103
plugins/dd-wrt/dd-wrt-wifi-devices_
Executable file
103
plugins/dd-wrt/dd-wrt-wifi-devices_
Executable file
|
@ -0,0 +1,103 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# -*- sh -*-
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
: << =cut
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
dd-wrt-wifi-devices_ - How many Wifi devices are connected to a DD-WRT router?
|
||||||
|
|
||||||
|
Tested with DD-WRT v3.0-r44715
|
||||||
|
|
||||||
|
=head1 CONFIGURATION
|
||||||
|
|
||||||
|
Configure the hostname by adding the IP address to the symlink name:
|
||||||
|
Symlink "dd-wrt-wifi-devices_" to "dd-wrt-wifi-devices_192.168.1.1"
|
||||||
|
|
||||||
|
=head2 ENVIRONMENT VARIABLES
|
||||||
|
|
||||||
|
host - Hostname of router
|
||||||
|
user - Web interface username
|
||||||
|
password - Web interface password
|
||||||
|
host_name - To put the graph onto a different host
|
||||||
|
|
||||||
|
=head2 CONFIGURATION EXAMPLE
|
||||||
|
|
||||||
|
[dd-wrt-*]
|
||||||
|
env.user tpli
|
||||||
|
env.password thisismypassword
|
||||||
|
|
||||||
|
=head2 HOST MANAGEMENT
|
||||||
|
|
||||||
|
You can display the graph on another host (e.g., the actual router) than the
|
||||||
|
one running dd-wrt-wifi-devices.
|
||||||
|
To do so, first configure the plugin to use a different hostname.
|
||||||
|
|
||||||
|
env.host_name router
|
||||||
|
|
||||||
|
Then configure munin (in /etc/munin/munin-conf or /etc/munin/munin-conf.d)
|
||||||
|
to support a new host.
|
||||||
|
|
||||||
|
[example.net;router]
|
||||||
|
address 127.0.0.1
|
||||||
|
use_node_name no
|
||||||
|
|
||||||
|
|
||||||
|
=head1 REQUIREMENTS
|
||||||
|
|
||||||
|
"bash" and "curl" are required.
|
||||||
|
|
||||||
|
=head1 SEE ALSO
|
||||||
|
|
||||||
|
https://github.com/Tafkas/fritzbox-munin
|
||||||
|
|
||||||
|
=head1 AUTHOR
|
||||||
|
Christian Weiske <cweiske@cweiske.de>
|
||||||
|
|
||||||
|
=head1 LICENSE
|
||||||
|
|
||||||
|
AGPL-3.0-only https://spdx.org/licenses/AGPL-3.0-only.html
|
||||||
|
|
||||||
|
=head1 MAGIC MARKERS
|
||||||
|
|
||||||
|
#%# family=manual
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
if [ -z "$host" ]; then
|
||||||
|
host=$(basename "$0" | sed 's/dd-wrt-wifi-devices_//g')
|
||||||
|
fi
|
||||||
|
user=${user:-root}
|
||||||
|
pass=${password:-admin}
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
config)
|
||||||
|
echo "graph_title DD-WRT $host connected Wifi devices"
|
||||||
|
echo "graph_vlabel Number of devices"
|
||||||
|
echo "graph_args --base 1000"
|
||||||
|
echo "graph_category network"
|
||||||
|
echo "graph_order wifi"
|
||||||
|
echo "wifi.label Wifi Connections"
|
||||||
|
echo "wifi.type GAUGE"
|
||||||
|
echo "wifi.graph LINE1"
|
||||||
|
if [ -n "$host_name" ]; then
|
||||||
|
echo "host_name $host_name"
|
||||||
|
fi
|
||||||
|
exit 0;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
url="http://$host/Status_Wireless.live.asp"
|
||||||
|
|
||||||
|
count=$(
|
||||||
|
curl --silent --show-error --fail --user "$user:$pass" --max-time 3 "$url"\
|
||||||
|
| grep -o 'assoc_count::[0-9]*'\
|
||||||
|
| cut -d':' -f 3
|
||||||
|
)
|
||||||
|
#without "-o pipefail" we would not get curl's exit code here
|
||||||
|
exitcode=$?
|
||||||
|
if [ "$exitcode" -gt 0 ]; then
|
||||||
|
count="U"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "wifi.value $count"
|
Loading…
Add table
Add a link
Reference in a new issue