Das Simple Network Monitoring Protokol (SNMP) ist ein Standard, um den Zustand von vielen verschiedenen IT-Geräten abzufragen und sich über auftretende Ereignisse benachrichtigen zu lassen. Vom Drucker über aktive Netzwerkkomponenten, Server-Hardware, Betriebssysteme bis hin zu einzelnen Diensten können viele Geräte und Programme SNMP "sprechen", manchmal nativ, manchmal über Plug-ins oder Zusatzpakete, sogenannte SNMP-Agenten.
Der Charme dieses Standards ist es, dass man fast alles im Bereich IT herstellerunabhängig über SNMP an das gewählte Monitoring-System (in der Rolle eines SNMP-Managers) anbinden kann und auf der anderen Seite jedes Monitoring-System dieses Protokoll beherrscht.
Um über so eine große Spannweite an zu überwachenden Geräten und Diensten jeden möglichen Betriebsparameter abfragen zu können, müssen diese eindeutig adressiert werden können. Dazu dient der Object Identifier (OID). Ein solcher Identifier ist eine Folge von mit Punkten getrennten Zahlen, über die alle OIDs hierarchisch organisiert werden. Es gibt einige allgemeine OIDs, aber für jedes Gerät und für jeden Dienst definiert der jeweilige Hersteller eine spezifische Unterhierarchie, einen Parameterbaum, und veröffentlicht diese in Form einer Management Information Base (MIB). Das ist eine Textdatei, die die gültigen OIDs festlegt und mit sprechenden Namen versieht.
Auch IBM hat für den Domino-Server eine SNMP-Anbindung definiert und entsprechende Prozesse implementiert. Die MIB des Domino-Dienstes findet man in der Datei domino.mib
im Programmverzeichnis des Domino-Servers unter Windows bzw. unter /opt/hcl/domino/notes/latest/linux/
bei einem Domino-Server unter Linux.
Der SNMP-Manager fragt Werte ab, indem er Anfragen mit einer OID an den Standardport 161/udp schickt, auf dem ein SNMP-Agent horchen muss. Da auf einem System, also unter einer IP-Adresse, immer nur ein Prozess auf einem UDP-Port horchen kann, aber sowohl Betriebssystem, als auch Server-Prozesse wie Domino überwacht werden können sollen, gibt es typischerweise einen SNMP-Master-Agent des Betriebssystems, bei dem sich die SNMP-Slave-Agents der Dienste auf dem Server registrieren können. Bei dieser Registrierung gibt der Slave-Agent dem Master die Wurzel-OID der MIB des Dienstes bekannt. Bei Anfragen des SNMP-Managers werden alle OIDs, die mit dieser Basis-OID beginnen, an den Slave weitergereicht und seine Antwort wiederum über den Master-Agent zurückgegeben.
Bei Domino übernimmt der LNSNMP-Dienst die Rolle des SNMP-Slave-Agents. Dieser Dienst läuft außerhalb des Domino-Servers (nicht als Domino-Server-Add-in), damit er den Domino-Server und seine Unterprozesse beobachten und ihn ggf. starten, neustarten oder beenden kann.
Innerhalb des Domino-Servers müssen aber auch Tasks gestartet werden, die der LNSNMP kontaktiert, um Werte abzufragen bzw. die ihm auftretende Ereignisse in Form von SNMP-Traps zu schicken:
- Der Task Domino QuerySet Handler (quryset) beantwortet Anfragen des LNSNMP,
- der Task Domino Event Interceptor (intrcpt) schickt SNMP-Traps an den LNSNMP und
- der Task Statistic Collector (collect) generiert bei entsprechenden Anfragen die Server-Statistiken.
Das sind die Grundelemente für das Monitoring von Domino über SNMP. Im Teil 2 geht es dann um ein paar hilfreiche, kleine Werkzeuge, die einem helfen können, SNMP-Anfragen abzuschicken und Antworten anzuzeigen.