{{tag>wireless monitoring munin kamikaze muninlite OpenWRT}}
====== Plugins de monitoring OpenWRT ======
===== Ajouter un plugin munin a muninlite =====
Pour ajouter un plugin munin à muninlite(1.0.4), il faut se connecter sur votre OpenWRT et :
* créer le repertoire "/usr/sbin/munin-node-plugin.d/" s'il n'existe pas encore :
mkdir /usr/sbin/munin-node-plugin.d/
* deposer votre plugin dans ce répertoire
* ajouter "plugindir_" a la variable PLUGINS situé au début du /usr/sbin/munin-node, comme par exemple comme ceci :
PLUGINS="cpu if_ if_err_ load memory processes netstat uptime interrupts irqstats plugindir_"
Pour tester le bon fonctionnement, vour pouvez demander la liste des plugins disponibles en utilisant telnet :
root@frtls-ap04:~# telnet localhost 4949
# munin node at frtls-ap04
list
cpu if_eth0 if_eth1 if_br_lan if_eth1VLAN55 if_eth1VLAN54 if_eth1VLAN53 if_eth1VLAN2 if_br_mobile if_br_tls if_br_guest if_br_coin if_wlan0 if_wlan0_1 if_wlan0_2 if_wlan0_3 if_err_eth0 if_err_eth1 if_err_br_lan if_err_eth1VLAN55 if_err_eth1VLAN54 if_err_eth1VLAN53 if_err_eth1VLAN2 if_err_br_mobile if_err_br_tls if_err_br_guest if_err_br_coin if_err_wlan0 if_err_wlan0_1 if_err_wlan0_2 if_err_wlan0_3 load memory processes uptime interrupts irqstats openwrt_ap
quit
Connection closed by foreign host
Comme on peut le voir le plugin "openwrt_ap" apparait bien dans la liste, c'est gagné :-)
===== Lister les clients connectés et la force du signal =====
Pour monitorer les clients connectés sur un point d'acces WiFi OpenWRT on peut utiliser le script :
#!/bin/sh
#
# Copyright (C) 2012 Jerome Drouet - jerome -at- drouet.eu
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; version 2 dated June,
# 1991.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
#
# Plugin to monitor number of connected wlan clients
#
#%# family=auto
#%# capabilities=autoconf
PATH="/bin:/sbin:/usr/bin:/usr/sbin:$PATH"
if [ "$1" = "autoconf" ]; then
if [ ! -x `which iw` ]; then
echo no
exit 1
fi
if [ -n "`iw`" ]; then
echo yes
exit 0
else
echo no
exit 1
fi
fi
interfaces="egrep \'\(\^interface=|\^bss=|\^ssid=\)\' /var/run/hostapd-phy0.conf | sed -e 's/interface=//' -e 's/ssid=//' -e 's/bss=//' | awk -F' ' '{a=$0;getline b; print a,b}'"
ap_name=`grep hostname /etc/config/system | cut -f3 -d" " | sed "s/'//g"`
if [ "$1" = "config" ]; then
echo "graph_title Wireless Clients on $ap_name"
echo 'graph_args --base 1000 -l 0'
echo 'graph_vlabel Signal Strength / Total Clients'
echo 'graph_category network'
echo 'graph_info This graph shows the number of connected Wireless Clients and Signal Strength on this AccessPoint.'
fi
egrep '(^interface=|^bss=|^ssid=)' /var/run/hostapd-phy0.conf | sed -e 's/interface=//' -e 's/ssid=//' -e 's/bss=//' | awk -F' ' '{a=$0;getline b; print a,b}' | while read devname ssid; do
if [ "$1" = "config" ]; then
echo "$ssid.label $ssid"
echo "$ssid.info Connected clients on SSID $ssid"
fi
wl_clients=`iw dev $devname station dump | grep Station | cut -f2 -d" "`
if [ -n "$wl_clients" ]; then
for mac in $wl_clients; do
mac_label=`echo $mac | tr ':' '_'`
if [ "$1" = "config" ]; then
echo "$mac_label.label ${ssid}_${mac}"
echo "$mac_label.info Signal strength for $mac"
fi
signal=`iw dev $devname station get $mac | grep "signal " | cut -f2 -d"-" | cut -f1 -d' '`
echo "$mac_label.value $signal"
done
fi
echo -n "$ssid.value "
echo $wl_clients | wc -w | tr -d ' '
done
exit 0
Ce script gere les multiples SSID et fonctionne sur OpenWRT Backfire (10.03.1, r29592) sur un WRT160NL
{{:sysadmin:monitoring:openwrt_ap-day.png?200|Voici un petit screenshot du graphe obtenu}}