Graphing - SNMP DATA - MRTG II Netzwerkmanagement Software hat sich in den letzten Jahren vom hilfreichen Produkt zur integralen Grundlage für den professionellen IT Betrieb gewandelt. Grosse und leistungsfähige Produkte wie HP Openview, Tivoli oder Spektrum wurden zu den Augen und Ohren der verantwortlichen Technikern in teilweise riesigen Netzwerken. Nur mit der Hilfe dieser Produkte ist es diesen Personen heute möglich den Überblick über komplexe Systeme zu behalten. Zu den wesentlichsten Aufgaben eines vollständigen SNMP Management Produktes gehören: - Pollen von SNMP Variablen - Speichern der Daten - Erstellen von Statistiken - Visualisierung der Daten - Alarming beim Erreichen von kritischen Grenzwerten Zusätzlich wird oft: - Graphische Darstellung der Topologie - Inventory Funktionalität ( auch freie IP Adressen,..) - Auto Discovery - Rollenkonzept - Eine wesentliche Aufgabe stellt dabei natürlich die graphische Darstellung der zu überwachenden Variablen dar, da sich dabei sehr einfach Trends ableiten lassen. Open Source Netzwerk Management Software Verschiedenste Open Source Produkte existieren derzeit, die beinahe den vollen Funktionsumfang von kommerziellen Produkten bieten. Teilweise müssen unterschiedliche Produkte kombiniert werden, um im Gesamtpaket den gewünschten Funktionsumfang zu erzielen. Zwei Open Source Produkte zur graphischen Darstellung von SNMP Daten sind der Multi Router Traffic Grapher MRTG II und seine Weiterentwicklung das Round Roubin Tool RRD Tool. Im Rahmen dieser Lehrveranstaltung soll MRTG II dazu verwendet werden SNMP Daten eines Testnetzwerks graphisch darzustellen. Seite 1 von 6
Multi Router Traffic Grapher - MRTG-2 Der MRTG wird weltweit in vielen Firmen verwendet, um Langzeitstatistiken zu erstellen. Er ist durchgehend in C und PERL programmiert und visualiert Linkauslastungen im.png Format wobei die gemessen Werte per Default auf fünf Minuten Intervalle gemittelt werden. Zur Installation benötigt MRTG die Unix Libaries gd, zlib und libpng [10]:./configure --prefix=/usr/local/mrtg-2 \ --with-gd=/usr/local/src/gd \ --with-z=/usr/local/src/zlib \ --with-png=/usr/local/src/libpng make make install MRTG bietet zur Konfiguration eine eigene Programmiersprache an. Dabei können neben SNMP bezogenen Einstellungen vor allem Parameter gesetzt werden, die das Erscheinungsbild der Statistiken betreffen. Mit dem cfgmaker stellt MRTG ein Tool bereit, dass automatisch für einen oder mehrere Netzwerkknoten ein MRTG Config- File erstellt: cfgmaker --global 'WorkDir: /home/httpd/mrtg' \ --global 'Options[_]: bits,growright' \ --output /home/mrtg/cfg/mrtg.cfg \ community@router.abc.xyz Dadurch entsteht im angegebenen Verzeichnis das File mrtg.cfg. Wird MRTG nun mit der Angabe dieses Files gestartet, werden automatisch die eingetragenen SNMP Parameter abgefragt und visualisiert. /usr/local/mrtg-2/bin/mrtg /home/mrtg/cfg/mrtg.cfg Mit Hilfe der MRTG Programmiersprache und HTML Kenntnissen kann die Ausgabe an jedes Firmennetzwerk angepasst werden.[10] Seite 2 von 6
Graphische Ausgabe Eingebettet in ein schlichtes.html Dokument stellt MRTG vier Graphen über die Auslastung am Link bereit. Der erste stellt die Auslastung des aktuellen Tages gemittelt über fünf Minuten dar, für die Auslastung über die Woche wird über 30 Minuten gemittelt. Beim Monatsgraphen wurden zwei Stunden und beim Jahresgraphen Tages Intervalle gewählt. MRTG Tagesgraph MRTG Wochengraph MRTG Monatsgraph Dabei stellt die grüne Fläche die verwendete Bandbreite in KBit/s für eingehende Daten und die blaue Linie die für ausgehenden Verkehr genutzte Bandbreite am Interface dar. Seite 3 von 6
MRTG - Log File MRTG-2 speichert zusätzlich alle bereits gemittelten Werte in einem Log File, das sich aus zwei wesentlichen Bestandteilen zusammensetzt: Die erste Zeile: (Bsp.:) 986114570 2386554538 2240616107 timestamp incoming bytes outgoing bytes MRTG Log File I Das restliche File: (Bsp.:) max. incoming max. outgoing transfer 986103600 34 71 41 72 timestamp av. incoming transfer av. outgoing transfer MRTG Log File II Dabei entspricht der Timestamp der Anzahl der Sekunden seit Mitternacht 1.Jänner 1970 GMT und kann mit Hilfe von PERL einfach in eine lesbare Form gebracht werden [11]: bash-2.03$ perl -e 'print scalar localtime(986103600),"\n"' Sun Apr 1 07:40:00 2001 Dieser Vorgang soll durch ein PERL Script automatisiert werden: FILE: convert.pl #!/usr/local/bin/perl open F,"<$ARGV[0]" die "could not open file for reading -> exit"; open O,">$ARGV[0].chg" die "could not open file for writing ->"; while (<F>) { @_=split; $_[0]=localtime($_[0]); foreach (@_) { print O "$_ "; } print O "\n"; Seite 4 von 6
} Ein Beispiel: Orginalfile: FILENAME 986106000 444 5650 456 6215 986105700 424 5576 456 5850 986105400 499 4870 575 5850 986105100 433 3604 575 4122 986104800 884 22586 1311 37405 986104500 676 17746 1311 37405 986104200 2627 8569 4490 13048 986103900 2089 12355 4490 13048 986103600 266 5291 278 11833 Aufruf:./convert.pl <FILENAME> => FILENAME.chg Neues File: FILENAME.chg... Sun Apr 1 08:20:00 2001 444 5650 456 6215 Sun Apr 1 08:15:00 2001 424 5576 456 5850 Sun Apr 1 08:10:00 2001 499 4870 575 5850 Sun Apr 1 08:05:00 2001 433 3604 575 4122 Sun Apr 1 08:00:00 2001 884 22586 1311 37405 Sun Apr 1 07:55:00 2001 676 17746 1311 37405 Sun Apr 1 07:50:00 2001 2627 8569 4490 13048 Sun Apr 1 07:45:00 2001 2089 12355 4490 13048 Sun Apr 1 07:40:00 2001 266 5291 278 11833... Aufgrund der geringen Auflösung (5 Minuten) wird an der Fachhochschule MRTG-2 aber nicht für QoS relevante Bereiche eingesetzt. Es wird vielmehr die übersichtliche und durch HTML flexible Darstellung zur automatischen Berichtsgenerierung genutzt. MRTG-2 ist derart programmiert, dass eine fixe Anzahl von Elementen in den Logfiles gehalten wird. Das heißt, dass Einträge ab einem gewissen Alter zusammengefasst, und nur der Mittelwert, der Maximalwert und der Minimalwert für einen bestimmten Zeitraum erhalten bleiben. Um aber die Linkauslastungen beispielsweise über eine Woche verarbeiten zu können, ist diese Art der Speicherung unbrauchbar. Seite 5 von 6
Aufgabenstellung: Es soll für den Router (ähnlich dem Beispiel): - die Linkauslastung für die aktiven Ethernet Interfaces - die CPU und Speicher Auslastung - die jeweiligen IfErrors und ifdiscards und vom Server - die CPU und Speicher Auslastung - Anzahl aktiver Prozesse - Festplattenbelegung mit MRTG aufgenommen werden. Durchführung: MRTG kann wahlweise unter Windows oder Linux installiert werden. Eine Windowsversion von Perl kann bei Active State heruntergeladen werden. MRTG soll als Deamon gestartet werden und die LOG, PNG und HTML Files in unterschiedlichen Verzeichnissen gespeichert werden. Um die einzelnen relevanten SNMP Managed Objects genau identifizieren zu können, kann SNMPC eingesetzt werden. Wichtige URLs: MRTG Homepage: NAGIOS/MRTG http://oss.oetiker.ch/mrtg/ http://nagios.sourceforge.net/docs/3_0/mrtggraphs.html Seite 6 von 6