vnStat ist ein leichtgewichtiges Tool zur Überwachung des Netzwerk-Traffics. Es läuft im Hintergrund, verbraucht kaum Ressourcen und liefert detaillierte Statistiken.
Warum vnStat?
Vorteile
- Minimaler Ressourcenverbrauch
- Kernel-basierte Statistiken
- Keine Root-Rechte für Abfragen
- Historische Daten (Tage, Monate, Jahre)
- Einfache Konfiguration
- CLI und Web-InterfaceAnwendungsfälle
- Traffic-Volumen überwachen
- Bandbreiten-Limits prüfen
- Traffic-Anomalien erkennen
- Monatliche Abrechnung kontrollieren
- Server-Auslastung analysierenInstallation
Debian/Ubuntu
apt update
apt install vnstatCentOS/RHEL
dnf install vnstatDienst starten
systemctl enable --now vnstatGrundkonfiguration
Interface hinzufügen
# Automatisch beim Start erkannt, oder manuell:
vnstat --add -i eth0
# Mehrere Interfaces
vnstat --add -i eth0
vnstat --add -i eth1Konfigurationsdatei
# /etc/vnstat.conf
# Datenbank-Verzeichnis
DatabaseDir "/var/lib/vnstat"
# Interface
Interface "eth0"
# Update-Intervall (Sekunden)
UpdateInterval 20
# Polling-Intervall
PollInterval 5
# Speicherdauer (Monate)
MonthRotate 1
MonthRotateAffectsYears 0
# Dateneinheit (0 = Bytes, 1 = Bits)
UnitMode 0
# Rateneinheit (0 = Bytes/s, 1 = Bits/s)
RateUnit 1
# Bandbreiten-Erkennung
BandwidthDetection 1
MaxBandwidth 1000Änderungen anwenden
systemctl restart vnstatTraffic-Statistiken anzeigen
Übersicht
vnstatDatabase updated: Mon Jan 26 10:00:00 2026
eth0 since 2026-01-01
rx: 150.25 GiB tx: 45.32 GiB total: 195.57 GiB
monthly
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
Jan '26 150.25 GiB | 45.32 GiB | 195.57 GiB | 7.53 Mbit/s
------------------------+-------------+-------------+---------------
estimated 180.30 GiB | 54.38 GiB | 234.68 GiB |Tägliche Statistik
vnstat -d eth0 / daily
day rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
2026-01-24 5.23 GiB | 1.45 GiB | 6.68 GiB | 6.53 Mbit/s
2026-01-25 4.89 GiB | 1.32 GiB | 6.21 GiB | 6.07 Mbit/s
2026-01-26 2.15 GiB | 620.45 MiB | 2.75 GiB | 5.38 Mbit/s
------------------------+-------------+-------------+---------------
estimated 5.16 GiB | 1.45 GiB | 6.61 GiB |Monatliche Statistik
vnstat -mStündliche Statistik
vnstat -hTop 10 Tage
vnstat -tLive-Monitoring
vnstat -l
# Oder mit Zeitlimit (30 Sekunden)
vnstat -l -i eth0 -s 30Aktuelle Bandbreite
vnstat -tr 5
# Zeigt Traffic-Rate über 5 SekundenAusgabeformate
JSON-Export
vnstat --json
vnstat --json d # Täglich
vnstat --json m # Monatlich
vnstat --json h # StündlichXML-Export
vnstat --xmlOne-Line-Output
vnstat --onelineSpezifisches Interface
vnstat -i eth0
vnstat -i eth1 -dWeb-Interface (vnStat PHP)
Installation
apt install apache2 php libapache2-mod-phpvnStat PHP Frontend
cd /var/www/html
wget https://github.com/alexandermarston/vnstat-dashboard/archive/refs/heads/master.zip
unzip master.zip
mv vnstat-dashboard-master vnstatKonfiguration
// /var/www/html/vnstat/includes/config.php
$interface = 'eth0';
$graph_type = 'svg';
$combined_graph = true;Zugriff
Browser: http://server-ip/vnstat
Daten exportieren und analysieren
Export in CSV
#!/bin/bash
# vnstat-export.sh
vnstat --json m | jq -r '
.interfaces[0].traffic.month[] |
[.date.year, .date.month, .rx, .tx] |
@csv
' > traffic-monthly.csvTäglicher Bericht per E-Mail
#!/bin/bash
# /usr/local/bin/vnstat-report.sh
MAILTO="admin@example.com"
{
echo "=== vnStat Daily Report ==="
echo ""
echo "=== Übersicht ==="
vnstat
echo ""
echo "=== Heute ==="
vnstat -d 1
echo ""
echo "=== Top 10 Tage ==="
vnstat -t
} | mail -s "Traffic Report $(date +%Y-%m-%d)" $MAILTO# Crontab
0 8 * * * /usr/local/bin/vnstat-report.shTraffic-Alerts
Skript für Alerts
#!/bin/bash
# /usr/local/bin/traffic-alert.sh
# Schwellwerte in GB
DAILY_LIMIT=50
MONTHLY_LIMIT=1000
MAILTO="admin@example.com"
# Täglicher Traffic (in GiB)
DAILY=$(vnstat --oneline | cut -d';' -f4 | sed 's/ GiB//')
MONTHLY=$(vnstat --oneline | cut -d';' -f9 | sed 's/ GiB//')
# Prüfen und warnen
if (( $(echo "$DAILY > $DAILY_LIMIT" | bc -l) )); then
echo "Daily traffic limit exceeded: $DAILY GiB" | \
mail -s "Traffic Alert: Daily Limit" $MAILTO
fi
if (( $(echo "$MONTHLY > $MONTHLY_LIMIT" | bc -l) )); then
echo "Monthly traffic limit exceeded: $MONTHLY GiB" | \
mail -s "Traffic Alert: Monthly Limit" $MAILTO
fi# Stündlich prüfen
0 * * * * /usr/local/bin/traffic-alert.shMehrere Interfaces
Alle Interfaces anzeigen
vnstat --iflistStatistik pro Interface
vnstat -i eth0
vnstat -i eth1
vnstat -i docker0Kombinierte Ansicht
# Alle Interfaces summiert
vnstat --add -i eth0+eth1Datenbank verwalten
Datenbank-Speicherort
ls -la /var/lib/vnstat/Datenbank zurücksetzen
# Interface entfernen
vnstat --remove -i eth0 --force
# Neu hinzufügen
vnstat --add -i eth0Backup
cp -r /var/lib/vnstat /backup/vnstat-$(date +%Y%m%d)Grafana-Integration
Mit InfluxDB
#!/bin/bash
# vnstat-to-influx.sh
INFLUX_HOST="localhost"
INFLUX_DB="vnstat"
STATS=$(vnstat --json)
RX=$(echo $STATS | jq '.interfaces[0].traffic.total.rx')
TX=$(echo $STATS | jq '.interfaces[0].traffic.total.tx')
curl -i -XPOST "http://$INFLUX_HOST:8086/write?db=$INFLUX_DB" \
--data-binary "network,interface=eth0 rx=$RX,tx=$TX"Prometheus Exporter
# vnstat_exporter installieren
go install github.com/bvanrijn/vnstat_exporter@latest
# Starten
vnstat_exporter --listen-address=":9433"# prometheus.yml
scrape_configs:
- job_name: 'vnstat'
static_configs:
- targets: ['localhost:9433']Troubleshooting
Keine Daten
# Dienst-Status
systemctl status vnstat
# Interface prüfen
vnstat --iflist
# Manuelles Update
vnstat -u -i eth0Falsche Werte
# Datenbank-Integrität prüfen
vnstat --dbcheck
# Kernel-Statistiken prüfen
cat /proc/net/devDatenbank reparieren
# vnStat stoppen
systemctl stop vnstat
# Datenbank löschen
rm /var/lib/vnstat/eth0
# Neu initialisieren
systemctl start vnstat
vnstat --add -i eth0Zusammenfassung
| Befehl | Funktion | |--------|----------| | vnstat | Übersicht | | vnstat -d | Täglich | | vnstat -m | Monatlich | | vnstat -h | Stündlich | | vnstat -l | Live | | vnstat -t | Top 10 | | vnstat --json | JSON-Export | | vnstat -i eth0 | Spezifisches Interface |
Fazit
vnStat ist das ideale Tool zur Traffic-Überwachung auf Linux-Servern. Es läuft unauffällig im Hintergrund und liefert auf Abruf detaillierte Statistiken. Für Server mit Traffic-Limits oder zur Kapazitätsplanung ist vnStat unverzichtbar. Kombiniert mit einem Web-Frontend und Alerts haben Sie Ihren Bandbreitenverbrauch immer im Blick.