Performance überwachen mit MRTG

Unter Kontrolle

Die graphische Darstellung von Server-Leistungsdaten hilft dem Admin, schnell einen Überblick Performance-Engpässe und andere Ausnahmesituationen zu bekommen. Das freie Paket MRTG sammelt solche Daten über SNMP und macht daraus übersichtliche Diagramme.
Matthew D. Sacks

In vielen Fällen ist es für Linux-Administratoren nützlich, Leistungsdaten wie Plattenplatz, CPU- und Speicherauslastung zu protokollieren. Sind die Daten als Diagramme visualisiert, hilft oft schon ein kurzer Blick dabei weiter, Probleme zu finden. MRTG (Multi-Router Traffic Grapher) hilft dabei, solche Daten zu sammeln und sie grafisch darzustellen. Es ist ein Open-Source-Tool, das Daten von SNMP-basierter Netzwerk-Hardware sammelt und visualisiert. Einige kommerzielle Programme wie HP Openview und IBM Tivoli, aber auch andere freie Tools wie Cacti und Zenoss erfüllen einen ähnlichen Zweck. Meiner Meinung nach ist aber MRTG die beste Lösung für diesen Zweck.

Los geht's

MRTG und SNMP einzurichten, ist nichts für Menschen, die sich leicht abschrecken lassen, vor allem, wenn man die Paket selber aus dem Quellcode kompilieren will. Schauen Sie am besten zuerst nach, ob das Paketmanagement Ihrer Linux-Distribution schon fertige MRTG-Pakete enthält. Wenn nicht, finden Sie Quellcode-Pakete auf der Website von MRTG-Autor Tobi Oetiker [1]. Die Installation von MRTG erfordert einige Pakete, die der Kasten "MRTG-Basis" auflistet.

Dieser Artikel setzt ein gewisses Grundwissen im Umgang mit dem SNMP-Protokoll voraus. Fehlt ihnen das (noch), finden Sie im Internet eine ganze Reihe von Tutorials und Spezifikationen, die Ihnen weiterhelfen. Unter [2] finden Sie einige Hinweise, wie Sie SNMP auf einem Linux-System zum Laufen bekommen.

MRTG-Basis

  • GCC: Zum Übersetzen des Pakets brauchen Sie den GNU-Compiler GCC, der Bestandteil jeder Distribution ist, aber eventuell nachinstalliert werden muss.
  • Perl: Große Teile von MRTG sind in der Programmiersprache Perl geschrieben. Überprüfen Sie mit »perl -v« , ob eine aktuelle Version installiert ist. MRTG setzt mindestens Perl 5.005 voraus. Wer SNMPv3 verwenden will, braucht mindestens Perl 5.8.
  • GD: Eine weit verbreitete Grafikbibliothek, geschrieben von Thomas Boutell. Seit Version 1.3 erzeugt GD nur noch Bilder im PNG-Format, weil das bis dahin implementierte GIF-Format durch das LZW-Patent der Firma Unisys bedroht war. MRTG arbeitet aber mit alten und neuen GD-Versionen zusammen.
  • libpng: Wird von GD benötigt, um PNG-Bilder auszugeben.
  • zlib: Voraussetzung für die Komprimierung von PNG.

Entpacken Sie das MRTG-Paket in einem temporären Verzeichnis und geben Sie im Configure-Schritt als Präfix das Verzeichnis an, in dem Sie MRTG später installieren:

./configure --prefix=/usr/local/mrtg-2.15.2

Ein symbolischer Link auf die aktuelle Version im Verzeichnis »/usr/local« ermöglicht einfache Upgrades und Tests neuer MRTG-Releases:

ln -s /usr/local/mrtg-2.15.2 /usr/local/↩
mrtg

Fehlt eines der vorausgesetzten Pakete, gibt das Configure-Skript eine entsprechende Meldung aus. Ist es erfolgreich durchgelaufen, startet »make« die Übersetzung. Der Befehl »make install« , als Administrator ausgeführt, kopiert die ausführbaren Dateien an ihren Bestimmungsort.

Konfiguration

Im Beispielszenario dieses Artikels kommen zwei Hosts vor: »tux« ist der zu überwachende Server, »grapher« der Rechner, auf dem MRTG läuft. MRTG-Konfigurationsdateien von Hand zu editieren, ist ziemlich mühsam. Das Paket enthält aber ein Skript namens »cfgmaker« , das die Konfiguration erleichtert. Damit können sie relativ leicht die nötigen Einstellungen in »mrtg.conf« vornehmen, um einfache Graphen zu erstellen. Tabelle 1 zeigt die grundlegenden Optionen des Cfgmaker-Utility. Bevor Sie das Skript ausführen, legen Sie ein Verzeichnis an, in das die Konfigurationsdateien wandern, zum Beispiel »/usr/local/mrtg/cfg« .

Tabelle 1

<C>cfgmaker<C>-Optionen

Option

Beschreibung

community Legt den SNMP-Community-Namen fest.
global Globale Einstellungen für alle konfigurierten Hosts.
Workdir Verzeichnis, in dem MRTG HTML- und Grafikdateien speichert.
output Legt den Ort der MRTG-Konfiguration fest. Hängen Sie Hostnamen oder IP-Adressen abzufragender Server ans Ende des Cfgmaker-Skripts an, durch Leerzeichen getrennt. Im Beispielfall gibt es nur den einen Host »tux« .

Das Cfgmaker-Skript führen Sie dann folgendermaßen aus:

/usr/local/mrtg/bin/cfgmaker --community=↩
public --global Options[_]:growright,avgpeak,↩
printrouter, --global Workdir:/usr/local/↩
apache2/htdocs --output=/usr/local/mrtg/cfg/↩
mrtg2.cfg tux

Wie bereits angesprochen, erhebt MRTG seine Daten über SNMP. Dieses Protokoll benutzt ein hierarchisch gegliedertes Adressierungsschema namens Managemen Information Base (MIB). Das folgende Beispiel geht davon aus, dass die UCD-SNMP-MIB [3] geladen ist und sich die interessanten Leistungsdaten über diese MIB-Definition abrufen lassen. Am besten testen Sie das, bevor Sie mit MRTG starten, um diese Fehlerquelle schon im Vorfeld auszuschließen.

Eine einfache Möglichkeit dafür stellt das Tool »snmpwalk« dar. Lassen Sie es auf den zu überwachenden Host los:

snmpwalk -v1 -c public ↩
 ssCpuRawUser

Dieser Befehl fragt die CPU-Usertime des betreffenden Servers ab. Schlägt das Skript fehl, überprüfen Sie, ob der SNMP-Daemon auf dem Server läuft, ob die Syntax des SNMP-Aufrufs korrekt ist und ob die UCD-SNMP-MIB vorhanden ist und vom SNMP-Daemon gefunden wird.

Kommentare

Suche

ADMIN auf Twitter, Facebook, Xing

Auf Twitter folgen   

Unsere Partner:

hackerboard.deUnixboard