GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux:Wie misst man den täglichen/monatlichen Netzwerkverkehr?

Lösung 1:

Ich empfehle auch die Verwendung von VnStat

vnStat 1.6 by Teemu Toivola <tst at iki dot fi>

     -q,  --query          query database
     -h,  --hours          show hours
     -d,  --days           show days
     -m,  --months         show months
     -w,  --weeks          show weeks
     -t,  --top10          show top10
     -s,  --short          use short output
     -u,  --update         update database
     -i,  --iface          select interface (default: eth0)
     -?,  --help           short help
     -v,  --version        show version
     -tr, --traffic        calculate traffic
     -l,  --live           show transfer rate in real time


 eth0  /  monthly

   month         rx      |      tx      |   total
-------------------------+--------------+--------------------------------------
  Oct '09     225.70 GB  |   798.52 GB  |     1.00 TB   %%%%:::::::::::::
  Nov '09     138.46 GB  |   616.54 GB  |   755.01 GB   %%::::::::::

 eth0  /  daily

day         rx      |     tx      |  total
------------------------+-------------+----------------------------------------
   31.12.      6.56 GB  |   34.39 GB  |   40.95 GB   %%%::::::::::::::::
   01.01.      1.13 GB  |  746.92 MB  |    1.86 GB

Lösung 2:

Was Zypher über rrdtool (und alles andere, was es als Backend verwendet - MRTG, Cacti usw.) gesagt hat, ist wahrscheinlich richtig. RRDTool ist als „gemitteltes“ historisches Trendanalysetool konzipiert. Es mittelt und speichert Zähler in zunehmend unaufgelösten Inkrementen, je weiter die Zeit zurückgeht.

Dies ist jedoch durch geeignetes Einrichten der RRAs konfigurierbar. Ich gestehe jedoch, dass ich absolut nichts über deren Konfiguration weiß und persönlich nie Glück hatte, sie über mein Standard-Set hinauszubekommen (15 Minuten, 8 Stunden, 1 Woche, 1 Monat, 1 Jahr). Ich würde empfehlen, die RRAs so zu konfigurieren, dass sie tägliche Eingaben erwarten und Ihren Bandbreitenzähler von netstat füttern. Sie erhalten einige sehr schöne Verlaufsdaten und Einblicke in Ihre Nutzungsmuster.

Um Ihr aktuelles Problem zu beantworten, stellen Sie sicher, dass Sie ein tägliches Bandbreitenlimit nicht überschreiten. Ich würde empfehlen, die Netstat-Zähler täglich für die betreffende Schnittstelle zu greifen. Sie können den Datenverkehr von gestern zum Zeitpunkt t mit den Zählern von heute zum Zeitpunkt t vergleichen und herausfinden, wie viel übertragen wurde. Ein einfaches Skript mit einer flachen Textdateispeicherung des vorherigen Werts würde wahrscheinlich ausreichen. Sie können die Schnittstelle dann deaktivieren, wenn Sie eine Bandbreitenüberschreitung feststellen, oder sie den ganzen Tag über überwachen und einen Administrator benachrichtigen, wenn Sie sich Ihrem Limit nähern.

Um die Eingabebytes auf einem OSX-System zu erhalten, können Sie den folgenden Befehlssatz verwenden:

netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $7}'

Umgekehrt kann die Ausgabe erhalten werden mit:

netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'

Sie könnten die relevanten Zähler in eine irgendwo gespeicherte Flatfile einfügen und sie vergleichen mit:

#!/bin/bash
set -e # exit if any error occurs

previous_days_bytes_xferred=`cat $flatfile_storage`
todays_bytes_xferred=`netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'`

if [ $((todays_bytes_xferred - previous_days_bytes_xferred)) -gt $threshold ]; then
   DO SOME STUFF
fi
echo $todays_bytes_xferred > $flatfile_storage

Passen Sie einfach die Netstat-Verarbeitung an Ihr System an (da ich weiß, dass Sie kein OSX verwenden).

Lösung 3:

Das Paket sysstat enthält das Dienstprogramm sar. Sar ist ein extrem konfigurierbarer System-"Profiler", der in Ermangelung eines besseren Begriffs verschiedene Statistiken in vordefinierten Intervallen (cron) sammelt. Diese werden in Binärdateien gespeichert, eine für jeden Tag, die normalerweise wöchentlich rotiert werden, aber das ist konfigurierbar. Das sar-Programm kann verwendet werden, um die Statistiken aus diesen Dateien herauszuziehen, und diese Ergebnisse können leicht mit jedem Office-Programm oder gnuplot (meine persönliche Präferenz) grafisch dargestellt werden.

http://pagesperso-orange.fr/sebastien.godard/ <=Sar-Informationen
http://www.gnuplot.info/ <=gnuplot-info

Lösung 4:

Vnstat ist ein großartiger konsolenbasierter täglicher / wöchentlicher / monatlicher Verkehrsmonitor. Es erlaubt Ihnen sogar, den Datenverkehr in Echtzeit zu überwachen, was praktisch ist.

Es verbraucht auch nur sehr wenige Systemressourcen;)

Lösung 5:

Sie möchten MRTG, ein Netzwerküberwachungstool, das alle Netzwerkdiagramme erstellt, die Sie im Internet sehen (mit rdtool, um die Zahlen in Bilder umzuwandeln)

Wenn Sie es nicht einrichten möchten oder einfach etwas Einfacheres benötigen, können Sie iptables verwenden, um die Datenübertragung aufzuzeichnen.


Linux
  1. So verwenden Sie den Linux-Befehl mtr

  2. So erstellen Sie eine Netzwerkfreigabe über Samba unter Linux

  3. Linux – Wie kann ich die Netzwerkfreigabe für den aktuellen Prozess aufheben?

  4. Linux – Wie misst und verhindert man Uhrdrift?

  5. So stellen Sie die bevorzugte Netzwerkschnittstelle unter Linux ein

So finden Sie verfügbare Netzwerkschnittstellen unter Linux

So ändern Sie die Netzwerk-MAC-Adresse in Linux

So installieren und verwenden Sie den webbasierten Linux Network Traffic Analyzer von Darkstat

So fügen Sie eine Route unter Linux hinzu

So konfigurieren Sie Linux als statischen Router

So verwenden Sie den netstat-Befehl unter Linux