Good to Know Database

Raspbian Wheezy: MRTG als Daemon installieren


MRTG steht für Multi Router Traffic Grapher und ist ein Programm mit welchem Messwerte von Netzwerkkomponenten oder anderen Quellen grafisch dargestellt und ausgewertet werden können. Zur grafischen Darstellung generiert MRTG HTML-Seiten welche Sie mit einem Internet Browser betrachten können. Die Messwerte sammelt das in Perl geschriebene Programm über das Simple Network Management Protocol (SNMP) oder über eigene Shell-Skripte.

In der folgenden Anleitung wird beschrieben, wie Sie auf Ihrem Raspberry Pi unter Raspbian MRTG installieren und als Daemon einrichten. Als Grundlage wurde hier das Raspbian Image vom 25.09.2013 (2013-09-25-wheezy-raspbian.zip) verwendet.

Bevor Sie mit der Installation beginnen, sollten Sie die lokale Paketdatenbank aktualisieren.

pi@raspberrypi ~ $ sudo apt-get update

Mit dem folgenden Befehl installieren Sie jetzt MRTG und den Webserver Apache2.

pi@raspberrypi ~ $ sudo apt-get install mrtg apache2

Während der Installation sollten Sie die folgende Frage angezeigt bekommen. Beantworten Sie diese mit Ja.

Falls Ihre MRTG-Konfigurationsdatei von anderen Benutzern als dem Benutzer, der MRTG ausführt (standardmäßig »root«) lesbar ist, so
kann dies ein Sicherheitsrisiko darstellen, weil diese Datei SNMP-Community-Namen enthält.

Es wird empfohlen, dass der Benutzer »root« Eigentümer dieser Datei ist und ausschließlich er Lesezugriff bekommt, es sei denn, Sie
haben besondere Gründe dagegen (z. B. weil Programme von Drittanbietern diese Datei lesen müssen, wie etwa »mrtg-rrd«).

Soll der Benutzer »root« Eigentümer der Datei /etc/mrtg.cfg sein und ausschließlich er diese Datei lesen können?

Standardmäßig wird bei der Installation von MRTG die Datei /etc/cron.d/mrtg mit dem folgenden Inhalt erstellt.

*/5 *   * * *   root    if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ] && [ -d "$(grep '^[[:space:]]*[^#]*[[:space:]]*WorkDir' /etc/mrtg.cfg | awk '{ print $NF }')" ]; then mkdir -p /var/log/mrtg ; env LANG=C /usr/bin/mrtg /etc/mrtg.cfg 2>&1 | tee -a /var/log/mrtg/mrtg.log ; fi

Durch diesen Eintrag in der Crontab wird MRTG alle 5 Minuten ausgeführt. Da in dieser Anleitung MRTG als Daemon konfiguriert werden soll, löschen Sie die /etc/cron.d/mrtg.

pi@raspberrypi ~ $ sudo rm -f /etc/cron.d/mrtg

Beenden Sie jetzt noch alle eventuell laufenden Instanzen von MRTG.

pi@raspberrypi ~ $ sudo killall mrtg

Bevor Sie MRTG jedoch als Daemon einrichten, sollten Sie die Konfigurationsdatei anpassen. Öffnen Sie dazu die /etc/mrtg.cfg mit einem Editor.

pi@raspberrypi ~ $ sudo vi /etc/mrtg.cfg

Standardmäßig sollte die Konfigurationsdatei nach der Installation mit den folgenden Zeilen beginnen.

######################################################################
# Multi Router Traffic Grapher -- Configuration File
######################################################################

# Global configuration
WorkDir: /var/www/mrtg
WriteExpires: Yes

Fügen Sie unter den globalen Einstellungen zuerst die folgende zusätzliche Option ein. Dadurch wird MRTG als Daemon ausgeführt.

RunAsDaemon: Yes

Des Weiteren wird hier noch die folgende globale Option eingefügt. Durch diese Zeile wird festgelegt, dass die Grafiken über die Zeit hinweg von rechts aufgebaut werden (growright). Die Option nobanner sorgt dafür, dass der MRTG-Banner nicht angezeigt wird.

Options[_]: growright, nobanner

Die folgenden Zeilen welche in der Standardkonfiguration enthalten sind können Sie entfernen. Die Option Title definiert die Überschrift für die HTML-Seiten und Graphen der überwachten Geräte und soll in diesem Fall später individuell für jeden Graphen definiert werden. Die darauf folgenden Zeilen sind auskommentiert und dienen als Beispiel für eigenen Gerätekonfigurationen.

Title[^]: Traffic Analysis for

# 128K leased line
# ----------------
#Title[leased]: a 128K leased line
#PageTop[leased]: <H1>Our 128K link to the outside world</H1>
#Target[leased]: 1:public@router.localnet
#MaxBytes[leased]: 16000

An dieser Stelle sollten Sie jetzt eigentlich die MRTG-Konfiguration um die Einstellungen für die zu überwachenden Geräte erweitern. Da dieser Teil der Konfiguration aber vom jeweiligen Gerät abhängt möchte ich an dieser Stelle noch gar nicht darauf eingehen. Ein paar Beispiele für solche Gerätekonfigurationen finden Sie am Ende dieser Anleitung in den weiterführenden Tutorials. Da an dieser Stelle keine Geräte konfiguriert werden, wird später der Befehl indexmaker einen Fehler melden und beim abschließenden Test wird das MRTG-Webinterface nichts anzeigen. Sobald Sie aber wie in den weiterführenden Tutorials eine oder mehrere Messwertquellen definiert haben, zeigt das MRTG-Webinterface auch die entsprechenden Daten an.

Wie in der Konfigurationsdatei festgelegt, sollen die grafischen Darstellungen im Verzeichnis /var/www/mrtg abgespeichert werden. Normalerweise existiert dieses Verzeichnis noch nicht. Daher speichern Sie jetzt die Konfigurationsdatei und erstellen das Verzeichnis /var/www/mrtg mit dem folgenden Befehl.

pi@raspberrypi ~ $ sudo mkdir /var/www/mrtg

Nachdem Sie das Verzeichnis erstellt haben, sollten Sie die Index-Datei unter /var/www/mrtg erstellen.

pi@raspberrypi ~ $ sudo su -c 'indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html'

Wie bereits angesprochen wird dieser Befehl aufgrund der fehlenden Gerätekonfiguration die folgende Fehlermeldung liefern.

ERROR: did not find any matching data in cfg file

Nachdem Sie die grundlegende Konfiguration von MRTG abgeschlossen haben, können Sie jetzt das benötigte Init-Skript für den MRTG-Daemon erstellen.

pi@raspberrypi ~ $ sudo vi /etc/init.d/mrtg

Fügen Sie in diese Datei die folgenden Zeilen ein. Wenn nötig passen Sie die Parameter beim Aufruf von mrtg an Ihre Anforderungen an.

#!/bin/bash
# /etc/init.d/mrtg

#
# Creation:    28.10.2013
# Last Update: 28.10.2013
#
# Written by Georg Kainzbauer (http://www.gtkdb.de)
#

### BEGIN INIT INFO
# Provides:          MRTG
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: MRTG
# Description:       MRTG - The Multi Router Traffic Grapher
### END INIT INFO

CONFIGFILE=/etc/mrtg.cfg
LOGFILE=/var/log/mrtg/mrtg.log
PIDFILE=/run/mrtg.pid

start()
{
  echo "Starting MRTG..."
  env LANG=C /usr/bin/mrtg ${CONFIGFILE} --user=root --logging ${LOGFILE} --daemon --pid-file ${PIDFILE}
}

stop()
{
  echo "Stopping MRTG..."
  kill -9 $(cat ${PIDFILE}) >/dev/null 2>&1
  rm -f ${PIDFILE}
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    ;;
esac

exit 0

Nachdem Sie das Init-Skript angelegt haben, müssen Sie die Zugriffsrechte des Skripts anpassen.

pi@raspberrypi ~ $ sudo chmod 0755 /etc/init.d/mrtg

Über den nächsten Befehl wird das Init-Skript in den jeweiligen Runlevel-Verzeichnissen verlinkt.

pi@raspberrypi ~ $ sudo update-rc.d mrtg defaults

Die korrekte Verlinkung des Init-Skripts können Sie wie folgt überprüfen.

pi@raspberrypi ~ $ find /etc/rc* -name *mrtg
/etc/rc0.d/K01mrtg
/etc/rc1.d/K01mrtg
/etc/rc2.d/S04mrtg
/etc/rc3.d/S04mrtg
/etc/rc4.d/S04mrtg
/etc/rc5.d/S04mrtg
/etc/rc6.d/K01mrtg

Starten Sie jetzt mit dem folgenden Befehl den MRTG-Daemon.

pi@raspberrypi ~ $ sudo /etc/init.d/mrtg start

Nachdem Sie den MRTG-Daemon gestartet haben, können Sie in einem Internet-Browser die Hauptseite von MRTG öffnen. Ersetzen Sie hierbei raspberrypi.home.lan durch den Domainnamen Ihres Raspberry Pi's oder durch die entsprechende IP-Adresse.

http://raspberrypi.home.lan/mrtg/

Da bis jetzt in der MRTG-Konfigurationsdatei /etc/mrtg.cfg noch keine Quellen definiert wurden, werden Sie auf dem Webinterface noch keine Daten angezeigt bekommen. In den weiterführenden Tutorials finden Sie Beispielkonfigurationen für die AVM FRITZ!Box 7390, für die AVM FRITZ!Box 7490 und für den 24 Port Ethernet-Switch LCS-GS9428 von Longshine.

Weiterführende Tutorials

Raspbian Wheezy: Warnungen beim Ausführen von mrtg und indexmaker beheben
Raspbian Wheezy: Longshine LCS-GS9428 mit MRTG überwachen
Raspbian Wheezy: AVM FRITZ!Box 7390 mit MRTG überwachen
Raspbian Wheezy: AVM FRITZ!Box 7490 mit MRTG überwachen


Dieser Eintrag wurde am 23.12.2013 erstellt und zuletzt am 25.09.2016 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_36_2455.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer