Ohne Werbung zu machen … der Lancom WLC ist ein zentraler Controller, um Access Points zu managen (Firmware, Config, etc.).

Um den WLC mit Hilfe von Icinga zu monitoren, kann man sich relativ einfach der SNMP Schnittstelle bedienen – auch die Lancom eigenen Tools nutzen überwiegend SNMP. Die dazu nötige MIB findet man im Lancom Wiki ( http://lancom-wiki.de/index.php?title=LCOS_MIB ).

Um das ganze hier abzukürzen … ich möchte Euch lediglich einen Plugin vorstellen. Dieser vergleicht die Anzahl konfigurierter APs mit der Anzahl verbundener APs. Ist die Anzahl verbundener APs ungleich der konfigurierten, dann werden die fehlenden APs ermittelt und mit Informationen wie Beschreibung, IP und MAC ausgegeben. easy stuff.


#!/bin/bash
#
# Icinga Check check_lancom_lostAPs
#
# Check Lancom (lost) APs using SNMP Query
# 11.2017, Ronny Becker

# Parameter ...
SNMP_COMMUNITY="icinga"
WLC_HOST="10.10.1.1"

# get expected APs and check connectivity to WLC / get Connected APs
APs_EXPECTED=$(timeout 2 snmpwalk -v 1 -Ov -Oq -c $SNMP_COMMUNITY $WLC_HOST .1.3.6.1.4.1.2356.11.1.73.5.0)
if [[ $? -ne 0 ]]
then
echo "WLC nicht erreichbar :-/"
exit 2
fi
# run forest, run!
APs_CONNECTED=$(snmpwalk -v 1 -Ov -Oq -c $SNMP_COMMUNITY $WLC_HOST .1.3.6.1.4.1.2356.11.1.73.6.0)

# difference?
if [[ $APs_EXPECTED -gt $APs_CONNECTED ]]
then
LOST_APs=$(expr $APs_EXPECTED - $APs_CONNECTED)
else
echo "all expected APs connected ($APs_CONNECTED)"
exit 0
fi

# missing APs? Some more information would be fine ...
mapfile -t LOST_AP_MACs < <(snmpwalk -v1 -Ov -Oq -c $SNMP_COMMUNITY $WLC_HOST .1.3.6.1.4.1.2356.11.1.73.9.1.1.1.0.160.87)
mapfile -t LOST_AP_IPs < <(snmpwalk -v1 -Ov -Oq -c $SNMP_COMMUNITY $WLC_HOST .1.3.6.1.4.1.2356.11.1.73.9.1.1.2.0.160.87)
mapfile -t LOST_AP_NAMEs < <(snmpwalk -v1 -Ov -Oq -c $SNMP_COMMUNITY $WLC_HOST .1.3.6.1.4.1.2356.11.1.73.9.1.1.3.0.160.87)
mapfile -t LOST_AP_DESCRs < <(snmpwalk -v1 -Ov -Oq -c $SNMP_COMMUNITY $WLC_HOST .1.3.6.1.4.1.2356.11.1.73.9.1.1.4.0.160.87)

# build MSG
COUNTER=0
# Header
echo "lost APs:"
while [[ $COUNTER < ${#LOST_AP_MACs[@]} ]]
do
echo "${LOST_AP_NAMEs[$COUNTER]}/${LOST_AP_DESCRs[$COUNTER]} (${LOST_AP_IPs[$COUNTER]}, ${LOST_AP_MACs[$COUNTER]})" | sed 's/"//g'
COUNTER=$(($COUNTER + 1))
done

exit 2

Prüfungen auf die Firmware etc. wären auch möglich …