ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.

PHP-Frontend für vnStat

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

vnStat PHP frontend {en} bereitet die vom Netzwerkmonitor vnStat gesammelten Daten auf und liefert als Ergebnis übersichtliche Berichte. Ein Beispiel:

./vnstat_sample_report.jpg

Voraussetzungen

Das Programm setzt einen Webserver mit PHP-Unterstützung (inklusive der Bibliothek php5-gd) voraus. Weitere Informationen zur Installation finden sich in den Artikeln:

Darüber hinaus muss das Programm installiert [1] sein, das die Daten zum Netzwerkverkehr liefert:

  • vnstat (universe)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install vnstat 

sudo aptitude install vnstat 

Installation

Das Archiv vnstat_php_frontend-VERSION.tar.gz kann von der Projektseite {dl} heruntergeladen werden. Anschließend muss das Paket mit Root-Rechten [2] nach /usr/share/vnstat-php entpackt werden [3].

Hinweis!

Fremdsoftware kann das System gefährden.

Konfiguration

Da neben der eigentlichen Konfiguration des Frontends auch eine Apache-Konfiguration benötigt wird, sollte zunächst ein zentrales Konfigurationsverzeichnis unter /etc/vnstat-php angelegt werden. Anschließend sollte die config.php des Frontends dorthin kopiert werden und als Ersatz eine symbolische Verknüpfung angelegt werden [4]:

sudo mkdir /etc/vnstat-php
sudo mv /usr/share/vnstat-php/config.php /etc/vnstat-php/config.php
sudo ln -s /etc/vnstat-php/config.php /usr/share/vnstat-php/config.php 

Frontend konfigurieren

Nun muss die Datei /etc/vnstat-php/config.php entsprechend angepasst [5] werden. Die wichtigsten Abschnitte im Einzelnen:

Sprache

Um das Frontend in Deutsch nutzen zu können, muss die Sprachdatei de.php {dl} heruntergeladen und unter /usr/share/vnstat-php/lang/ gespeichert werden. Der Konfigurationseintrag lautet:

$locale = 'de_DE.UTF-8';
$language = 'de';

Netzwerkschnittstelle

Welche Netzwerkschnittstellen überwacht werden sollen. Um beispielsweise die Schnittstellen eth0 und wlan0 zu überwachen:

$iface_list = array('eth0', 'wlan0');

Soll der für die Netzwerkschnittstellen angezeigte Name geändert werden, kann dies im Anschluss geschehen. Um beispielsweise die Schnittstelle eth0 als LAN-Verbindung und wlan0 als WLAN zu bezeichnen:

$iface_title['eth0'] = 'LAN-Verbindung';
$iface_title['wlan0'] = 'WLAN';

Apache konfigurieren

Nun muss noch der Apache-Webserver konfiguriert werden. Hierzu legt man die Datei /etc/vnstat-php/apache.conf an und trägt dort die folgenden Daten ein:

Verzeichnis

Um das Frontend auf dem Webserver unter http://localhost/vnstat verfügbar zu machen, muss in die Konfiguration das Folgende eingetragen werden:

Alias /vnstat /usr/share/vnstat-php

Grundlegende Konfiguration

Als Basis-Konfiguration sollte, zusätzlich zur obigen Alias-Direktive, folgendes hinzugefügt werden:

<Directory /usr/share/vnstat-php/>
	Options FollowSymLinks
	AllowOverride None
	Order allow,deny
	Allow from all

	<IfModule mod_php5.c>
		php_admin_flag engine On
		php_admin_value open_basedir "/usr/share/vnstat-php/:/etc/vnstat-php/"
	</IfModule>
</Directory>

Zugang mit einem Passwort schützen

Soll der Zugang mit einem Passwort geschützt werden, kann dies mit htpasswd geschehen. Zur Verwaltung der Login-Daten liefert Apache ein praktisches Hilfsprogramm mit:

htpasswd -c /etc/vnstat-php/htpasswd -s BENUTZERNAME 

Nach dem zu verwendenden Passwort wird automatisch gefragt. Soll mehr als ein Benutzer hinzugefügt werden, muss -c weggelassen werden. Soll ein Benutzer gelöscht werden, kann statt -c der Schalter -D verwendet werden.

Anschließend muss innerhalb von <Directory ...></Directory> ein neuer Abschnitt eingefügt werden:

<IfModule mod_authn_file.c>
	AuthType Basic
	AuthName "vnStat"
	AuthUserFile /etc/vnstat-php/htpasswd
</IfModule>
Require valid-user

Zugang bestimmten Benutzern erlauben/verbieten

Hierzu müssen in der apache.conf die Zeilen Order und Allow angepasst werden. Um den Zugang beispielsweise nur vom lokalen Rechner zu erlauben, kann Folgendes verwendet werden. Für andere Einstellungen siehe die Konfiguration von Apache {en}.

Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128

Seite automatisch neu laden

Soll die Seite regelmäßig neu geladen werden, beispielsweise alle 5 Minuten (300 Sekunden), muss der apache.conf innerhalb von <Directory ...></Directory> das Folgende hinzugefügt werden:

<IfModule mod_expires.c>
	ExpiresActive On
	ExpiresDefault M300
</IfModule>

ubuntuusers.local › WikiPHP-Frontend für vnStat