mirror of
https://github.com/munin-monitoring/contrib.git
synced 2025-07-24 18:07:20 +00:00
118 lines
2.6 KiB
Bash
Executable file
118 lines
2.6 KiB
Bash
Executable file
#!/bin/bash
|
|
# -*- sh -*-
|
|
|
|
: << =cut
|
|
|
|
=head1 NAME
|
|
|
|
chilli_ - Wildcard-plugin to monitor sessions state on Coova Chilli.
|
|
|
|
=head1 CONFIGURATION
|
|
|
|
This plugin does not normally require configuration.
|
|
|
|
The plugin may need to run as root. This is configured like this:
|
|
|
|
[chilli_*]
|
|
user root
|
|
|
|
This is a wildcard plugin. To monitor an instance, link
|
|
chilli_<instance> to this file. For example :
|
|
|
|
ln -s /usr/share/munin/plugins/chilli_ \
|
|
/etc/munin/plugins/chilli_hotspot1
|
|
|
|
will monitor hotspot1.
|
|
|
|
For monitor all instances use :
|
|
|
|
ln -s /usr/share/munin/plugins/chilli_ \
|
|
/etc/munin/plugins/chilli_total
|
|
|
|
=head1 AUTHOR
|
|
|
|
OPENevents - Guillaume Marsay <guillaume.marsay@openevents.fr>
|
|
|
|
=head1 LICENSE
|
|
|
|
GPLv2
|
|
|
|
=head1 MAGIC MARKERS
|
|
|
|
#%# family=auto
|
|
#%# capabilities=autoconf suggest
|
|
|
|
=cut
|
|
|
|
|
|
INSTANCE=${0##*chilli_}
|
|
CHILLI_PATH_BIN="/usr/sbin/chilli_query"
|
|
CHILLI_PATH_SOCK="/var/run"
|
|
|
|
|
|
case $1 in
|
|
autoconf)
|
|
if [[ -r $CHILLI_PATH_BIN ]]; then
|
|
if [[ $INSTANCE == "total" ]]; then
|
|
echo "yes"
|
|
exit 0
|
|
else
|
|
if [[ -r $CHILLI_PATH_SOCK/chilli_$INSTANCE.sock ]]; then
|
|
echo yes
|
|
exit 0
|
|
else
|
|
echo "no ($CHILLI_PATH_SOCK/chilli_$INSTANCE.sock not found)"
|
|
exit 0
|
|
fi
|
|
fi
|
|
else
|
|
echo "no ($CHILLI_PATH_BIN not found)"
|
|
exit 0
|
|
fi
|
|
;;
|
|
suggest)
|
|
INSTANCES_LIST=$(ls /var/run/chilli_*.sock)
|
|
|
|
for file in $INSTANCES_LIST; do
|
|
echo $(basename $file .sock | cut -d _ -f 2)
|
|
done
|
|
|
|
echo "total"
|
|
|
|
exit 0
|
|
;;
|
|
config)
|
|
echo "graph_title Chilli $INSTANCE sessions"
|
|
echo "graph_args --base 1000 -l 0"
|
|
echo "graph_category chilli"
|
|
echo "none.label NONE"
|
|
echo "none.min 0"
|
|
echo "none.draw AREA"
|
|
echo "none.colour ff8000"
|
|
echo "dnat.label DNAT"
|
|
echo "dnat.min 0"
|
|
echo "dnat.draw STACK"
|
|
echo "dnat.colour 0066b3"
|
|
echo "pass.label PASS"
|
|
echo "pass.draw STACK"
|
|
echo "pass.min 0"
|
|
echo "pass.colour 00cc00"
|
|
|
|
exit 0
|
|
;;
|
|
esac
|
|
|
|
|
|
if [[ $INSTANCE == "total" ]]; then
|
|
STATE_PASS=$($CHILLI_PATH_BIN list | grep "pass" | wc -l)
|
|
STATE_DNAT=$($CHILLI_PATH_BIN list | grep "dnat" | wc -l)
|
|
STATE_NONE=$($CHILLI_PATH_BIN list | grep "none" | wc -l)
|
|
else
|
|
STATE_PASS=$($CHILLI_PATH_BIN -s $CHILLI_PATH_SOCK/chilli_$INSTANCE.sock list | grep "pass" | wc -l)
|
|
STATE_DNAT=$($CHILLI_PATH_BIN -s $CHILLI_PATH_SOCK/chilli_$INSTANCE.sock list | grep "dnat" | wc -l)
|
|
STATE_NONE=$($CHILLI_PATH_BIN -s $CHILLI_PATH_SOCK/chilli_$INSTANCE.sock list | grep "none" | wc -l)
|
|
fi
|
|
|
|
echo "pass.value $STATE_PASS"
|
|
echo "dnat.value $STATE_DNAT"
|
|
echo "none.value $STATE_NONE"
|