vnStat - Konsolenbasierter Netzwerkmonitor mit geringem Gewicht
vnStat ist ein konsolenbasierter Netzwerkverkehrsmonitor für Linux und BSD, der den Netzwerkverkehr für die ausgewählten Schnittstellen protokolliert. Es verwendet die vom Kernel bereitgestellten Netzwerkschnittstellenstatistiken als Informationsquelle. Dies bedeutet, dass vnStat tatsächlich keinen Datenverkehr aufspürt und zudem eine geringe Nutzung der Systemressourcen gewährleistet.
In diesem Tutorial werden wir überprüfen:
- Eigenschaften
- Installation
- Aufbau
- Starten Sie Systemd Service
- Verwendung (von der Kommandozeile)
- Conky Real Time Display Beispiel
Eigenschaften
- Schnell und einfach zu installieren und in Betrieb zu nehmen
- Die gesammelten Statistiken bleiben auch nach einem Neustart des Systems erhalten
- kann mehrere Schnittstellen gleichzeitig überwachen
- mehrere Ausgabeoptionen
- Zusammenfassung, stündlich, täglich, monatlich, wöchentlich, Top 10 Tage
- Optionale PNG-Bildausgabe (mit libgd)
- Monate können so konfiguriert werden, dass sie dem Abrechnungszeitraum folgen
- leichter, minimaler Ressourcenverbrauch
- Gleiche niedrige CPU-Auslastung, unabhängig vom Datenverkehr
- kann ohne root-berechtigung verwendet werden
- Online-Farbkonfigurationseditor
Installation
nvStat befindet sich in den offiziellen Repositories, sodass keine Verknüpfung zu einem neuen ppa erforderlich ist. So installieren Sie eine Terminal - Instanz erstellen mit Ctrl+ Alt+ Tund geben Sie an der Eingabeaufforderung:
sudo apt-get update
sudo apt-get install vnstat
Lassen Sie Ihr Terminal nach der Installation für die folgenden Abschnitte geöffnet. Es ist kein Neustart erforderlich.
Aufbau
Wählen Sie eine bevorzugte Netzwerkschnittstelle und bearbeiten Sie die Schnittstellenvariable /etc/vnstat.conf
entsprechend. Um alle für vnstat verfügbaren Schnittstellen aufzulisten, verwenden Sie:
$ vnstat --iflist
Available interfaces: wlp60s0 lo enp59s0 (1000 Mbit)
Um eine bestimmte Schnittstelle zu überwachen, müssen Sie zuerst eine Datenbank initialisieren. Jede Schnittstelle benötigt eine eigene Datenbank. Der Befehl zum Initialisieren einer für die eth0-Schnittstelle lautet:
sudo vnstat -u -i enp59s0
Starten Sie Systemd Service
Nach dem Einführen der Schnittstelle (n) und dem Überprüfen der Konfigurationsdatei. Sie können den Überwachungsprozess starten über systemd
:
sudo systemctl start vnstat.service
Um diesen Dienst dauerhaft zu nutzen:
sudo systemctl enable vnstat.service
Ab sofort vnstat
wird die Netzwerkauslastung im Hintergrund mit einem so geringen Prozentsatz der CPU erfasst, dass sie nicht mehr in der Liste der 9 wichtigsten Prozesse von conky (Systemmonitor) (auf meinem Computer) angezeigt wird.
Verwendung (über die Befehlszeile)
Fragen Sie den Netzwerkverkehr ab:
vnstat -q
Anzeigen der Nutzung des Live-Netzwerkverkehrs:
vnstat -l
Um weitere Optionen zu finden, verwenden Sie:
vnstat --help
Monatssummen
Verwenden Sie zum Anzeigen der monatlichen Summen Folgendes:
$ vnstat -m
enp59s0 / monthly
month rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
Oct '17 2.02 GiB | 1.57 GiB | 3.59 GiB | 11.25 kbit/s
Nov '17 58.28 GiB | 24.58 GiB | 82.86 GiB | 268.17 kbit/s
Dec '17 143.23 GiB | 13.64 GiB | 156.87 GiB | 491.31 kbit/s
Jan '18 102.77 GiB | 30.21 GiB | 132.97 GiB | 1.04 Mbit/s
------------------------+-------------+-------------+---------------
estimated 257.06 GiB | 75.56 GiB | 332.62 GiB |
Conky Real Time Display Beispiel
Conky ist ein beliebter leichter Systemmonitor, der in vielen Linux-Distributionen verwendet wird. Sie können die Gesamtsummen der vnStat-Bandbreite in Ihrem conky-Display wie folgt anzeigen:
30 Sekunden .gif von Conkys relevantem Abschnitt
Der Conky-Code für diese Anzeige lautet:
${color orange}${voffset 2}${hr 1}
${color}Memory:${goto 148}${color green}$mem / $memmax $alignr${color green}${memperc /}%
${color}Linux:${goto 148}${color green}${fs_used /} / ${fs_size /} $alignr${color green}${fs_used_perc /}%
${color}NVMe Win 10:${goto 148}${if_mounted /mnt/c}${color green} ${fs_used /mnt/c} / ${fs_size /mnt/c} $alignr${color green}${fs_used_perc /mnt/c}%${else}${color yellow}/mnt/c${endif}
${color}${if_mounted /mnt/d}HGST_Win10:${goto 148}${color green} ${fs_used /mnt/d} / ${fs_size /mnt/d} $alignr${color green}${fs_used_perc /mnt/d}%${else}Cache RAM:${goto 148}${color green}${cached} ${color} Buffers: ${color green} ${buffers}${endif}
${color}${if_mounted /mnt/e}WSL+Linux:${goto 148}${color green}${fs_used /mnt/e} / ${fs_size /mnt/e} $alignr${color green}${fs_used_perc /mnt/e}%${else}Swap:${goto 148}${color green}${swap} / ${swapmax} $alignr${color green}${swapperc}%${endif}
${color orange}${voffset 2}${hr 1}
${color1}Network using vnStat "-i", "-w" and "-m"
${color}${goto 5}Today ${goto 100}Yesterday ${goto 225}Week ${goto 325}Month ${color green}
${execi 10 vnstat -i enp59s0 | grep "today" | awk '{print $8" "substr ($9, 1, 1)}'} ${goto 110}${execi 10 vnstat -i enp59s0 | grep "yesterday" | awk '{print $8" "substr ($9, 1, 1)}'} ${goto 220}${execi 10 vnstat -i enp59s0 -w | grep "current week" | awk '{print $9" "substr ($10, 1, 1)}'} ${goto 315}${execi 10 vnstat -i enp59s0 -m | grep "`date +"%b '%y"`" | awk '{print $9" "substr ($10, 1, 1)}'}
${color}Down: ${color green}${downspeed enp59s0}/s ${color}${goto 220}Up: ${color green}${upspeed enp59s0}/s
${downspeedgraph enp59s0 25,190 000000 ff0000} ${alignr}${upspeedgraph enp59s0 25,190 000000 00ff00}$color
Total: ${color green}${totaldown enp59s0} $color${alignr}Total: ${color green}${totalup enp59s0}
${color orange}${voffset 2}${hr 1}
${color}${goto 5}Dawn: ${color green}${execpi 300 cat /usr/local/bin/sunrise} ${goto 155}${color}Dusk: ${color green}${execpi 300 cat /usr/local/bin/sunset} ${alignr}${color}Level: ${color green}${execpi 10 cat /sys/class/backlight/intel_backlight/brightness}
${color orange}${voffset 2}${hr 1}
Um Platz auf dem Schreibtisch zu sparen, mein schmalen Conky Fenster verwendet „G“ statt „GiB“, „M“ anstelle von „MiB“, etc. Wenn Sie mehr Bildschirm Immobilien ändern substr ($10, 1, 1)
zu $10
und tun das gleiche für $9
.
Sie können sich ändern müssen enp59s0
zu eth0
, wlan0
oder eth1
, usw. abhängig von Ihrem Netzwerknamen gemeldet durch ifconfig
.
vnstat