[[Vorlage(Getestet, focal jammy)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:mit Root-Rechten arbeiten:] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/Oxygen/preferences-system-network.png, 48, align=left)]] [https://humdi.net/vnstat vnStat] {en} 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 = Um das Programm zu benutzen, das nicht in der Standardinstallation enthalten ist, installiert man[1]: {{{#!vorlage Paketinstallation vnstat, universe }}} = Konfiguration = == Netzwerkschnittstelle ermitteln == Die zur Verfügung stehenden Netzwerkschnittstellen erfährt man durch Eingabe von[2]: {{{#!vorlage Befehl 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[2][3]: {{{#!vorlage Befehl sudo vnstat --add -i INTERFACE }}} Dabei ersetzt man `INTERFACE` mit der zuvor ermittelten Netzwerkschnittstelle, wie z.B.: {{{#!vorlage Befehl 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. = Benutzung = Zuerst muss vnStat als Dienst gestartet werden[2][3]: {{{#!vorlage Befehl 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 {{{#!vorlage Befehl 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 }}} [wikipedia:RX:] und [wikipedia:TX:] stehen für receive/transmit = empfangen/senden == Optionen == {{{#!vorlage Tabelle <-3 tableclass="zebra_start3" rowclass="titel">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 }}} == Beispeiel für eine Anwendung == '''vnstat''' eignet sich gut, um den Traffic eines Rechner zu überwachen, dazu dient die Option '''--alert''' {{{#!vorlage Befehl 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 {{{#!vorlage Befehl #!/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 [https://humdi.net/vnstat/man/vnstati.html Online-Version] {en} der aktuellsten [:man:Manpage] auf der Projektseite finden. {{{#!vorlage Paketinstallation vnstati, universe }}} = Links = == Intern == * [:Conky/Skripte#Einbinden-von-vnStat:] - Einbinden von vnStat * [:Netzwerk-Monitoring:] {Übersicht} Übersichtsartikel == Extern == * [https://humdi.net/vnstat/ Projektseite] {en} * [https://humdi.net/vnstat/CHANGES Changelog] {en} - Versionshistorie des Programms * [https://www.gambaru.de/blog/2012/06/02/vnstat-und-vnstati-volumen-des-netzwerkverkehrs-ubersichtlich-visualisieren/ vnstat und vnstati: Volumen des Netzwerkverkehrs übersichtlich visualisieren] {de} - Blogbeitrag, 06/2012 #tag: Netzwerk, Internet, System, Server