Curioso.Photography - stock.adob

Bandbreitenfresser finden mit vnstat, bmon und ifstat

Mit vnstat, bmon und ifstat lässt sich Netzwerkverkehr mit Linux-Systemen präzise überwachen, analysieren und für die Fehlersuche auswerten. Die Tools arbeiten zusammen.

Die Kombination der Open-Source-Tools vnstat, bmon und ifstat liefert Administratoren unter Linux eine konsistente Möglichkeit, sowohl historische als auch aktuelle Netzwerkströme auf Schnittstellen einzugrenzen und auf Ausreißer zu prüfen.

Während vnstat durch seinen ressourcenschonenden Hintergrunddienst Statistiken über Tage, Monate und Jahre hinweg aufzeichnet und damit eine Grundlage für Trendanalysen schafft, zeigt bmon mit interaktiver Terminaloberfläche die momentane Auslastung und ermöglicht die gezielte Untersuchung einzelner Schnittstellen, Fehlerzähler und Protokollparameter. Ergänzend liefert ifstat die Möglichkeit, Durchsatzwerte in exakt definierten Intervallen zu messen, mit Filterung nach Interfaces und granularer Steuerung der Ausgaben.

Werden alle drei Werkzeuge gemeinsam eingesetzt, entsteht ein vollständiges Bild der Bandbreitennutzung von der langfristigen Entwicklung bis hin zum Sekundenwert einzelner Peaks.

Einsatz von vnstat für dauerhafte Statistiken

vnstat wird aus den Paketquellen installiert und mit systemd dauerhaft gestartet. Mit sudo apt install vnstat wird das Paket eingespielt, sudo systemctl enable vnstat sorgt dafür, dass der Dienst nach einem Neustart automatisch läuft. Die Datenbank des Programms wird im Verzeichnis /var/lib/vnstat gehalten und speichert standardmäßig Fünf-Minuten-Intervalle für 48 Stunden, Stundensummen für vier Tage, Tageswerte für zwei Monate sowie Jahresstatistiken unbegrenzt.

vnstat zur Analyse der Netzwerkbandbreite nutzen

Die Aufbewahrungszeit lässt sich in der Konfigurationsdatei /etc/vnstat.conf anpassen, dort können auch die zu überwachenden Schnittstellen eingetragen werden.  Ein einfacher Aufruf vnstat zeigt eine Übersicht über empfangene (RX) und gesendete (TX) Bytes der Standardschnittstelle.

Mit dem Parameter -i lässt sich eine bestimmte Schnittstelle auswählen, beispielsweise vnstat -i ens18, wenn der Datenverkehr auf der Netzwerkkarte ens18 betrachtet werden soll. Um die Daten auf Stundenbasis zu sehen, eignet sich vnstat -h, was eine tabellarische Aufschlüsselung der letzten Stunden mit empfangenen und gesendeten Volumen in Megabyte ausgibt.

vnstat misst den Datenverkehr auf einem Linux-Server
Abbildung 2: vnstat misst den Datenverkehr auf einem Linux-Server

Für Tageswerte dient vnstat -d, während vnstat -m den Monatsverbrauch darstellt und vnstat -y Jahresstatistiken liefert. Mit vnstat -t wird eine Liste der zehn verbrauchsintensivsten Tage aus der Datenbank erzeugt. Besonders relevant für die Live-Analyse ist die Option -l, die den aktuellen Durchsatz in Echtzeit darstellt, solange der Prozess läuft. So kann man unmittelbar prüfen, welche Transferraten beim Kopieren einer Datei im Subnetz 10.0.0.0/16 entstehen, etwa durch den Befehl scp /tmp/test.iso 10.0.5.23:/mnt/backup/. Während die Übertragung läuft, zeigt vnstat -l -i ens18 den steigenden Datenfluss in Kilobyte pro Sekunde.

Analyse in Echtzeit mit bmon

Während vnstat primär auf langfristige Aufzeichnungen ausgelegt ist, eignet sich bmon für die unmittelbare Beobachtung aktueller Netzwerklast. Das Tool wird mit sudo apt install bmon installiert und direkt über bmon gestartet. Es zeigt in seiner Standardansicht alle verfügbaren Schnittstellen mit Durchsatzwerten in Bytes pro Sekunde. Über die Tastensteuerung lassen sich Details abrufen. Mit der Taste d werden erweiterte Statistiken eingeblendet, die beispielsweise Fehlerzähler, Kollisionen oder ICMP-Pakete enthalten. Die Taste i blendet Schnittstelleninformationen wie MTU oder Hardwareadresse ein, während g die grafische Darstellung ein- oder ausschaltet.

bmon lässt sich vnstat kombinieren
Abbildung 3: bmon lässt sich vnstat kombinieren.

Mit der Option -p kann die Überwachung auf eine konkrete Schnittstelle eingeschränkt werden, etwa bmon -p ens18. Um die Ausgabe statt in Bytes pro Sekunde in Bits pro Sekunde darzustellen, wird das Flag -b ergänzt, also bmon -bp ens18. Über -r wird das Abfrageintervall gesteuert, etwa bmon -r 5 -p ens18, um alle fünf Sekunden neue Werte anzuzeigen.

Zusätzlich unterstützt bmon verschiedene Eingabemodule. Standard ist das netlink-Modul, das direkt mit dem Kernel kommuniziert. Mit bmon -i proc kann stattdessen auf die Datei /proc/net/dev zurückgegriffen werden. Für Debugging-Zwecke steht -i dummy zur Verfügung, womit synthetische Daten erzeugt werden, wobei -i null die Datenerfassung deaktiviert. Ebenso gibt es verschiedene Ausgabemodule. Standard ist die Curses-Oberfläche, die eine interaktive Ansicht mit grafischer Darstellung bietet. Mit bmon -o ascii kann eine textbasierte Ausgabe erzeugt werden, die sich besser für Protokollierung oder Skripting eignet. Noch granularer ist bmon -o format, womit sich die Werte für eine Weiterverarbeitung in eigenen Skripten nutzen lassen.

Flexible Intervallmessung mit ifstat

Das Werkzeug ifstat ist deutlich schlanker aufgebaut, liefert aber präzise Werte über definierte Intervalle. Es wird mit sudo apt install ifstat installiert und startet direkt mit ifstat. Standardmäßig werden alle Schnittstellen einmal pro Sekunde mit Durchsatzwerten für RX und TX in Kilobyte pro Sekunde angezeigt. Die Syntax ifstat [Intervall] [Wiederholungen] erlaubt eine flexible Steuerung. Mit ifstat 3 8 werden beispielsweise acht Messungen im Abstand von drei Sekunden durchgeführt, was einen Zeitraum von 24 Sekunden abdeckt. Ein kürzeres Intervall wie ifstat 0.1 liefert Werte alle 100 Millisekunden, was der maximal möglichen Granularität entspricht.

ifstat misst den Datenverkehr eines Linux-Computers.
Abbildung 4: ifstat misst den Datenverkehr eines Linux-Computers.

Praktisch ist die Einschränkung auf bestimmte Schnittstellen. Mit ifstat -i ens18 wird nur der Datenverkehr dieser Netzwerkkarte gezeigt, mit einer kommaseparierten Liste wie ifstat -i ens18,ens19 können mehrere Interfaces überwacht werden. Über die Option -e lassen sich Fehlerzähler mit ausgeben, was für die Diagnose von Paketverlusten nützlich ist. Der Parameter -t ergänzt Zeitstempel vor jeder Zeile, wodurch sich die Daten in Logdateien besser auswerten lassen. Mit -r kann die interne Historie zurückgesetzt werden, während -z auch Interfaces ohne Aktivität anzeigt.

Gemeinsamer Einsatz der drei Werkzeuge

Die Stärken der Werkzeuge zeigen sich in der Kombination. Das Tool vnstat protokolliert langfristig, wann ungewöhnlich hoher Datenverkehr stattgefunden hat. Mit einem Blick auf die Top-Tage (vnstat -t) lassen sich Verdachtsmomente identifizieren. Anschließend kann bmon in Echtzeit auf der betroffenen Schnittstelle gestartet werden, um während eines erneuten Peaks detaillierte Werte und Protokollinformationen einzusehen. Parallel dazu liefert ifstat präzise Durchsatzdaten in Sekundenintervallen, die sich in Skripten oder über Umleitungen in Dateien weiterverarbeiten lassen. Ein praktisches Vorgehen besteht darin, einen auffälligen Client im Subnetz zu belasten, etwa durch einen großen Transfer von 10.0.12.55 nach 10.0.8.42, während auf dem Gateway bmon -bp ens18 für die visuelle Übersicht läuft, vnstat -l -i ens18 die Summen protokolliert und ifstat -i ens18 1 60 die Werte für eine spätere Auswertung im CSV-Format liefert.

So entsteht ein vollständiges Bild, bei dem langfristige Statistiken mit momentanen Beobachtungen und exakten Intervallwerten kombiniert werden. Auf diese Weise lassen sich Bandbreitenfresser eingrenzen, etwa Clients mit ungewöhnlich hohem Traffic im Subnetz oder Dienste, die konstant Hintergrunddaten übertragen. Der objektive Vorteil der gemeinsamen Nutzung liegt in der Ergänzung der jeweiligen Perspektiven: vnstat als Langzeitspeicher, bmon als interaktive Echtzeitansicht und ifstat als präzises Messinstrument mit steuerbaren Intervallen.

Datenhaltung, Konfiguration und Automatisierung mit vnstat, bmon und ifstat

Ein Aspekt, der in der praktischen Arbeit oft unterschätzt wird, betrifft die Speicherung und Weiterverarbeitung der erfassten Daten. vnstat legt seine Datenbank standardmäßig unter /var/lib/vnstat/ ab, wobei für jede überwachte Schnittstelle eine eigene Datei existiert. Über die Konfigurationsdatei /etc/vnstat.conf lassen sich Parameter wie das Standardintervall für die Erfassung, die verwendeten Einheiten oder das Format der Ausgabe anpassen.

Mit vnstat --json m können die Werte im JSON-Format exportiert werden, was eine einfache Weiterverarbeitung in Skripten oder Monitoring-Systemen wie Grafana ermöglicht. bmon dagegen bietet mit dem Format-Ausgabemodul (bmon -p eth0 -o format) die Möglichkeit, die in Echtzeit erfassten Statistiken zeilenweise für externe Tools bereitzustellen.

In der Praxis werden diese Daten über Pipes in eigene Skripte eingelesen, um beispielsweise Spitzenlasten automatisiert zu erfassen. ifstat wiederum kann über die Option -t Zeitstempel ausgeben, sodass eine regelmäßige Abfrage mit ifstat -i eth0 -t 5 20 >> traffic.log ein strukturiertes Logfile erzeugt, das über längere Zeiträume hinweg analysiert werden kann. In Kombination ergibt sich damit ein vollständiger Workflow: vnstat stellt historische Daten bereit, bmon liefert interaktive Live-Diagnosen und ifstat erzeugt präzise zeitgestempelte Messreihen für den direkten Einsatz in Skripten oder externen Monitoringlösungen.

Automatisierung und Integration in Monitoring-Umgebungen

Ein praxisrelevanter Aspekt ist die Einbindung der drei Werkzeuge in Skripte und automatisierte Überwachungsumgebungen, da alle Ausgaben im Textformat erfolgen und sich somit leicht weiterverarbeiten lassen. Mit dem Befehl ifstat -t -i ens18 1 >> /var/log/ifstat.log können kontinuierlich Messwerte mit Zeitstempeln in eine Protokolldatei geschrieben werden, die sich anschließend mit awk oder gnuplot grafisch aufbereiten lässt.

bmon stellt über den Ausgabemodus -o format strukturierte Werte bereit, die sich direkt in Shell-Skripte integrieren lassen, um Schwellenwerte zu prüfen oder Alarmierungen auszulösen. vnstat liefert mit vnstat --json eine maschinenlesbare Ausgabe, die sich problemlos in Systeme wie Grafana oder Zabbix einspeisen lässt, um langfristige Trends sichtbar zu machen. Durch die kombinierte Nutzung dieser Möglichkeiten entsteht ein durchgängiger Arbeitsablauf, der interaktive Analysen auf der Konsole mit einer automatisierten Langzeitüberwachung verbindet.

In einem Netzwerk können so nicht nur einzelne Schnittstellen kontrolliert, sondern systemübergreifende Muster erkannt werden, etwa ob Backup-Prozesse, NFS-Zugriffe oder Container-Orchestrierungen regelmäßig Bandbreitenspitzen erzeugen. Zusätzlich lassen sich Fehlerindikatoren wie Paketverluste oder Kollisionen, die bmon und ifstat erfassen, in Skripte einbinden. Dadurch können Administratoren frühzeitig auf defekte Hardware oder fehlerhafte Konfigurationen hingewiesen werden.

Ergänzende Tools iftop, nethogs und tcpdump in der Praxis

Ergänzend zu vnstat, bmon und ifstat können iftop, nethogs und tcpdump eingesetzt werden, wenn nicht nur Bandbreitenwerte, sondern auch die Ursachen für hohen Traffic sichtbar gemacht werden sollen. Mit iftop -i eth0 wird eine Live-Übersicht aller aktiven Verbindungen auf der Schnittstelle eth0 angezeigt. Hier erscheinen Quell- und Zieladressen zusammen mit aktuellen Sende- und Empfangsraten. Um eine Prozesszuordnung zu erreichen, eignet sich nethogs eth0, das die Bandbreitennutzung direkt den laufenden Programmen auf dem System zuordnet. Damit lässt sich beispielsweise erkennen, ob ein Datenbankprozess oder ein Webserver im Hintergrund für hohe Auslastung verantwortlich ist. Für eine tiefergehende Analyse auf Paketebene wird tcpdump verwendet. Mit tcpdump -i eth0 net 10.0.0.0/16 -w traffic.pcap lässt sich der gesamte Verkehr innerhalb des definierten Subnetzes mitschneiden und in einer Datei ablegen, die anschließend mit Wireshark grafisch untersucht werden kann. In der Praxis wird so ein mehrstufiges Vorgehen möglich: vnstat dokumentiert langfristige Statistiken, bmon zeigt live den Traffic auf den Schnittstellen, ifstat bestätigt präzise Sende- und Empfangsraten, und mit iftop, nethogs oder tcpdump wird die Ursache von Bandbreitenspitzen bis auf Verbindung, Prozess oder Paket eingegrenzt.

Erfahren Sie mehr über Netzwerksoftware