Netzwerkinterface mit 'vnstat' protokollieren

Wenn man z.B. auf einfache Art und Weise den Traffic eines Netzwerkinterfaces unter Linux messen und protokollieren möchte, so bietet das unter GPL/open Source stehende Commandline-Tool vnstat eine simple Möglichkeit.

Netzwerkinterface mit 'vnstat' protokollieren
Wenn man z.B. auf einfache Art und Weise den Traffic eines Netzwerkinterfaces unter Linux messen und protokollieren möchte, so bietet das unter GPL/open Source stehende Commandline-Tool vnstat eine simple Möglichkeit.

Wenn man z.B. auf einfache Art und Weise den Traffic eines Netzwerkinterfaces unter Linux messen und protokollieren möchte, so bietet das unter GPL/open Source stehende Commandline-Tool vnstat eine simple Möglichkeit. In den meisten Linux-Distributionen bereits als Paket enthalten, so kann man es schon nach wenigen Tastatureingaben verwenden.

Step 1: Installieren wir als erstes "vnstat" bitte, sofern es noch nicht Installiert wurde

sudo apt install vnstat

Nach erfolgter Installation erstellt man als Erstes die Datenbank-Datei für das jeweilige Netzwerkinterface.

vnstat -u -i eth0

Hinweis: "eth0" steht für das Netzwerkinterface auf einem Root-Server. Auf einem V-Server könnte es anders heißen. Das findet man mit folgendem Befehl heraus: "ifconfig".

Um die Datenbank zu füttern, richten wir als Nächstes einen Cronjob ein, welcher diese z.B. alle 5 Minuten ausgeführt wird.

#
# vnstat update
#
*/5 * * * * root /usr/bin/vnstat -u -i eth0

Ist einige Zeit vergangen, erhält man eine gute Übersicht über den täglichen Datentransfer/Traffic eines Netzwerkinterfaces.

server:~# vnstat -i eth0
Database updated: Sun Jun 21 23:30:01 2017
        eth0
           received:     439.66 MB (48.3%)
        transmitted:     469.85 MB (51.7%)
              total:     909.50 MB
                        rx     |     tx     |  total
        -----------------------+------------+-----------
        yesterday     39.37 MB |   21.70 MB |   61.06 MB
            today    400.29 MB |  448.15 MB |  848.44 MB
        -----------------------+------------+-----------
        estimated       407 MB |     456 MB |     863 MB

Die Auswertung steht auch nach Stunden, Tagen, Wochen oder Monaten zur Verfügung. Die Hilfe zeigt alle notwendigen Optionen.

vnstat --help

Für alle Interessierten steht eine umfangreiche MAN Page zur Verfügung.

man vnstat

Wer die Auswertung z.B. wöchentlich bequem in seinem Posteingang haben möchte, kann auch hier einen Cronjob einrichten wie folgt:

#
# vnstat - send mail
#
0 0 * * 1 root /usr/bin/vnstat -w -i eth0 | mail -s "SERVER: Traffic eth0" email@domain.de

Zu erwähnen wäre noch die Option –live welche die aktuelle Auslastung am Interface anzeigt. Man kann die Software auch als normaler User in der Shell starten. Die Daten liest die Software über das PROC-Dateisystem aus und speichert diese in der Datenbank-Datei. Alles in allem ganz nützlich.

Bei komplexeren Auswertungen, z.B. nach Ports/Services oder Subnetzen, bauen wir weiterhin auf iptables und spezifischen Chains.

Links zum Thema: