In der Kürze …

Ein MIB-Baum enthält in aller Regel wesentlich mehr Informationen, als Sie für Ihre Auswertung benötigen. Sie tun sich daher durchaus einen Gefallen, wenn Sie sich auf wenige Informationen beschränken.

Die mit einzelnen Routern respektive Access Points verbundenen Geräte liefert beispielsweise der Zweig ioNetToMediaEntry (1.3.6.1.2.1.4.22.1). Verfügbaren und genutzten Speicher fragen Sie über 1.3.6.1.2.1.25.2.3.1.5.101 und 1.3.6.1.2.1.25.2.3.1.6.101 ab, die durchschnittliche CPU-Last der letzten fünfzehn Minuten erfahren Sie mit der OID 1.3.6.1.4.1.2021.10.1.5.3. Die OID 1.3.6.1.2.1.2.2.1 schließlich sammelt alle zu den Netzwerkschnittstellen verfügbaren Informationen ein. Hier lohnt es sich unter Umständen, die Datenmenge ebenfalls ein wenig zu reduzieren: MTUs, Schnittstellenbezeichnungen und so weiter müssen Sie nicht jedes Mal mitloggen.

Haben Sie sich überzeugt, dass Snmpwalk oder Snmpget das Gewünschte liefern, verpacken Sie die einzelnen Abfragen in ein Skript, das später via Cronjob ausgeführt wird. Snmpwalk bietet noch einige Möglichkeiten, um die Ausgaben zu kürzen. Im Beispielskript monitor.sh (Listing 4) erfolgt die Abfrage mit -Oqs so, dass nur das letzte Element der OID und der zugehörige Wert ausgegeben werden.

Die einzelnen Abfragen verpackt das Skript in einer Funktion, sodass Sie sie nur an einer Stelle ändern müssen, falls sich neue Anforderungen ergeben. Die zu überwachenden Hosts hinterlegen Sie mit IP-Adresse und Beschreibung in einer Textdatei (Listing 5). Die Beschreibung enthält Geräteart und Standort, sodass bei einer Alarmierung auch Mitarbeiter, die nicht an der Installation beteiligt waren, wissen, wo sie suchen müssen. Zu guter Letzt wird monitor.sh regelmäßig in einem Cronjob aufgerufen.

Listing 4

#! /bin/bash
#: Title: monitor.sh
#: Date: 28.01.2015
#: Author: Falko Benthin
#: Version: 1.0
#: Desciption: Sendet SNMP-Abfragen an einzelne APs/Router und loggt Ausgabe mit Zeitstempel für spaetere Auswertungen
#: Options: none
# sendet snmp-Abfragen an einzelne Hosts
function checkMachines() {
  # ipNetToMediaPhysAddress
  snmpwalk -v1 -Oqs -c $ROCOMMUNITY $HOST .1.3.6.1.2.1.4.22.1.3
  # memory_used
  snmpwalk -v1 -Oqs -c $ROCOMMUNITY $HOST .1.3.6.1.2.1.25.2.3.1.6.101
  # CPU-load-1 snmpwalk -v1 -Oqs -c $ROCOMMUNITY $HOST 1.3.6.1.4.1.2021.10.1.5.1
  # CPU-load-5 snmpwalk -v1 -Oqs -c $ROCOMMUNITY $HOST 1.3.6.1.4.1.2021.10.1.5.2
  # CPU-load-15
  snmpwalk -v1 -Oqs -c $ROCOMMUNITY $HOST .1.3.6.1.4.1.2021.10.1.5.3
  # wlan_clients
  snmpwalk -v1 -Oqs -c $ROCOMMUNITY $HOST .1.3.6.1.4.1.2021.255.3.54.1.3.32.1.4
  # ifInOctets
  snmpwalk -v1 -Oqs -c $ROCOMMUNITY $HOST .1.3.6.1.2.1.2.2.1.10
  # ifInUcastPkts
  snmpwalk -v1 -Oqs -c $ROCOMMUNITY $HOST .1.3.6.1.2.1.2.2.1.11
  # ifInDiscards
  snmpwalk -v1 -Oqs -c $ROCOMMUNITY $HOST .1.3.6.1.2.1.2.2.1.13
  # ifInErrors
  snmpwalk -v1 -Oqs -c $ROCOMMUNITY $HOST .1.3.6.1.2.1.2.2.1.14
  # ifOutOctets
  snmpwalk -v1 -Oqs -c $ROCOMMUNITY $HOST .1.3.6.1.2.1.2.2.1.16
  # ifOutUcastPkts
  snmpwalk -v1 -Oqs -c $ROCOMMUNITY $HOST .1.3.6.1.2.1.2.2.1.17
  # ifOutDiscards
  snmpwalk -v1 -Oqs -c $ROCOMMUNITY $HOST .1.3.6.1.2.1.2.2.1.19
  # ifOutErrors
  snmpwalk -v1 -Oqs -c $ROCOMMUNITY $HOST .1.3.6.1.2.1.2.2.1.20
  }
# Verzeichnis fuer Logfiles
LOGDIR="/home/falko/monitorlog"
# community string
ROCOMMUNITY="community"
# date
YEAR=$( date +%Y )
MONTH=$( date +%m )
DAY=$( date +%d )
while read HOST DESC
do
  DATEDIR=$LOGDIR/$YEAR/$MONTH/$DAY
  # Verzeichnis fuer Datum
  if [ ! -d $DATEDIR ]; then
    mkdir -p $DATEDIR
  fi
  # pruefen, ob Host erreichbar ist
  if ! ping -c3 $HOST > /dev/null; then
    if [ ! -e $LOGDIR/$HOST.lastmail.log ] || [ ! $( date -d @$( cat $LOGDIR/$HOST.lastmail.log ) +%d ) = $DAY ]
    then
      printf "Der AP/Router %s, %s ist nicht erreichbar. Bitte pruefen." $HOST "$DESC" | mail -s "AP/Router pruefen" recp1@mustermail.org recp2@mustermail.org recp3@mustermail.org
      echo $( date +%s ) > $LOGDIR/$HOST.lastmail.log
    fi
  else
    # SMTP-Checks und Logging
    checkMachines | \
    while read OUTPUT
    do
      printf "%s %s\n" $( date +%T ) "$OUTPUT" >> $DATEDIR/$HOST.log
    done
  fi
done < machines.txt
exit 0

Listing 5

192.168.2.1   Modem im Buero
192.168.2.2   Picostation Dach
192.168.10.1  AP Seminargebaeude
192.168.10.4  AP Kueche Hochlland
192.168.13.1  Picostation Neubau
192.168.13.2  AP Neubau unten
192.168.13.3  AP Neubau Mitte
192.168.13.4  AP Neubau oben

Logfiles

Wenn sich jetzt Gäste beschweren, dass das Internet langsam war, hilft ein Blick in die Logfiles des betroffenen Tages, um eventuelle Probleme aufzudecken oder festzustellen, ob Sie zusätzliche Informationen benötigen.

Ferner können Sie prüfen, ob es WLAN-Clients gibt, die sich auffallend häufig mit den APs verbinden und vielleicht eine Sonderbehandlung erfordern. Denkbar wäre, vom betreffenden WLAN-AP weitere Informationen abzurufen und auf deren Basis eine Firewall-Regel für den Client hinzuzufügen.

Mit der Zeit fallen recht viele Logdateien an. Das einmal täglich als Cronjob ausgeführte Script compress_and_delete.sh (Listing 6) hilft, Speicherplatz zu sparen, indem es die Logdateien des Vortags mit Gzip komprimiert und Logs nach 30 Tagen löscht.

Listing 6

#! /bin/bash
#: Title: compress_and_delete.sh
#: Date: 28.01.2015
#: Author: Falko Benthin
#: Version: 1.0
#: Desciption: Komprimiert alte Logs und löscht ganz alte Logs
#: Options: none
# Verzeichnis fuer Logfiles
LOGDIR="/home/falko/monitorlog"
# gestern
YEAR=$( date -d "yesterday" +%Y )
MONTH=$( date -d "yesterday" +%m )
DAY=$( date -d "yesterday" +%d )
# Logs von gestern komprimieren
gzip $LOGDIR/$YEAR/$MONTH/$DAY/*log
# alte Logs loeschen
find $LOGDIR -mtime +30 | xargs rm
exit 0

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Broadcom Adapter 802.11n nachinstallieren
Thomas Mengel, 31.10.2017 20:06, 2 Antworten
Hallo, kann man nachträglich auf einer Liveversion, MX Linux auf einem USB-Stick, nachträglich...
RUN fsck Manually / Stromausfall
Arno Krug, 29.10.2017 12:51, 1 Antworten
Hallo, nach Absturz des Rechners aufgrund fehlendem Stroms startet Linux nicht mehr wie gewohn...
source.list öffnet sich nicht
sebastian reimann, 27.10.2017 09:32, 2 Antworten
hallo Zusammen Ich habe das problem Das ich meine source.list nicht öffnen kann weiß vlt jemman...
Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 6 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...