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 02/2018: PAKETE VERWALTEN

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

sharklinux
Gerd-Peter Behrendt, 18.01.2018 23:58, 0 Antworten
Hallo zusammen, ich habe sharklinux von der DVD Installiert. 2x, jedesmal nach dem Reboot ist di...
Anfänger sucht Ratschläge
Alucard Nosferatu, 18.01.2018 21:56, 3 Antworten
Guten Tag, meine Wenigkeit würde gerne auf einer meiner Festplatten von meinen Feldrechnern e...
Suchprogramm
Heiko Taeuber, 17.01.2018 21:12, 1 Antworten
Hallo liebe Community, keine Ahnung ob dieses Thema hier schon einmal gepostet wurde. Ich hab...
Linux Mint als Zweitsystem
Wolfgang Robert Luhn, 13.01.2018 19:28, 4 Antworten
Wer kann mir helfen??? Habe einen neuen Laptop mit vorinstaliertem Windows 10 gekauft. Möchte g...
externe soundkarte Kaufempfehlung
lara grafstr , 13.01.2018 10:20, 4 Antworten
Hallo Ich bin auf Suche nach einer externen soundkarte.. Max 150 Euro Die Wiedergabe is...