Zabbix Monitoring

Mit Zabbix werden die Gateways überwacht.

Spezielle Freifunk-Meßwerte sind:

Damit der Server auf den Agenten zugreifen kann, muß die zugehörige Konfiguration wie folgt eingestellt werden

/etc/zabbix/zabbix_agentd.conf
[...]
server=10.137.0.12
Hostname=<gateway>
UserParameter=exitvpn.state,sudo /usr/local/share/zabbix/exitvpn.state
UserParameter=dhcpd.leases, /usr/local/share/zabbix/dhcpd.leases
# ServerActive=127.0.0.1
/etc/sudoers.d/zabbix
zabbix  ALL=NOPASSWD: /usr/local/share/zabbix/exitvpn.state

Insbesondere wird der Zustand des ExitVPNs überwacht.

/usr/local/share/zabbix/exitvpn.state
#!/bin/bash
#
# Check if ExitVPN is working
# 1 - OK
# 0 - Failed
#
 
VPNCONF=$(grep -e "^AUTOSTART=" /etc/default/openvpn)
INTERFACE=$(sed -e 's/^"//' -e 's/"$//' <<< ${VPNCONF#*=})
NATIF=$(iptables -t nat -vnL | grep MASQUERADE | awk '{$1=$1};1' | cut -d' ' -f 7)
TESTIP=81.7.16.37 # gate01
 
if [ ! `pgrep openvpn` ]; then
    echo 0
    exit 0
fi
 
if [ ! -d "/sys/class/net/$INTERFACE" ]; then
    echo 0
    exit 0
fi
 
if ! test "$NATIF" == "$INTERFACE" ; then
    echo 0
    exit 0
fi
 
ping -q -I $INTERFACE $TESTIP -c 3 -i 1 -W 5 >/dev/null 2>&1
if ! test $? -eq 0; then
    echo 0
    exit 0
fi
 
echo 1
exit 0

Serverkonfiguration

Es wird das Paket der Distribution verwendet: zabbix-server-mysql.

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'SECRETPASSWORD';

zcat /usr/share/zabbix-server-mysql/{schema,images,data}.sql.gz \
   | mysql -uzabbix -pSECRETPASSWORD zabbix