
SNMP Netzwerküberwachung: Web-Oberfläche
Dokumentinformationen
Autor | Marco Faisst |
instructor | Prof. Dr. Wolf-Fritz Riekert |
Schule | Fachhochschule Stuttgart – Hochschule der Medien |
Fachrichtung | Informationswirtschaft |
Fach | Informationsnetze, Kommunikationstechnik und Netzwerkmanagement |
Dokumenttyp | Diplomarbeit |
Ort | Stuttgart |
Sprache | German |
Format | |
Größe | 1.09 MB |
Zusammenfassung
I.Webbasierte Netzwerküberwachung mit SNMP und MRTG
Diese Diplomarbeit beschreibt die Entwicklung einer Web-Oberfläche zur Netzwerküberwachung eines kleinen Netzwerks. Kernstück ist die Nutzung des SNMP (Simple Network Management Protocol) zur Datenerfassung. Die Oberfläche visualisiert den Online-Status von Rechnern und zeigt mittels Diagrammen wichtige Kennzahlen wie CPU-Auslastung, Netzwerk-Traffic (übertragene Bytes) und freien Arbeitsspeicher an. Die benutzerfreundliche Oberfläche benötigt keine besonderen Vorkenntnisse zur Konfiguration und bietet einen übersichtlichen Überblick über den Netzwerkzustand. Der Zugriff ist passwortgeschützt und optional per verschlüsselter SSL-Verbindung realisierbar.
1. Übersicht und Funktionalität der Web Oberfläche
Die Diplomarbeit präsentiert eine Web-Oberfläche zur Netzwerküberwachung, die den Online-Status von Rechnern anzeigt und mittels grafischer Diagramme detaillierte Informationen liefert. Diese Informationen umfassen die Menge der übertragenen Bytes im Netzwerk, die CPU-Auslastung der Arbeitsplatz-PCs, den freien Arbeitsspeicher und weitere relevante Metriken. Das System nutzt das Simple Network Management Protocol (SNMP) zur Datenbeschaffung. Die Oberfläche zeichnet sich durch ein übersichtliches Design und eine einfache Konfiguration aus, die keine besonderen Vorkenntnisse erfordert. Sie konzentriert sich auf die wesentlichen Funktionen für eine effektive Netzwerküberwachung. Der Zugriff ist sicherheitsrelevant durch Benutzername und Passwort geschützt und optional mit einer verschlüsselten SSL-Verbindung erweiterbar. Die Darstellung des Online-Status erfolgt visuell als Ampelsystem (grün/rot) und kann optional durch eine akustische Warnung ergänzt werden. Die Wahl einer solchen Web-Oberfläche bietet gegenüber kostenpflichtigen Lösungen den Vorteil niedrigerer Lizenzkosten und einer höheren Flexibilität bei der Erweiterung und Anpassung.
2. SNMP und Datenbeschaffung
Ein zentraler Bestandteil der Netzwerküberwachung ist die Nutzung des SNMP-Protokolls. SNMP ermöglicht das Abfragen von Netzwerkgeräten nach verschiedenen Parametern. Diese Parameter werden in der Management Information Base (MIB) definiert und über eindeutige Object Identifier (OIDs) adressiert. Das System verwendet SNMP-Tools, um die Geräte regelmäßig abzufragen (Polling). Die gesammelten Daten umfassen detaillierte Informationen wie die Anzahl der übertragenen Bytes über einen Router, die CPU-Auslastung eines Windows-2000-Systems, den freien Arbeitsspeicher und weitere Werte. Die Anzeige dieser Daten erfolgt in Form von grafischen Verlaufsdiagrammen, welche dem Benutzer einen klaren und leicht verständlichen Überblick verschaffen. Zusätzliche Textinformationen ergänzen die Diagramme und liefern präzisere Details. Die Möglichkeit der Erweiterung und Konfiguration der Web-Oberfläche durch Scripte wird ebenfalls angesprochen.
3. Implementierung und verwendete Technologien
Die Web-Oberfläche wurde unter dem freien Betriebssystem Linux (Red Hat 8.0) implementiert. Die Wahl von Linux bietet den Vorteil der Lizenzfreiheit und einer hohen Erweiterbarkeit. Ähnliche Distributionen wie SuSE Linux sollten ebenfalls kompatibel sein, allenfalls geringfügige Anpassungen an Verzeichnispfaden oder Bezeichnungen wären notwendig. Zur Generierung der Diagramme wird MRTG (Multi Router Traffic Grapher) eingesetzt, welches in Perl geschrieben ist und SNMP-Daten verarbeitet. Um eine kontinuierliche Erstellung von Grafiken zu vermeiden, falls diese nur selten angesehen werden, wurde MRTG durch RRDtool, ebenfalls von Tobias Oetiker, erweitert. RRDtool sammelt die reinen Daten und schreibt diese in Dateien, was die Geschwindigkeit des Systems verbessert. Die Nutzung von Perl als Skriptsprache und die Implementierung unter Linux ermöglichen eine flexible und kostengünstige Lösung.
4. Automatisierung und Konfiguration
Für die automatische Netzwerküberwachung werden Cronjobs unter Linux eingesetzt. Diese ermöglichen die regelmäßige Ausführung von Skripten, in diesem Fall alle 5 Minuten. Die Konfiguration der Cronjobs wird detailliert beschrieben. Dabei wird eine Textdatei onlinestatus
verwendet, um die Ausführung des Skripts ipcheck_all
zu planen. ipcheck_all
prüft den Online-Status von Geräten über Ping-Befehle und erzeugt entsprechende Grafikdateien (grünes/rotes Lämpchen). Ein weiteres Skript, graphcfg
, generiert die MRTG-Konfigurationsdateien und die HTML-Einträge für die Detail-Ansicht der Web-Oberfläche. Der Zugriff auf die Web-Oberfläche wird über einen Apache Webserver realisiert, der standardmäßig auf Port 80 läuft, aber auf einen anderen Port (z.B. 8080) verschoben werden kann. Die Konfiguration des Apache Webservers umfasst die Anpassung der Zugriffsberechtigungen (/var/www/html/
) und die Benutzerrechte (Benutzer snmp
). Die automatische Aktualisierung der Web-Oberfläche erfolgt über Meta-Tags im Header der HTML-Datei, um veraltete Informationen aus dem Browser-Cache zu vermeiden.
II.Datenbeschaffung und darstellung mit SNMP
Die Datenerfassung erfolgt über SNMP Polling. Die MIB (Management Information Base) definiert die abrufbaren Daten. Object Identifier (OID's) identifizieren einzelne Netzwerkparameter. Das System nutzt Tools, welche die Geräte per SNMP abfragen und die Ergebnisse in grafischen Diagrammen visualisieren. Die Web-Oberfläche dient als Schnittstelle zwischen dem Benutzer und den im Hintergrund laufenden Tools, die regelmäßig Daten abrufen und verarbeiten.
1. SNMP als Grundlage der Datenbeschaffung
Die Datenbeschaffung für die Netzwerküberwachung erfolgt primär über das Simple Network Management Protocol (SNMP). SNMP dient als Standardprotokoll für die Verwaltung von Netzwerkgeräten und erlaubt das Abrufen von Informationen über den Netzwerkstatus. Im Rahmen dieser Arbeit werden SNMP-Tools eingesetzt, um wichtige Netzwerkparameter regelmäßig abzufragen. Dieser Prozess des regelmäßigen Abfragens wird als Polling bezeichnet. Die zu überwachenden Geräte werden automatisiert und in regelmäßigen Abständen nach relevanten Daten abgefragt. Die Management Information Base (MIB) definiert die verfügbaren Datenpunkte, die abgefragt werden können. Innerhalb der MIB werden die einzelnen Datenpunkte durch eindeutige Object Identifier (OIDs) identifiziert. Diese OIDs dienen als Schlüssel, um spezifische Informationen von den Netzwerkgeräten abzurufen. Die Architektur erlaubt so, dass relevante Daten wie die Anzahl der übertragenen Bytes, die CPU-Auslastung, der freie Arbeitsspeicher und weitere Metriken extrahiert und für die weitere Verarbeitung bereitgestellt werden können.
2. Datenverarbeitung und darstellung
Die über SNMP gewonnenen Rohdaten werden anschließend verarbeitet und für den Benutzer übersichtlich dargestellt. Die Visualisierung der Daten erfolgt über grafische Diagramme, die den aktuellen Zustand des Netzwerks auf einen Blick zeigen. Die Diagramme ermöglichen eine einfache Interpretation der gesammelten Daten. Zusätzlich zu den Diagrammen werden auch Textinformationen bereitgestellt, um Details zu ergänzen und die Auswertung zu erleichtern. Die Darstellung konzentriert sich auf wichtige Kennzahlen, um dem Benutzer einen schnellen Überblick zu verschaffen und die wichtigsten Informationen hervorzuheben. Die grafische Darstellung der Daten ist ein entscheidender Faktor für die Benutzerfreundlichkeit der Netzwerküberwachung, denn die übersichtliche Darstellung von Trends und Ausnahmen ermöglicht eine schnelle Reaktion auf potenzielle Probleme. Die Daten werden in regelmäßigen Abständen aktualisiert, um stets aktuelle Informationen bereitzustellen und den Benutzer über den aktuellen Zustand des Netzwerks zu informieren.
3. Beschaffung spezifischer OIDs für MRTG
Um spezifische Netzwerkparameter wie CPU-Auslastung und freien Arbeitsspeicher mit MRTG zu überwachen, sind die entsprechenden Object IDs (OIDs) notwendig. Diese OIDs sind nicht standardmäßig in MRTG enthalten und müssen separat ermittelt werden. Eine Möglichkeit zur Ermittlung der OIDs besteht darin, die MIB-Zweige manuell zu durchsuchen. Unter Linux kann hierfür der Befehl snmpwalk
verwendet werden. Unter Windows steht das Tool GetIf
zur Verfügung. Alternativ können auch online verfügbare Ressourcen genutzt werden. Die Webseite www.wtcs.org/snmp4tpc bietet beispielsweise vorgefertigte Konfigurationsdateien für MRTG, aus denen die benötigten OIDs entnommen werden können. Die Konfigurationsdateien enthalten Angaben wie Target[WIN2KFS1_PRIV_USER]
und LegendO[WIN2KFS1_PRIV_USER]
, wobei die Object ID in der Zeile mit Target
angegeben ist. Diese Object IDs werden dann in die MRTG-Konfigurationsdatei (mrtg.cfg
) eingebunden, um die entsprechenden Daten abzufragen. Die Wahl der Bezeichnung innerhalb der eckigen Klammern ist frei wählbar und dient der Identifikation der jeweiligen Abfrage. Die Community und IP-Adresse des zu überwachenden Geräts müssen ebenfalls in der Konfiguration angepasst werden.
III.Implementierung mit Linux MRTG und RRDtool
Die Implementierung basiert auf dem Linux Betriebssystem (Red Hat 8.0). MRTG (Multi Router Traffic Grapher) erstellt die grafischen Darstellungen des Netzwerk-Traffics und anderer SNMP-Daten. Zur Optimierung des Datensammelprozesses wird zusätzlich RRDtool verwendet. Perl-Scripte steuern die automatisierte Datenerfassung und die Generierung der Webseiten. Cronjobs sorgen für den automatisierten Ablauf der Überwachung im festgelegten Intervall (alle 5 Minuten).
1. Betriebssystem und Softwareauswahl
Die Implementierung der Netzwerküberwachungslösung basiert auf dem Betriebssystem Linux, genauer gesagt der Distribution Red Hat 8.0. Die Wahl von Linux bietet den Vorteil der Lizenzfreiheit und damit verbundener Kostenersparnis im Vergleich zu proprietären Systemen. Die Verwendung von Red Hat 8.0 ist nicht zwingend, Nachfolgeversionen oder andere Distributionen wie SuSE Linux sind ebenfalls geeignet, allenfalls sind kleinere Anpassungen an Verzeichnispfaden oder Bezeichnungen erforderlich. Die Softwarewahl konzentriert sich auf Open-Source-Lösungen, um die Kosten niedrig zu halten und eine hohe Flexibilität bei der Erweiterung zu gewährleisten. Für die grafische Darstellung des Netzwerkverkehrs und weiterer SNMP-Daten wird MRTG (Multi Router Traffic Grapher) verwendet, eine in Perl geschriebene Anwendung. Ein Perl-Interpreter ist daher eine notwendige Voraussetzung für den Betrieb. Um die Performance zu optimieren, insbesondere die ständige Erzeugung von Grafiken, wird das Tool rateup
durch rrdtool
ersetzt, welches lediglich die reinen, nicht grafisch aufbereiteten Daten sammelt und speichert. Die Verwendung von rrdtool
optimiert die Geschwindigkeit des gesamten Systems.
2. MRTG und RRDtool Funktionsweise und Integration
MRTG (Multi Router Traffic Grapher) ist ein Werkzeug zur grafischen Darstellung von Netzwerkdaten, das primär den Datenverkehr von Routern und Switches visualisiert. Da es jedoch SNMP nutzt, kann es nahezu jeden über SNMP abrufbaren Wert grafisch aufbereiten. Eine aktuelle Version von MRTG wurde von www.mrtg.org heruntergeladen (mrtg-2.10.0.tar.gz zum Zeitpunkt der Arbeit). Die Installation erfolgte über das Kommandozeilen-Tool tar
. RRDtool, ebenfalls von Tobias Oetiker entwickelt, ergänzt MRTG. Es dient dem effizienten Sammeln und Speichern der Rohdaten, ohne die grafische Aufbereitung direkt durchzuführen. Dies verbessert die Geschwindigkeit und reduziert den Ressourcenverbrauch, insbesondere bei der kontinuierlichen Erzeugung von Grafiken, die nur selten betrachtet werden. Die Konfiguration von MRTG erfolgt über die Datei mrtg.cfg
. Konfigurationsparameter wie nobanner
(Unterdrückung des MRTG-Logos) und die Festlegung der Hintergrundfarbe werden erwähnt. Die eigentliche Erzeugung der HTML-Dateien und Grafiken wird erst später durch ein CGI-Script behandelt, welches jedoch ebenfalls auf mrtg.cfg
zugreift.
3. Konfiguration von MRTG und Datenquellen
Die Konfiguration von MRTG erfordert die Definition der abzufragenden OIDs (Object Identifiers) für die gewünschten Parameter. MRTG kennt standardmäßig nur OIDs für den Netzwerkverkehr. Für die CPU-Auslastung oder den freien Arbeitsspeicher müssen die entsprechenden OIDs manuell ermittelt werden. Dies kann entweder durch manuelles Durchsuchen der MIB-Struktur mit Tools wie snmpwalk
(Linux) oder GetIf
(Windows) erfolgen, oder durch Recherche im Internet, beispielsweise auf Webseiten wie www.wtcs.org/snmp4tpc. Dort finden sich vorgefertigte Konfigurationsdateien (z.B. WIN2KFS1_CPU.CFG), die als Referenz für die notwendigen OIDs dienen. Der relevante Abschnitt aus solchen Konfigurationsdateien wird in die mrtg.cfg
Datei übernommen. Die Konfiguration umfasst die Angabe der Ziel-IP-Adresse, der SNMP-Community und der gewünschten OID. Zusätzliche Optionen wie gauge, nopercent
können die Darstellung der Daten beeinflussen (z.B. Anzeige des aktuellen Werts ohne Prozentangaben). Nachdem alle benötigten OIDs konfiguriert sind, kann MRTG gestartet werden, um die Daten zu sammeln und die Diagramme zu generieren. Ein Mausklick auf ein Diagramm öffnet eine detaillierte HTML-Seite mit Statistiken für Tag, Woche, Monat und Jahr.
IV.Konfiguration und Automatisierung
Die Konfiguration beinhaltet das Einrichten eines Apache Webservers und die Anpassung von Konfigurationsdateien (z.B. mrtg.cfg
). Perl-Scripte (ipcheck_all
, graphcfg
) werden zur automatisierten Prüfung des Online-Status und zur Generierung der Diagramme eingesetzt. Die automatische Ausführung der Scripte wird über Cronjobs realisiert. Die Web-Oberfläche bietet eine intuitive Navigation mit separaten Ansichten für den Online-Status und detaillierte Informationen (Details-Seite).
1. Webserver Konfiguration
Die Web-Oberfläche wird über einen Apache Webserver bereitgestellt. Die Standardkonfiguration des Webservers muss an die Bedürfnisse der Anwendung angepasst werden. Der Standard-Port 80 kann verwendet werden, falls dieser frei ist. Andernfalls muss ein alternativer Port, z.B. 8080, gewählt werden. In diesem Fall wäre der Webserver unter http://192.168.0.9:8080 erreichbar (die IP-Adresse ist ein Beispiel). Es ist wichtig, die Standard-Ausgabeverzeichnisse auf /var/www/html
zu setzen. Der Zugriffsschutz auf die Web-Oberfläche ist essentiell. Die Konfiguration sollte sicherstellen, dass nur autorisierte Administratoren Zugriff erhalten. Dies wird durch die Verwendung von Benutzername und Passwort gewährleistet. Eine verschlüsselte SSL-Verbindung kann optional für erhöhte Sicherheit eingerichtet werden. Der Zugriffsschutz für das Verzeichnis /var/www/html
, welches die HTML-Dateien enthält, sollte explizit konfiguriert werden, um unbefugten Zugriff zu verhindern. Es ist ratsam, den Webserver nicht unter dem root-Benutzer zu betreiben, um Sicherheitslücken zu minimieren; der Benutzer apache
wird empfohlen.
2. Automatisierung mit Cronjobs und Skripten
Für die automatisierte Überwachung und die regelmäßige Aktualisierung der Daten werden Cronjobs unter Linux verwendet. Diese ermöglichen das automatische Ausführen von Skripten zu festgelegten Zeitpunkten. In diesem Fall werden die Skripte alle 5 Minuten ausgeführt. Ein Skript, ipcheck_all
, prüft den Online-Status der zu überwachenden Geräte mittels Ping-Befehlen und erzeugt entsprechende Statusgrafiken (grün/rot). Dieses Skript erwartet die IP-Adresse als Parameter. Ein weiteres Skript, graphcfg
, erzeugt die notwendigen Konfigurationsdateien für MRTG und die HTML-Einträge für die Details-Seite der Web-Oberfläche. Die Konfiguration der Cronjobs wird mit der Datei onlinestatus
vorgenommen. Diese enthält Einträge im Crontab-Format, die angeben, zu welchem Zeitpunkt welche Skripte ausgeführt werden sollen. Es wird ein vereinfachtes Crontab-Format mit */5 * * * * *
verwendet, um die Ausführung alle 5 Minuten zu gewährleisten. Der Benutzer snmp
sollte die notwendigen Rechte zum Ausführen dieser Skripte haben. Falls nötig, müssen die Dateirechte mit dem chown
-Befehl angepasst werden. Der Dienst crond
muss gegebenenfalls manuell gestartet werden (service crond start
). Die automatische Aktualisierung der Details-Seite der Web-Oberfläche wird durch Meta-Tags im Header der details.html
Datei realisiert, welche die Seite alle 5 Minuten neu laden und den Cache leeren.
3. Benutzerverwaltung und Dateirechte
Für den Zugriff auf die Daten und die Ausführung der Skripte wird ein dedizierter Benutzer, snmp
, verwendet. Dieser Benutzer benötigt die notwendigen Lese- und Schreibberechtigungen im Verzeichnis /var/www/html
, wo sich die Webseiten und Skripte befinden. Die korrekte Einrichtung der Dateirechte ist essentiell für die einwandfreie Funktion des Systems. Falls die Skripte zuvor von einem root-Benutzer ausgeführt wurden, müssen die Dateirechte entsprechend angepasst werden, indem die Besitzrechte mit dem Befehl chown snmp:snmp [Dateiname]
an den Benutzer snmp
übergeben werden. Die Dateirechte sollten danach überprüft und gegebenenfalls mit dem Befehl chmod
angepasst werden. Die Verwendung des Benutzers snmp
anstelle des root-Benutzers minimiert Sicherheitsrisiken. Eine weitere Sicherheitsmaßnahme ist das Vermeiden einer Anmeldung mit root-Rechten, falls das System nicht anderweitig als root genutzt wird. Die Nutzung eines separaten Benutzers wie snmp
fördert das Prinzip der geringsten Rechte und schützt das System vor potentiellen Sicherheitslücken.
V.Zusätzliche Aspekte
Das System verwendet ein einfaches Ampelsystem (rot/grün) zur Darstellung des Online-Status. Zusätzlich ist eine akustische Warnung geplant. Die Wahl von Open-Source-Software wie Linux, MRTG und RRDtool ermöglicht kostengünstige Implementierung und einfache Erweiterbarkeit. Der Benutzer snmp wird verwendet, um auf die notwendigen Dateien zuzugreifen. Wichtig ist das richtige Setzen der Dateirechte. Der Webserver sollte nicht als root-Benutzer laufen.
1. Benutzerfreundlichkeit und Zugriffskontrolle
Die Web-Oberfläche wurde so gestaltet, dass sie auch für Personen ohne tiefgreifende Kenntnisse im Netzwerkmanagement leicht verständlich und nutzbar ist. Die Darstellung des Online-Status erfolgt intuitiv über ein Ampelsystem (grün/rot), um die Erreichbarkeit der Geräte schnell zu erkennen. Zusätzlich ist eine akustische Warnung angedacht, um den Administrator bei Fehlern zu benachrichtigen. Der Zugriff auf die Web-Oberfläche ist passwortgeschützt, um unbefugten Zugriff zu verhindern. Die Authentifizierung erfolgt über Benutzername und Passwort. Optional ist eine verschlüsselte SSL-Verbindung möglich, um die Datenübertragung zusätzlich zu sichern. Die Navigation ist einfach gehalten und bietet eine übersichtliche Struktur. Die Hauptansichten sind 'Online-Status' und 'Details', wobei letztere detaillierte Statistiken und Diagramme in Echtzeit anzeigt. Ein Link zum Fehlerprotokoll auf der 'Online-Status'-Seite ermöglicht die Nachverfolgung von Ausfällen.
2. Kosten und Open Source Vorteile
Ein wichtiger Aspekt der Implementierung ist die Kostenersparnis. Im Gegensatz zu proprietären Netzwerkmanagement-Systemen, die hohe Lizenz- und Implementierungskosten verursachen können, basiert die vorgestellte Lösung auf Open-Source-Software. Die Verwendung von Linux, MRTG und RRDtool vermeidet Lizenzgebühren und reduziert die Kosten erheblich. Die Auswahl der Open-Source-Software bietet darüber hinaus den Vorteil der hohen Flexibilität und Erweiterbarkeit. Dies ermöglicht eine einfache Anpassung an die spezifischen Bedürfnisse des Netzwerks und zukünftige Erweiterungen der Überwachungsfunktionen. Der Open-Source-Markt bietet eine Vielzahl an Alternativen, von kleinen SNMP-Kommandozeilentools bis hin zu umfassenden Netzwerkmanagement-Systemen wie Nagios. Die Wahl der Komponenten berücksichtigt den Fokus auf einfache Überwachung, um unnötige Komplexität zu vermeiden.
3. Sicherheitsaspekte und Benutzerrechte
Die Sicherheit der Netzwerküberwachung ist ein wichtiger Aspekt. Der Webserver sollte niemals mit angemeldeten root-Rechten betrieben werden, da dies ein erhebliches Sicherheitsrisiko darstellt und in den meisten Fällen nicht funktioniert. Stattdessen wird der Benutzer und die Gruppe apache
empfohlen. Für den Zugriff auf die Daten und die Ausführung der Skripte wird der Benutzer snmp
verwendet. Dieser Benutzer muss über entsprechende Lese- und Schreibberechtigungen im Verzeichnis /var/www/html
verfügen. Falls die Dateirechte nicht korrekt gesetzt sind (z.B. durch vorherige Ausführung der Skripte als root), müssen diese mit dem Befehl chown snmp:snmp [Dateiname]
angepasst und gegebenenfalls mit chmod
die Berechtigungen korrigiert werden. Die korrekte Einrichtung der Benutzerrechte und der Zugriffskontrolle ist essenziell, um die Sicherheit des Systems zu gewährleisten und unbefugten Zugriff zu verhindern. Zusätzlich zur Passwortsicherung und der optionalen SSL-Verschlüsselung trägt die korrekte Benutzerverwaltung zum Schutz des Netzwerks bei.
Dokumentreferenz
- 14all.cgi-Dokumentation (Bawidamann, Rainer)