Zum Inhalt springen

VnStat: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 2: Zeile 2:


== Beschreibung ==
== Beschreibung ==
nStat ist ein Linux-Programm für die Überwachung des Netzwerkverkehrs. Es protokolliert für die ausgewählte Schnittstelle(n) den täglichen Datenverkehr
nStat ist ein Linux-Programm für die Überwachung des Netzwerkverkehrs.
im Netzwerk. Das Programm ist kein »Packet Sniffer« (Werkzeug für die Netzwerkanalyse). Es kann ohne Root-Rechte verwendet werden, weil die Informationen zum Netzwerkverkehr aus dem /proc-Dateisystem gewonnen werden.
* Es protokolliert für die ausgewählte Schnittstelle(n) den täglichen Datenverkehr
im Netzwerk.
* Das Programm ist kein »Packet Sniffer« (Werkzeug für die Netzwerkanalyse).
* Es kann ohne Root-Rechte verwendet werden, weil die Informationen zum Netzwerkverkehr aus dem /proc-Dateisystem gewonnen werden.


[https://humdi.net/vnstat 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.
[https://humdi.net/vnstat 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 ==
== Installation ==
Zeile 21: Zeile 25:
! Unix !! GNU !! Parameter !! Beschreibung
! Unix !! GNU !! Parameter !! Beschreibung
|-
|-
| || || ||  
| || || ||
|-
|-
|}
|}
Zeile 46: Zeile 50:


Zuerst muss vnStat als Dienst gestartet werden
Zuerst muss vnStat als Dienst gestartet werden
  sudo service vnstat start  
  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
Ab diesem Zeitpunkt protokolliert vnStat alles mit, was über die angegebene Netzwerkschnittstelle übertragen wird.
  vnstat --months  
* Das Ergebnis lässt sich dann z. B. * mittels
  vnstat --months


ausgeben:
ausgeben:
Zeile 72: Zeile 77:
{| style="border-spacing:0;width:17cm;"
{| style="border-spacing:0;width:17cm;"
|- style="border:none;padding:0.049cm;"
|- style="border:none;padding:0.049cm;"
| colspan="3" | Optionen von vnStat  
| colspan="3" | Optionen von vnStat
|- style="border:none;padding:0.049cm;"
|- style="border:none;padding:0.049cm;"
|| Option  
|| Option
|| Option (Langform)  
|| Option (Langform)
|| Bedeutung  
|| Bedeutung
|- style="border:none;padding:0.049cm;"
|- style="border:none;padding:0.049cm;"
|| <tt>-?</tt>  
|| <tt>-?</tt>
|| <tt>--help</tt>  
|| <tt>--help</tt>
|| Damit ruft man die Hilfsfunktion auf  
|| Damit ruft man die Hilfsfunktion auf
|- style="border:none;padding:0.049cm;"
|- style="border:none;padding:0.049cm;"
|| <tt>-q</tt>  
|| <tt>-q</tt>
|| <tt>--query</tt>  
|| <tt>--query</tt>
|| Datenbank abfragen  
|| Datenbank abfragen
|- style="border:none;padding:0.049cm;"
|- style="border:none;padding:0.049cm;"
|| <tt>-h</tt>  
|| <tt>-h</tt>
|| <tt>--hours</tt>  
|| <tt>--hours</tt>
|| Abfrage nach Stunden-Intervall  
|| Abfrage nach Stunden-Intervall
|- style="border:none;padding:0.049cm;"
|- style="border:none;padding:0.049cm;"
|| <tt>-d</tt>  
|| <tt>-d</tt>
|| <tt>--days</tt>  
|| <tt>--days</tt>
|| Abfrage nach Tagen-Intervall  
|| Abfrage nach Tagen-Intervall
|- style="border:none;padding:0.049cm;"
|- style="border:none;padding:0.049cm;"
|| <tt>-m</tt>  
|| <tt>-m</tt>
|| <tt>--months</tt>  
|| <tt>--months</tt>
|| Abfrage nach Monaten-Intervall  
|| Abfrage nach Monaten-Intervall
|- style="border:none;padding:0.049cm;"
|- style="border:none;padding:0.049cm;"
|| <tt>-w</tt>  
|| <tt>-w</tt>
|| <tt>--weeks</tt>  
|| <tt>--weeks</tt>
|| Abfrage nach Wochen-Intervall  
|| Abfrage nach Wochen-Intervall
|- style="border:none;padding:0.049cm;"
|- style="border:none;padding:0.049cm;"
|| <tt>-t</tt>  
|| <tt>-t</tt>
|| <tt>--top10</tt>  
|| <tt>--top10</tt>
|| Die Top10 anzeigen  
|| Die Top10 anzeigen
|- style="border:none;padding:0.049cm;"
|- style="border:none;padding:0.049cm;"
|| <tt>-s</tt>  
|| <tt>-s</tt>
|| <tt>--short </tt>
|| <tt>--short </tt>
|| use short output/ Kurzausgabe benutzen  
|| use short output/ Kurzausgabe benutzen
|- style="border:none;padding:0.049cm;"
|- style="border:none;padding:0.049cm;"
|| <tt>-i</tt>  
|| <tt>-i</tt>
|| <tt>--iface</tt>  
|| <tt>--iface</tt>
|| Interface auswählen  
|| Interface auswählen
|- style="border:none;padding:0.049cm;"
|- style="border:none;padding:0.049cm;"
|| <tt>-v</tt>  
|| <tt>-v</tt>
|| <tt>--version</tt>  
|| <tt>--version</tt>
|| Version von vnStat anzeigen  
|| Version von vnStat anzeigen
|- style="border:none;padding:0.049cm;"
|- style="border:none;padding:0.049cm;"
|| <tt>-tr</tt>  
|| <tt>-tr</tt>
|| <tt>--traffic</tt>  
|| <tt>--traffic</tt>
|| Den Traffic (Datenverkehr) berechnen  
|| Den Traffic (Datenverkehr) berechnen
|- style="border:none;padding:0.049cm;"
|- style="border:none;padding:0.049cm;"
|| <tt>-ru</tt>  
|| <tt>-ru</tt>
|| <tt>--rateunit</tt>  
|| <tt>--rateunit</tt>
|| swap configured rate unit / Wechsel der konfigurierten Berichts-Einheit (Byte/Bit)  
|| swap configured rate unit / Wechsel der konfigurierten Berichts-Einheit (Byte/Bit)
|- style="border:none;padding:0.049cm;"
|- style="border:none;padding:0.049cm;"
|| <tt>-l</tt>  
|| <tt>-l</tt>
|| <tt>--live</tt>  
|| <tt>--live</tt>
|| Übertragungsrate in Echtzeit anzeigen  
|| Übertragungsrate in Echtzeit anzeigen
|- style="border:none;padding:0.049cm;"
|- style="border:none;padding:0.049cm;"
||  
||
|| <tt>--longhelp</tt>  
|| <tt>--longhelp</tt>
|| Zeigt alle Funktionen bzw. Optionen/Parameter an  
|| Zeigt alle Funktionen bzw.
* Optionen/Parameter an
|-
|-
|}
|}
Zeile 138: Zeile 144:
=== Anwendungen ===
=== Anwendungen ===
[[vnstat]] eignet sich gut, um den Traffic eines Rechner zu überwachen, dazu dient die Option '''--alert'''
[[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  
  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 erste '''3''' steht dafür, dass bei Überschreiten des Limit ein Error-Code gesetzt wird.
Zeile 154: Zeile 160:
'''eth0''' die Schnittstelle muss angegeben werden
'''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
In Abhängigkeit vom Error-Code kann man dann z.&nbsp;B.&nbsp;eine Email senden, im folgenden Beispiel wird die Ausgabe von vnstat per ssmtp an foo.bar.com gesendet


<nowiki>#!/usr/bin/bash</nowiki>
<nowiki>#!/usr/bin/bash</nowiki>
Zeile 163: Zeile 169:
   echo -e "subject: VNSTAT TX >"$limit" auf Server ABC\n\n" > vns.sub
   echo -e "subject: VNSTAT TX >"$limit" auf Server ABC\n\n" > vns.sub
   cat vns.sub vns.txt | ssmtp foo@bar.com
   cat vns.sub vns.txt | ssmtp foo@bar.com
fi  
fi


==== Grafische Aufbereitung der Daten ====
==== 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 [https://humdi.net/vnstat/man/vnstati.html Online-Version] der aktuellsten [https://wiki.ubuntuusers.de/man/ Manpage] auf der Projektseite finden.* '''vnstati''' (''universe'')
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.&nbsp;B.&nbsp;in der [https://humdi.net/vnstat/man/vnstati.html Online-Version] der aktuellsten [https://wiki.ubuntuusers.de/man/ Manpage] auf der Projektseite finden.* '''vnstati''' (''universe'')


; Installation
; Installation
Zeile 176: Zeile 184:
=== Netzwerkschnittstelle ermitteln ===
=== Netzwerkschnittstelle ermitteln ===
Die zur Verfügung stehenden Netzwerkschnittstellen erfährt man durch Eingabe von
Die zur Verfügung stehenden Netzwerkschnittstellen erfährt man durch Eingabe von
  vnstat --iflist  
  vnstat --iflist


Das Ergebnis für eine Netzwerkkarte (eno1) und eine WLAN-Karte (wlp2s0) kann zum Beispiel so aussehen:  
Das Ergebnis für eine Netzwerkkarte (eno1) und eine WLAN-Karte (wlp2s0) kann zum Beispiel so aussehen:
  Available interfaces: eno1 (100 Mbit) wlp2s0  
  Available interfaces: eno1 (100 Mbit) wlp2s0


Die meisten GSM-USB-Sticks sind über <tt>pppoe</tt> 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).
Die meisten GSM-USB-Sticks sind über <tt>pppoe</tt> 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.&nbsp;B.&nbsp;im Ausland).


=== Datenbank initialisieren ===
=== Datenbank initialisieren ===
Zum Schluss muss noch eine Datenbank für die Protokolldaten erstellt werden. Das erfolgt mit dem Befehl:
Zum Schluss muss noch eine Datenbank für die Protokolldaten erstellt werden.
  sudo vnstat --add -i INTERFACE  
* Das erfolgt mit dem Befehl:
  sudo vnstat --add -i INTERFACE


Dabei ersetzt man <tt>INTERFACE</tt> mit der zuvor ermittelten Netzwerkschnittstelle:
Dabei ersetzt man <tt>INTERFACE</tt> mit der zuvor ermittelten Netzwerkschnittstelle:
  sudo vnstat --add -i wlp2s0  
  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.
Man kann auch mehrere Netzwerkschnittstellen gleichzeitig protokollieren.
* Dazu ist für jede ein eigener Befehl in der obigen Form notwendig.


=== Dateien ===
=== Dateien ===
Zeile 197: Zeile 209:
! Datei !! Beschreibung
! Datei !! Beschreibung
|-
|-
| ||  
| ||
|-
|-
| ||  
| ||
|}
|}


Zeile 214: Zeile 226:
=== Dokumentation ===
=== Dokumentation ===
<!--
<!--
; Man-Page  
; Man-Page
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)]
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)]


; Info-Pages  
; Info-Pages
-->
-->



Version vom 20. Februar 2026, 12:12 Uhr

VnStat - Überwachung des Netzwerkverkehrs im Textmodus

Beschreibung

nStat ist ein Linux-Programm für die Überwachung des Netzwerkverkehrs.

  • Es protokolliert für die ausgewählte Schnittstelle(n) den täglichen Datenverkehr

im Netzwerk.

  • Das Programm ist kein »Packet Sniffer« (Werkzeug für die Netzwerkanalyse).
  • Es kann ohne Root-Rechte verwendet werden, weil die Informationen zum Netzwerkverkehr aus dem /proc-Dateisystem gewonnen werden.

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

sudo apt-get install vnstat

Aufruf

Optionen

Unix GNU Parameter Beschreibung

Parameter

Umgebungsvariablen

Exit-Status

Wert Beschreibung
0 Erfolg
>0 Fehler

Anwendung

Zuerst muss vnStat als Dienst gestartet werden

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

Anwendungen

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)
Installation
apt-get install vnstati

Problembehebung

Konfiguration

Netzwerkschnittstelle ermitteln

Die zur Verfügung stehenden Netzwerkschnittstellen erfährt man durch Eingabe von

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:
sudo vnstat --add -i INTERFACE

Dabei ersetzt man INTERFACE mit der zuvor ermittelten Netzwerkschnittstelle:

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.

Dateien

Datei Beschreibung


Anhang

Siehe auch



Dokumentation

Projekt

  1. Conky/Skripte (Abschnitt „Einbinden-von-vnStat“) - Einbinden von vnStat
  2. Netzwerk-Monitoring Übersichtsartikel
  3. Projektseite
  4. vnstat und vnstati: Volumen des Netzwerkverkehrs übersichtlich visualisieren