vnStat
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 22.04 Jammy Jellyfish
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
vnStat 🇬🇧 ist ein einfaches Programm, das den Datenverkehr (Volumen) protokolliert und das Ergebnis in einem Terminalfenster anzeigt. Mit der Eingabe verschiedener Parameter kann man sich Tages-, Wochen-, Monats- oder Jahresstatistiken anzeigen lassen.
Installation¶
Um das Programm zu benutzen, das nicht in der Standardinstallation enthalten ist, installiert man[1]:
vnstat (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install vnstat
Oder mit apturl installieren, Link: apt://vnstat
Konfiguration¶
Netzwerkschnittstelle ermitteln¶
Die zur Verfügung stehenden Netzwerkschnittstellen erfährt man durch Eingabe von[2]:
vnstat --iflist
Das Ergebnis für eine Netzwerkkarte (eno1) und eine WLAN-Karte (wlp2s0) kann zum Beispiel so aussehen:
Available interfaces: eno1 (100 Mbit) wlp2s0
Die meisten GSM-USB-Sticks sind über pppoe
angebunden. Wenn der Stick angeschlossen und aktiv ist, dann sieht man mit dem Befehl auch eine Schnittstelle ppp0. Dies ist sehr nützlich, wenn man für die Karte im GSM-USB-Stick keine Flatrate, sondern nur einen Volumentarif hat (z.B. im Ausland).
Datenbank initialisieren¶
Zum Schluss muss noch eine Datenbank für die Protokolldaten erstellt werden. Das erfolgt mit dem Befehl[2][3]:
sudo vnstat --add -i INTERFACE
Dabei ersetzt man INTERFACE
mit der zuvor ermittelten Netzwerkschnittstelle, wie z.B.:
sudo vnstat --add -i wlp2s0
Man kann auch mehrere Netzwerkschnittstellen gleichzeitig protokollieren. Dazu ist für jede ein eigener Befehl in der obigen Form notwendig.
Benutzung¶
Zuerst muss vnStat als Dienst gestartet werden[2][3]:
sudo service vnstat start
Ab diesem Zeitpunkt protokolliert vnStat alles mit, was über die angegebene Netzwerkschnittstelle übertragen wird. Das Ergebnis lässt sich dann z.B. mittels
vnstat --months
ausgeben:
ppp0 / monthly month rx | tx | total -------------------------+--------------+-------------------------------------- Oct '07 102.44 GB | 43.18 GB | 145.61 GB %%%%%%%%:::: Nov '07 110.68 GB | 50.23 GB | 160.91 GB %%%%%%%%%:::: Dec '07 103.97 GB | 37.79 GB | 141.76 GB %%%%%%%%%::: [...] Jul '08 188.90 GB | 44.74 GB | 233.64 GB %%%%%%%%%%%%%%%%:::: Aug '08 197.78 GB | 51.72 GB | 249.50 GB %%%%%%%%%%%%%%%%%:::: Sep '08 128.04 GB | 41.94 GB | 169.97 GB %%%%%%%%%%%::: -------------------------+--------------+-------------------------------------- estimated 151.12 GB | 49.50 GB | 200.62 GB
RX und TX stehen für receive/transmit = empfangen/senden
Optionen¶
Optionen von vnStat | ||
Option | Option (Langform) | Bedeutung |
-? | --help | Damit ruft man die Hilfsfunktion auf |
-q | --query | Datenbank abfragen |
-h | --hours | Abfrage nach Stunden-Intervall |
-d | --days | Abfrage nach Tagen-Intervall |
-m | --months | Abfrage nach Monaten-Intervall |
-w | --weeks | Abfrage nach Wochen-Intervall |
-t | --top10 | Die Top10 anzeigen |
-s | --short | use short output/ Kurzausgabe benutzen |
-i | --iface | Interface auswählen |
-v | --version | Version von vnStat anzeigen |
-tr | --traffic | Den Traffic (Datenverkehr) berechnen |
-ru | --rateunit | swap configured rate unit / Wechsel der konfigurierten Berichts-Einheit (Byte/Bit) |
-l | --live | Übertragungsrate in Echtzeit anzeigen |
--longhelp | Zeigt alle Funktionen bzw. Optionen/Parameter an |
Beispeiel für eine Anwendung¶
vnstat eignet sich gut, um den Traffic eines Rechner zu überwachen, dazu dient die Option --alert
vnstat --alert 3 3 h tx 500 KiB eth0
Die erste 3 steht dafür, dass bei Überschreiten des Limit ein Error-Code gesetzt wird.
Die zweite 3 steht dafür, dass der Error-Code von 1 bei Überschreiten des Limits gesetzt wird.
h steht dafür, dass die letzte Stunde bewertet wird (m = monatlich, d = täglich,, h = stündlich)
tx für die Überwachung des ausgehenden Verkehrs (rx = eingehend, total = gesamt)
550 definiert das Limit
KiB für die Einheit des Limits (KB, KiB, GB, GiB, etc)
eth0 die Schnittstelle muss angegeben werden
In Abhängigkeit vom Error-Code kann man dann z.B. eine Email senden, im folgenden Beispiel wird die Ausgabe von vnstat per ssmtp an foo.bar.com gesendet
#!/usr/bin/bash limit='500 KiB' vnstat --alert 3 3 h tx $limit eth0 > vns.txt err=$? if [ $err -gt 0 ] ; then echo -e "subject: VNSTAT TX >"$limit" auf Server ABC\n\n" > vns.sub cat vns.sub vns.txt | ssmtp foo@bar.com fi
Grafische Aufbereitung der Daten¶
Optional kann man sich auch zusätzlich das Paket vnstati installieren. Dadurch wird es möglich, einfache Bilder der gespeicherten Traffic-Daten im PNG-Format zu erzeugen. Eine Übersicht zu den möglichen Optionen sowie Beispiele der Befehle lassen sich z.B. in der Online-Version 🇬🇧 der aktuellsten Manpage auf der Projektseite finden.
vnstati (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install vnstati
Oder mit apturl installieren, Link: apt://vnstati
Links¶
Intern¶
Conky/Skripte (Abschnitt „Einbinden-von-vnStat“) - Einbinden von vnStat
Netzwerk-Monitoring Übersichtsartikel
Extern¶
Projektseite 🇬🇧
Changelog 🇬🇧 - Versionshistorie des Programms
vnstat und vnstati: Volumen des Netzwerkverkehrs übersichtlich visualisieren 🇩🇪 - Blogbeitrag, 06/2012