cool IT Team-Blog

SNMP Agent Extensions mit C++

Um eine Applikation mittels des Windows SNMP-Diensten überwachen zu können muss man dessen Agent über eine sog. Agent-Extension erweitern. Diese Extension reagiert auf die definierten OIDs und erweitert so das Service um Funktionalität.
Hintergrund der Geschichte war ein Projekt, dass wir für einen Kunden entwickelt haben. Das Projekt wurde komplett im .Net-Framework 4.0 umgesetzt und schrieb alle Ereignisse in das Windows Event-Log und konnte über die Performance-Counter überwacht werden. Um die Applikation dann beim Kunden vollständig integrieren zu können mussten wir alle Informationen, die die Performance-Couner über den Zustand der Applikation boten auch über das SNMP-Service bereitstellen. Das funktioniert (leider) nicht über .Net, sondern ist nur über die Win32-API und C++ möglich, indem man für das SNMP-Service eine zusätzliche Agent-Extension entwickelt. Im folgenden möchte ich auf die notwendigen Schritte eingehen und ein Grundgerüst für eine solche Agent-Erweiterung vorstellen.

Zu allererst muss man ein neues Projekt vom Typ C++ Windows DLL anlegt. Eine gute Grundlage für die Implementierung bietet das Beispiel auf CodeProject unter http://www.codeproject.com/KB/IP/SNMP_Agent_DLL__Part1_.aspx.

Wichtig ist, dass die Agent-Extension den MIB-Table des Service um die im Code angegebenen OIDs erweitert. Was genau passiert wenn eine OID über das Service abgefragt wird, muss in der Methode GetRequest() implementiert werden. In unserem Fall waren alle OIDs entweder direkte Abfragen der Performance-Counter oder Abfragen über den Zustand verschiedener Windows-Dienste. Wie genau das in C++ implementiert werden kann bzw. wie man die fertige Agent-Extension in das Service integriert, werde ich in den nächsten Blog-Einträgen erläutern.

Eines jedoch vorweg: Ist die SNMP-Agent-Extension fertig implementiert und ins Service eingehängt hat man den Vorteil, dass die Applikation auch von Systemen überwacht werden kann, die nicht WMI unterstützen, sondern nur SNMP verstehen.

Ist doch cool, oder?
Verfasst: 12.05.2011 11:41:34 von Robert Stefan
Tags: C++, SNMP, Win 32-API

1


Kommentare
Für diesen Blogbeitrag liegen zurzeit keine Kommentare vor.
Einen Kommentar schreiben



 Security code