So protokollieren und überwachen Sie den Datenverkehr mit vnStat
vnStat ist ein schlankes Konsolenwerkzeug, das unter Linux einen Verlauf des Netzwerkverkehrs führt. Ein Hintergrunddienst, vnstatd, liest die Schnittstellenzähler aus dem Kernel und speichert sie in einer kleinen Datenbank. Anschließend können Sie den Datenverkehr nach Stunden, Tagen, Monaten und Jahren anzeigen oder die aktuelle Übertragungsrate in Echtzeit beobachten. vnStat zeichnet keine Pakete auf, daher ist der Overhead sehr gering. Es zeigt, wie viel Datenverkehr über jede Schnittstelle lief, aber nicht, welche IP-Adressen, Ports oder Verbindungen ihn verursacht haben.
Diese Anleitung zeigt, wie Sie vnStat aus dem Repository oder aus dem Quellcode installieren und wie Sie Verkehrsstatistiken anzeigen. vnStat ist auf jedem Server nützlich, auf dem der Datenverkehr begrenzt ist oder abgerechnet wird, zum Beispiel auf einem INTROSERV-Linux-VPS oder Dedicated Server.
vnStat aus dem Repository installieren
Verbinden Sie sich per SSH mit Ihrem Server. Einzelheiten finden Sie unter Verbindung per SSH herstellen.
Ubuntu und Debian
vnStat ist in den Standard-Repositories verfügbar. Installieren Sie es:
sudo apt update sudo apt install -y vnstat
Die Installation startet den Dienst vnstat und aktiviert ihn beim Systemstart. Prüfen Sie, ob er läuft:
sudo systemctl status vnstat
Die Ausgabe muss active (running) anzeigen. Läuft der Dienst nicht, aktivieren und starten Sie ihn mit sudo systemctl enable --now vnstat.

AlmaLinux und Rocky Linux
vnStat ist im EPEL-Repository verfügbar. Aktivieren Sie EPEL und installieren Sie vnStat:
sudo dnf install -y epel-release sudo dnf install -y vnstat
Aktivieren und starten Sie den Dienst:
sudo systemctl enable vnstat && sudo systemctl start vnstat
Prüfen Sie, ob er läuft:
sudo systemctl status vnstat
vnStat aus dem Quellcode installieren
Kompilieren Sie vnStat aus dem Quellcode, wenn das Paket für Ihre Distribution nicht verfügbar ist oder Sie die neueste Version benötigen.
Ist vnStat bereits aus dem Repository installiert, entfernen Sie zuerst das Paket: sudo apt remove -y vnstat unter Ubuntu und Debian oder sudo dnf remove -y vnstat unter AlmaLinux und Rocky Linux. Beide Installationen verwenden dieselbe Konfigurationsdatei, dieselbe Datenbank und denselben Dienstnamen, sodass es bei paralleler Nutzung zu Konflikten kommt.
Installieren Sie die Build-Abhängigkeiten. Unter Ubuntu und Debian:
sudo apt update && sudo apt install -y build-essential libsqlite3-dev wget
Unter AlmaLinux und Rocky Linux:
sudo dnf group install -y "Development Tools" sudo dnf install -y sqlite-devel wget
Laden Sie die neueste Version herunter und entpacken Sie sie:
wget https://humdi.net/vnstat/vnstat-latest.tar.gz tar -xf vnstat-latest.tar.gz cd vnstat-*/
Das Archiv wird in ein Verzeichnis entpackt, dessen Name die Versionsnummer enthält, zum Beispiel vnstat-2.13. Mit dem Platzhalter vnstat-*/ wechseln Sie hinein, ohne die Versionsnummer eintippen zu müssen.
Kompilieren und installieren Sie vnStat:
./configure --prefix=/usr --sysconfdir=/etc && make && sudo make install
Die Option --prefix=/usr installiert die Programme nach /usr/bin und /usr/sbin, und --sysconfdir=/etc legt die Konfigurationsdatei unter /etc/vnstat.conf ab.
Wurde vnStat zuvor aus dem Repository installiert, stellen Sie unter AlmaLinux und Rocky Linux mit aktiviertem SELinux zuerst die SELinux-Labels des Datenbankverzeichnisses wieder her. Andernfalls startet der Dienst mit dem Fehler Permission denied nicht:
sudo restorecon -Rv /var/lib/vnstat
Installieren Sie den systemd-Dienst, aktivieren und starten Sie ihn:
sudo cp -v examples/systemd/vnstat.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now vnstat
Prüfen Sie die Version und den Dienststatus:
vnstat --version sudo systemctl status vnstat
Die Netzwerkschnittstelle ermitteln
Standardmäßig fügt vnStat alle Netzwerkschnittstellen des Servers außer der Loopback-Schnittstelle zu seiner Datenbank hinzu. Um die aktuell in der Datenbank gespeicherten Schnittstellen anzuzeigen, führen Sie aus:
vnstat --dbiflist
Sie können die Schnittstellen auch mit ip a auflisten. Die folgenden Beispiele verwenden die Schnittstelle ens3. Ersetzen Sie sie durch den Namen Ihrer Schnittstelle, zum Beispiel eth0 oder enp1s0.
Standardmäßig schreibt vnStat neue Daten alle 5 Minuten in die Datenbank. Unmittelbar nach der Installation meldet der Befehl vnstat, dass noch keine Daten vorliegen, zum Beispiel Not enough data available yet oder No data. Warten Sie einige Minuten und führen Sie den Befehl erneut aus.
Verkehrsstatistiken anzeigen
Führen Sie vnstat ohne Optionen aus, um eine Zusammenfassung für alle Schnittstellen zu sehen, einschließlich des Datenverkehrs für den aktuellen Tag und Monat sowie einer Prognose für das Ende des jeweiligen Zeitraums.
vnstat
In allen Berichten steht rx für eingehenden Datenverkehr, tx für ausgehenden Datenverkehr und total für deren Summe.
Datenverkehr pro Stunde
Um die 12 neuesten Stundeneinträge anzuzeigen, führen Sie aus:
vnstat -i ens3 -h --limit 12

Datenverkehr pro Tag
Um die 2 neuesten Tageseinträge anzuzeigen, führen Sie aus:
vnstat -i ens3 -d --limit 2
Ohne --limit legt der Parameter ListDays in /etc/vnstat.conf die Anzahl der angezeigten Einträge fest, standardmäßig 30. Er begrenzt nur die Ausgabe, nicht die in der Datenbank gespeicherten Daten.
Datenverkehr pro Monat
vnstat -i ens3 -m

Datenverkehr pro Jahr
vnstat -i ens3 -y
Datenverkehr in Echtzeit
Um die aktuelle Übertragungsrate zu beobachten, führen Sie aus:
vnstat -i ens3 -l
Die Rate wird aktualisiert, bis Sie Strg+C drücken. Lief der Befehl länger als 10 Sekunden, zeigt vnStat anschließend eine Zusammenfassung für diesen Zeitraum.

Datenverkehr für eine festgelegte Anzahl von Sekunden
Um die durchschnittliche Datenrate über einen Zeitraum zu messen, geben Sie den Zeitraum in Sekunden an. Zum Beispiel 20 Sekunden:
vnstat -i ens3 -tr 20
Ohne Zahl dauert die Messung 5 Sekunden. Das Ergebnis wird nach Ablauf der Zeit angezeigt.
Diagramm der letzten 24 Stunden
Um den Datenverkehr der letzten 24 Stunden als Textdiagramm anzuzeigen, führen Sie aus:
vnstat -i ens3 -hg

Um die Statistiken in einem Skript weiterzuverarbeiten, verwenden Sie die Option --json oder --oneline. Zum Beispiel exportiert vnstat -i ens3 --json d die Tagesstatistik im JSON-Format.
Die Standardschnittstelle festlegen
Hat der Server mehrere Schnittstellen und prüfen Sie meist eine davon, legen Sie sie in der Konfigurationsdatei /etc/vnstat.conf als Standard fest. Öffnen Sie die Datei:
sudo nano /etc/vnstat.conf
Unter AlmaLinux und Rocky Linux ist nano nicht standardmäßig installiert. Installieren Sie es mit sudo dnf install -y nano oder verwenden Sie vi.
Suchen Sie die Zeile Interface, entfernen Sie das Semikolon am Zeilenanfang und tragen Sie den Namen Ihrer Schnittstelle ein:
Interface "ens3"
Speichern Sie die Datei. Nun zeigt vnstat diese Schnittstelle an, wenn Sie es ohne die Option -i ausführen, zum Beispiel vnstat -d. Der Dienst vnstat überwacht weiterhin alle Schnittstellen.
Die vollständige Liste der Optionen erhalten Sie mit vnstat --longhelp oder in man vnstat.