MRTG Monitoring
Windows hat schon sehr lange Performance Counter, um den Status und die Belastung eines Systems zu müssen und auch zu analysieren. Nur fehlte lange Zeit eine entsprechende Auswertesoftware um die Daten auch langfristig zu visualisieren. Zwar gibt es seit Windows 2000 endlich auch den Dienst "Performance Monitor", um unabhängig von einer Anmeldung die gewünschten Daten in eine Datei zu schreiben, aber diese Funktion wird kaum eingesetzt.
Windows Administratoren sollten vielleicht einen Blick auf das kommerzielle Produkt PRTG werfen, was deutlich einfacher (per GUI) zu verwalten ist, viele Sensoren enthält und bis zu 10 Tests "kostenfrei" ist.
Aber schon seit vielen Jahren ist SNMP der de facto-Standard für das Auslesen von Systemparametern von TCP/IP Endgeräten. Dazu zählen Router, Switches aber natürlich auch Server. In diesem Umfeld hat sich MRTG entwickelt.
Schritt für Schritt Installation
Wenn sie einfach nur MRTG schnell installieren wollen, dann ist diese Schritt für Schritt Anleitung das richtige für Sie.
30-seitige Installationsanleitung von MRTG auf Windows 200x mit Perl und 14all.pl |
Die folgenden Abhandlungen beschreiben etwas mehr die Hintergründe, die Funktionsweise und wie sie MRTG erweitern können.
Was ist MRTG ?
MRTG ist eine kostenfreie Software (Perl), um numerische Werte grafisch zu visualisieren. Normalerweise liest MRTG über das Protokoll SNMP von Netzwerkgeräte die übertragenen Bytes pro Netzwerkkarte aus und erstellt daraus nette Bilder. Diese können über einen Webserver veröffentlicht werden. Mit sehr wenig Aufwand kann damit z.B.: die Auslastung einer WAN-Verbindung angezeigt werden:
Hier ist klar zu sehen, dass von Montag auf Dienstag ein etwas größerer Download die 64kBit Leitung sichtlich belastet hat. Wer oder Was über Welches Protokoll übertragen wurde ist allerdings nicht ersichtlich. (Siehe Produkte: NTOP)
Funktionsweise von MRTG
Die Funktion ist schnell erklärt. Sie müssen MRTG regelmäßig (z.B. alle 5 Min) starten oder gleich als Daemon laufen lassen. MRTG liest eine Konfigurationsdatei ein und holt sich von dort die Informationen, welche Systeme (SNMP-Adressen) er abfragen und auswerten soll. Die Daten werden in eine Datenbank geschrieben und anhand der Konfigurationsdatei wird eine HTML-Datei mit den entsprechenden Bildern abgespeichert. Diese Verzeichnis müssen Sie nur noch in ihrem Webserver freigeben und schon können Sie über jeden Browser die Daten abfragen. Eine Anmeldung und Verschlüsselung ist nur eine Einstellung im Webserver. Die Seiten selbst sind 100% statisch.
Wer viele Daten sammelt muss sich bald fragen lassen, wann die Datenbank überläuft oder die Festplatte voll ist. Der besondere Kniff von MRTG ist, dass die Daten nach einiger Zeit immer konsolidiert werden. ältere Daten werden dabei zusammengefasst. Durch diesen Kniff wird die Datenbank niemals größer. Allerdings auf Kosten der Genauigkeit älterer Daten.
Wenn Sie MRTG als Daemon laufen lassen wollten, dann müssen Sie in der Konfigurationsdatei folgende Zeilen ergänzen:
RunAsDaemon: yes Interval: 5
Als Daemon können Sie natürlich pro Daemon nur eine Konfigurationsdatei angeben. Mehrere Konfigurationsdateien bedeuten entsprechende mehrere Daemons. Oder sie fassen alle Konfigurationsdateien zu einer Datei zusammen.
Wenn MRTG als Daemon läuft, sollten Sie natürlich die Funktion überwachen. Über den Parameter "--logging=dateiname" können Sie MRTG anweisen, seine Tätigkeit in diese Protokolldatei zu schreiben, die sie mit TAIL MOM2005 (Überwacht so z.B.: aucc IISLogs) oder anderen Tools überwachen können. für Windows Umgebungen besonders interessant ist natürlich die Funktion über "--logging=eventlog" die Meldungen in das Windows Eventlog zu schreiben und entsprechend mit MOM2005 oder anderen Produkten zu überwachen.
MRTG und WMI
MRTG kann aber nicht nur SNMP-Anfragen absetzen, sondern auch andere Programme (z.B. PING etc.) starten und die Bildschirmausgabe dieser Programme auswerten. So können Sie mit MRTG auch fremde Testroutinen einbinden, z.B. per VBScript eine Abfrage eines Performance Counters oder anderer Datenquellen, die vielleicht nicht SNMP-tauglich sind. Wie wäre es z.B. mit einem temperaturabhängigem Widerstand am Joystick-Anschluss ihres PCs um die Raumtemperatur zu müssen ?
Auch bei Microsoft gibt es als Sampleanwendung eine WMI-Abfrage mit MRTG. Microsoft demonstriert hier, wie MRTG seinerseits ein VBScript aufruft und diese per WMI entsprechende Performancecounter ausliest und an MRTG über Stdout zurück übergibt:
- Microsoft Musterwebseite
http://snmpboy.msft.net - MRTG Beispielkonfiguration
http://snmpboy.msft.net/pub/mrtg.cfg.txt - VBScripte, die vom dem MRTG Template verwendet werden
http://snmpboy.msft.net/VBScripts/httpUsers.vbs.txt
http://snmpboy.msft.net/VBScripts/lanPackets.vbs.txt
http://snmpboy.msft.net/VBScripts/lanTraffic.vbs.txt
http://snmpboy.msft.net/VBScripts/processes.vbs.txt
http://snmpboy.msft.net/VBScripts/procLoad.vbs.txt
http://snmpboy.msft.net/VBScripts/usedDisk.vbs.txt
http://snmpboy.msft.net/VBScripts/usedMem.vbs.txt - Alle Dateien vom Stand 5. 10.2004
mrtg-ms.zip
Beachten Sie aber, dass bei dieser Lösung das Skript alle 5 Minuten per AT gestartet werden muss und die vielen Skripte und Generierung von Bildern entsprechend lange dauert und das System belastet. Werden entfernte Performance Counter ausgelesen, muss das Skript die erforderlichen Rechte haben.
MRTG und RRDTOOL = besser skalieren
Was auf den ersten Blick so einfach klingt ist aber nicht ganz ohne Risiko. Wenn Sie viele Werte ermitteln, dann belastet MRTG das System, da alle 5 Minuten Textdateien als Datenbank gelesen und geschrieben werden und sehr viele GIF/PNG-Bilder erzeugt werden. Und das obwohl diese vielleicht diesmal niemand benötigt. Damit gibt es zwei Ansätze, die Arbeitsweise von MRTG zu verbessern:
- Effektivere Datenbank
Dies löst MRTG dadurch, indem auf die eingebaute Datenbank verzichtet wird und das Programm RRDTOOL eingebettet wird. RRDTOOL schreibt binäre Daten und ist kompiliert. MRTG unterstützt RRDTOOL von Hause aus. Dies muss nur aktiviert werden und die bestehenden Daten werden sogar übernommen. - Bilder nur bei Bedarf erzeugen
Die zweite Option bedeutet, dass die Bilder erst beim Abruf erzeugt werden. Hierzu muss jedoch ein Webserver eingesetzt werden, der auf dem Server das entsprechende Programm zum erzeugen der Bilder startet. Auch hierzu ist RRDTOOL der beste Weg.
Sie sollten also schon sehr früh die Datenbank "RRDTOOL" verwenden, um die gesammelten Daten schneller zu verarbeiten und ebenfalls auf RRDTOOL setzen, damit ihr Webserver die Bilder einfach bei Bedarf ermittelt.
Für die Ausgabe von solchen Daten haben viele andere Personen eigene Entwicklungen zu MRTG beigesteuert. 14all.pl ist nur exemplarisch hier zu nennen. Am besten Sie surfen etwas auf der MRTG-Seite oder im Download unter "Contrib". Etwas knifflig kann mit dem IIS6 natürlich die Freischaltung von PERL als CGI-Skript Anwendung sein kann.
Durch die Trennung der Funktion "Daten Sammeln und speichern" und der Funktion "Daten aufbereiten" wird natürlich auch die Laufzeit des Sammelprozesses stark verkürzt. MRTG in Verbindung mit RRDTOOL könnte natürlich auch direkt wieder Bilder erzeugen und damit die Einbindung als CGI-Skript ersparen. Aber das würde wieder mehr Belastung bedeuten. Es ist daher aus Performanceaspekten besser, die Bilder erst denn zu erzeugen, wenn diese auch benötigt werden.
Windows mit SNMP
Einem Exchange Administrator kann es natürlich nicht ausreichen, nur die Netzwerkauslastung zu sehen. So stellt sich die Frage ob mit dem gleichen Programm nicht auch interessante Windows und Exchange Parameter überwacht werden könnten. Einige sind ja auf Exchange überwachen und kontrollieren beschrieben.
Und tatsächlich ist es möglich, die vielen Windows und Exchange Performance Counter auch per SNMP abzufragen. Siehe dazu auch Exchange und SNMP. Damit kann MRTG dann z.B. die Warteschlangen von Exchange auch grafisch aufbereiten.
Interessant sind aber auch andere Parameter, die für MRTG interessant sein können, z.B.: die Anzahl der aktiven Benutzer oder die CPU-Auslastung.
RRDTOOL direkt
Aber die offene Arbeitsweise RRDTOOL erlaubt aber noch ganz andere Dinge. RRDTOOL ist ein universelles Programm, welches je nach übergebenen Parametern entweder die Daten in eine Datenbank schreibt, oder anhand der Datenbank entsprechende Grafiken erzeugt. Es steht nirgends geschrieben, dass MRTG das einzige Programm sein darf, welches die Datenbank und Grafikeigenschaften von RRDTOOL verwenden darf. Und damit fällt auch die Beschränkung auf SNMP und MRTG. Sie können komplett eigene Programme schreiben, die Daten z.B. per WMI oder andere Quellen auslesen und mittels RRDTOOL einfach in eine Datenbank schreiben.
Ein Beispielcode in VBScript zur Protokollierung von CPU, Festplatten und Speicher finden Sie hier:
2kb
perf2rrd.zip
VBScript. Bitte auspacken und im Quellcode den Servername und den Pfad zu
rrdtool.exe anpassen.
Die Auswertung kann dann wieder über bestehende Programme, CGI-Skripte etc. erfolgen, die einfach RRDTOOL aufrufen, um aus den Daten ein Bild zu machen. RRDTool.
Weitere Links
-
MRTG Hauptseite
https://www.oetiker.ch/en/oss/projects/mrtg-en-us/ - RRDTool
-
SNMP Grundlagen
Die ersten Schritte -
SNMP Intern
Details zu SNMP unter Windows und die Integration in Perfmon - SNMP mit Windows
- Überwachung von Exchange
- MRTG Monitoring
- Active Directory Replication Status Tool
-
PRTG
Einfache SNMP-Überwachung für Windows analog zu MRTG -
SNMP/MRTG mit VBScript etc.
http://www.securityfocus.com/infocus/1721 -
MRTG-Central
http://www.geocities.com/aisvc/howto/howto.html -
Laufzeiten visualisieren
https://oss.oetiker.ch/smokeping/
https://www.oetiker.ch/en/oss/projects/smokeping-en-us/ -
RRDTool Add-on
https://oss.oetiker.ch/rrdtool/ - Monitoring IIS with Logparser and the RRDtool
http://geekswithblogs.net/woodenshoe/archive/2005/09/17/54194.aspx - C++ Implementation als Dienst (Freeware mit Source)
http://guilmard.free.fr/index.php?page=snmpgraph§ion=telecharger&lg=en - D-Trend
Windows Programm, um alles per VBScript, ASP etc. zu bauen
http://home.new.rr.com/edev/DTrend/index.htm - 14all-CGI Auswerteskript mit RRDTOOL
http://my14all.sourceforge.net/
http://www.geocities.com/paulcwilliamson/mrtg/14allsetup.html - PHP Webfrontend zu RRDTOOL
http://www.raxnet.net/products/cacti/ - Monitoring Windows Boxes with PerfMon and mrtg
http://home.att.net/~hemantpatel/UsingMRTGwithWindowsPerfMon.pdf -
http://www.wtcs.org/snmp4tpc/rrdtool.htm
Information von SNMP4PC zu MRTG -
http://mrtgconfig.sourceforge.net
Webbasierter Konfigurationsgenerator -
http://www.somix.com/support/mrtg_repository.php#
Jede Menge Beispiel Config-Dateien zu MRTG -
http://www.somix.com/support/mib_resources.php
Dazugehörige MIBS -
http://www.leonid.maks.net/mrtg.shtml
Verschiedene nützliche Scripte für das Monitoring von Windows Servern mit MRTG. - Wasserstandsmessung als Beispiel über die Aussagekraft von
Monitoring
http://www.willy.com/Scripps/data/Tide/tide.html
Am Beispiel des Wasserstandes am Pier ist gut zu erkennen, wie kurzzeitwerte sinnvoll zu Langzeitwerten zusammengefasst werden können und ab wann Messwerte unbrauchbar werden. Täglich sieht man genaue Daten aber auch Fehler, die in der Wochenansicht nicht mehr auffallen und in der Monatsansicht lassen sich die Mondphasen an der Nipp und Springflut erkennen. Die jährliche Statistik ist dann aber nutzlos. - MRTG für Windows als einfache AdHoc Überwachung
http://leonidvm.chat.ru -
MRTG, NTOP, Wireshark
http://www.openxtra.com/downloads/ - FireDaemon
http://www.firedaemon.com/
http://www.firedaemon.com/HOWTO/MRTG/
Bis zur Version 1.6 als Freeware zum Einrichten von beliebigen Programmen als Dienst. Damit können Sie ein Batch oder VBSCript permanent laufen lassen statt immer wieder zu starten. Ab Version 1.7 für 25US-$ pro Server im akzeptablen Bereich
MRTG mit Firedaemon als Dienst laufen lassen - SNMP auf Cisco
http://www.netcraftsmen.net/welcher/papers/snmprouter.html -
http://collectd.org
Open Source Datensammler für Unix -
Monitoring Servers
http://therightstuff.de/2007/04/06/Monitoring-Servers.aspx -
MRTG mit der FRITZ! Box verwenden
http://www.juerging.net/projekte/FRITZ! Box-MRTG/
http://www.schraegstrichpunkt.de/FRITZ! Box-trafficauswertungen-mit-mrtg-unter-windows/
http://tuxpool.blogspot.com/search/label/UPnP Blog des Autors zu UPNP