№42

... it's better to have good questions

OpenNMS SNMP Monitor - You have found a secret

December 11, 2009 2 min read OpenNMS Ronny Trommer

In OpenNMS wurde seit der Version 1.6.3 der SNMP Monitor erweitert und die neuen Features sind Release-Notes Beschreibung vielleicht ein wenig untergegangen. Die erweiterten Funktionen haben sich für mich als hilfreich erwiesen und sind mir einen Blog-Eintrag wert. Die OpenNMS Wiki Seite sind an der Stelle sehr gut dokumentiert und aktualisiert worden. Grob zusammengefaßt sind folgende Funktionen erweitert worden:

  • Es können jetzt optional komplette SNMP Tabellen anstatt von einzelnen OIDs überwacht werden
  • Es kann die Anzahl eines gewünschten Status gezählt und gegen einen Schwellwert geprüft werden
  • Die Fehlermeldung lässt sich über ein Template sprechend parametrisieren

Im folgenden wird die Einrichtung am Beispiel eines Monitors für ISDN B-Kanäle gezeigt. Häufig werden Notfall-Dialup Verbindungen eingerichtet, wenn Internet Verbindungen oder VPNs nicht mehr möglich sind. Mit diesem Monitor werden alle B-Kanäle überwacht, sobald eine Einwahl stattfindet und ein B-Kanal verwendet wird, fällt der Monitor herunter und informiert den Administrator, dass ein Benutzer oder Standort auf ISDN-Backup läuft. Sollte eigentlich für alle Geräte funktionieren, welche die ISDN-MIB unterstützen. Der abgefragte Tabelle ist übrigens isdnBearerOperStatus. Zuerst wird dazu in der capsd-configuration.xml ein Dienst eingerichtet:

<protocol-plugin protocol="All-ISDN-Backup" class-name="org.opennms.netmgt.capsd.plugins.LoopPlugin" scan="on">
  <property key="ip-match" value="{ip-adresse-isdn-backup-router}" />
  <property key="is-supported" value="true" />
</protocol-plugin>

Der Monitor im pollerd sieht dann wie folgt aus:

<service name="All-ISDN-Backup" interval="300000" user-defined="false" status="on">
  <parameter key="retry" value="6" />
  <parameter key="timeout" value="4950" />
  <parameter key="port" value="161" />
  <parameter key="oid" value=".1.3.6.1.2.1.10.20.1.2.1.1.2" />
  <parameter key="walk" value="true" />
  <parameter key="operator" value="=" />
  <parameter key="operand" value="1" />
  <parameter key="match-all" value="true" />
  <parameter key="reason-template"
       value="One or more backup ISDN channels are active. \
    The state should be idle(${operand}) the observed value is ${observedValue}. \
    Syntax: idle(1), connecting(2), connected(3), active(4) " />
</service>
...
<monitor service="All-ISDN-Backup" class-name="org.opennms.netmgt.poller.monitors.SnmpMonitor"/>

Anstatt key="match-all value="true" kann auch der Wert value="count" gesetzt werden, zählt der Monitor die Abweichungen und man kann auf Schwellen prüfen. Die Schwellen werden mit zusätzlichen Parametern <parameter key="minimum" value="3"> sowie <parameter key="maximum" value="10" /> gesetzt werden.

gl&hf

Just another meaning about Business Process Monitoring

November 28, 2009 4 min read OpenNMS Ronny Trommer

Zuviel Hotel ohne Internet bekommen mir irgendwie nicht wirklich gut. Mit einem einfachen Text-Editor und viel Zeit, habe ich ein paar Gedanken zum Thema Business Process Monitoring (BPM) aufgeschrieben. Häufig wird dies im Zusammenhang mit der Einführung eines Netzwerk-Management-Systems (NMS) oder Monitoring-Tools gesehen.

Wenn man sich im Internet zum Monitoring und Netzwerk-Management umsieht, wird man schnell feststellen, dass klassisches Netzwerk-Management und Monitoring durchgekaut scheinen und als ziemlich out gelten. Stattdessen versuchen verschiedene Anbieter ihre NMS-Anwendungen und Tools, durch ein Feature namens “Business-Process-Monitoring” aufzuwerten.

Ich behaupte, dass jedes Management- oder Monitoring-Tool (wie bspw.: OpenNMS, Nagios, Icinga, Zabbix, Zenoss …), mit der Fähigkeit eigene Skripte oder Programme auszuführen, zum Business Process Monitoring genutzt werden können. Letztendlich liegt es an der Fähigkeit des Monitor-Entwicklers, wie gut er die Abläufe oder Prozesse in einem Unternehmen versteht und im Monitor (Skript/Programm) abbilden kann. Wer nach Business Process Monitoring sucht, wird vermutlich erst einmal einen haufen Marketing-Unterlagen stoßen, die nichts ausser Luftvokabular enthalten. Das ganze ist auch ziemlich logisch, schließlich kann man den Test eines Geschäftsprozesses nicht mit einem einfachen ping-Test vergleichen. Es gibt für die Parametrisierung eben eine ganze Menge “Kommt-ganz-darauf-an´s” zu klären. Die Wahl des Tools sehe ich daher eher zweitrangig. Wie so oft, liegt für mich der Anbieter vorn, abgesehen vom Preis ;), der die Anforderungen am besten versteht und mit seinem Monitoring-Tool effizient umgehen kann.

Wie man sich leicht vorstellen kann, sind Business Process Monitore verhältnismässig teuer. Das liegt daran, dass einerseits Ressourcen wie (Zeit, Personal, Dienstleister), um die Monitore zu entwickeln, andererseits auch Ressourcen wie CPU-Zeit und Lizenzen für die Anwendung oder Datenbank, benötigt werden. Ein Business Process Monitor benötigt häufig für den Test genau die gleichen Ressourcen wie ein realer Anwender. Bevor man sich also vollständig den Buzzwords hingibt, sollte man sich zunächst klar machen, dass Geschäftsanwendungen, auch wenn sie SAP, Microsoft Dynamics NAV etc. heißen, verteilte Netzwerk-Anwendungen sind, die eine Server- und Netzwerk-Infrastruktur benötigen und in den meisten Fällen zentralisiert aufgebaut sind. Sorry an alle Vorstände, Geschäftsführer und BWL´er, ich weiss es würde besser gefallen, wenn man diesen ganzen Kram mit den ganzen Leuten nicht benötigen würde, geht aber leider nicht anders ;)

Monitoring layer model TCP/IP-Schichten und deren Monitore

Die oben gezeigte Abbildung ist Anlehnung an das TCP-Schichtmodell entstanden und soll darstellen wo sich das BPM aus meiner Sicht einordnen lässt. Die Unternehmens-Anwendungen sind also meistens über mehrere Server verteilt und hängen damit massgeblich von den Netzwerk-Schichten ab. Es ist leicht verständlich, je höher in den Schichten überwacht wird, desto komplexer und spezieller müssen auch die Monitore sein. Das gleiche gilt auch für die Fehlerdiagnose. Je weiter oben in den Schichten ein Fehler auftritt, desto mehr muss ein Support-Mitarbeiter wissen um den Fehler zu beheben. Die Fehlerdiagnose erfolgt daher auch eher von unten nach oben. Die Tools ping, traceroute und nmap sind nicht ohne Grund die am Häufigsten verwendeten Tools die ein Administrator oder Support-Mitarbeiter zur Fehlerdiagnose verwendet. Die Monitore in den unteren Schichten sind extrem günstig, da die meisten Netzwerk-Management und -Monitoring-Anwendungen fertige und leistungsfähige Monitore direkt mitbringen.

Ein ganz einfaches Beispielt sollte das hier verdeutlichen. Sie haben einen Monitor geschrieben, der einen konkreten Anwendungsfall ihrer Geschäftsprozesse, bspw. den Abruf eines Lieferscheins oder eine Buchung, testet. Auf dem Datenbankserver ist eine redundant ausgelegte Festplatte defekt oder ein redundanter Lüfter ist ausgefallen. Sie werden keine Beeinträchtigung im Geschäftsprozess durch den Monitor feststellen, er funktioniert wie gewohnt. Mit etwas Glück kann man sehen, dass die Ausführung vielleicht etwas länger dauert, der Rückschluss auf einen RAID-Verband im Status “degraded” ist aber auch dem besten Netzwerk-Administrator wohl etwas zuviel abverlangt. Der Ausfall einer weiteren Platte oder das Herunterfahren des Systems zum Schutz vor Überhitzung, wird den Geschäftsprozess dann wirklich erst beeinträchtigen, ab dann wird es meistens teuer. Was hilft es also, wenn der komplizierteste Business-Prozesse in der letzten Abhängigkeit überwacht und getestet wird, dann im Fehlerfall aber überhaupt keine sinnvolle Hilfestellung zur Entstörung oder Eingrenzung des Problems vorliegt. Sie haben also eine Möglichkeit durch Austausch der Festplatte oder des Lüfters zur Prävention verpasst. Die Überwachung des Business-Prozesses stellt also in meinen Augen eher am Ende der Monitoring-Kette eine Art, Qualitätssicherung dar. Fällt ein Monitor, der einen Geschäftsprozess überwacht aus, dann haben auch letztendlich alle Redundanzen versagt und das Kind liegt schon im Brunnen. Meine Erfahrungen aus der Systembetreuung hat mir gezeigt, dass Fehler häufig in den unteren Schichten auftreten. Bei der Einführung von BPM sollten man sich daher aus meiner Sicht, die Frage stellen ob ein Netzwerk-Management und Monitoring existiert und auch wie gewünscht funktioniert, da diese Überwachung sich implizit auch auf die Überwachung ihrer Geschäftsanwendung auswirkt.

gl & hf