Linux: Wie wird der tägliche / monatliche Netzwerkverkehr gemessen?

15

Ich muss Statistiken des täglichen Netzwerkverkehrs für einen Linux-Computer (CentOS 5) führen.

Gibt es eine Möglichkeit, dies mit standardmäßigen / nativen Tools oder Dienstprogrammen zu tun?
Oder muss ich dafür spezielle Software herunterladen?

Vielen Dank.

GetFree
quelle
1
Wie genau benötigen Sie die Statistiken? Mit anderen Worten, benötigen Sie etwas Bestimmtes, um die Bandbreite neu abzurechnen, oder sind die Durchschnittswerte gut?
Zypher
Ich muss genau wissen, wie viel Verkehr ich jeden Tag genutzt habe, weil ich bestimmte Grenzwerte nicht überschreiten möchte.
GetFree
1
Dann sind Sie nicht wollen , eine der RRD - basierte Tools (Cacti, MRTG, Munin, usw.) RRD mittelt die Zahlen so werden Sie nie eine genaue Metrik erhalten, und es wird tatsächlich schlimmer im Laufe der Zeit.
Zypher

Antworten:

8

Was Zypher über rrdtool (und alles andere, das es als Backend verwendet - MRTG, Cacti usw.) sagte, ist wahrscheinlich richtig. RRDTool ist als Tool für die Analyse von gemittelten historischen Trends konzipiert. Es mittelt und speichert die Zähler in immer unauflöslicheren Schritten, je weiter die Zeit zurückliegt.

Dies kann jedoch durch entsprechendes Einrichten der RRAs konfiguriert werden. Ich gebe jedoch zu, absolut nichts über die Konfiguration dieser zu wissen, und hatte persönlich nie Glück, sie über meinen Standardsatz (15 Minuten, 8 Stunden, 1 Woche, 1 Monat, 1 Jahr) hinaus zu bringen. Ich würde empfehlen, die RRAs so zu konfigurieren, dass tägliche Eingaben erwartet werden, und den Bandbreitenzähler von netstat einzugeben. Sie erhalten einige sehr schöne historische Daten und Einblicke in Ihre Nutzungsmuster.

Um Ihr aktuelles Problem zu lösen, müssen Sie sicherstellen, 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 Verkehr von gestern zum Zeitpunkt t mit den heutigen Zählern zum Zeitpunkt t vergleichen und herausfinden, wie viel übertragen wurde. Ein einfaches Skript mit einem flachen Textdateispeicher des vorherigen Werts würde wahrscheinlich ausreichen. Sie können dann die Benutzeroberfläche deaktivieren, wenn Sie eine Bandbreitenüberschreitung feststellen, oder sie den ganzen Tag überwachen und einen Administrator benachrichtigen, wenn Sie sich Ihrem Limit nähern.

Um die Eingabebytes auf einem OSX-System abzurufen, können Sie die folgenden Befehle 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 flache Datei einfügen, die irgendwo gespeichert ist, und mit Folgendem vergleichen:

#!/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 ausführen).

Jordan T. Cox
quelle
25

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
MadBoy
quelle
4

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

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

d34dh0r53
quelle
4

Vnstat ist eine großartige konsolenbasierte tägliche / wöchentliche / monatliche Verkehrsüberwachung. Sie können sogar den Datenverkehr in Echtzeit überwachen, was praktisch ist.

Es verbraucht auch sehr wenige Systemressourcen;)

Hilton D
quelle
2

Sie möchten MRTG , ein Tool zur Netzwerküberwachung, das alle im Web angezeigten Netzwerkdiagramme erstellt (mit rdtool können Sie die Zahlen in Bilder umwandeln).

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

gbjbaanb
quelle
+1 für die iptables-Lösung
GetFree
Iptables Link ist tot - vielleicht das? qaoverflow.com/question/…
Tage später
1

Ich habe mrtg verwendet, es ist eine sehr schöne Lösung, und es gibt ein anderes Tool, das interessant zu sein scheint und das viele Informationen über den Datenverkehr namens ntop a network probe liefert. Hier finden Sie einen Link zur Installation von ntop unter CentOS

Ali Mezgani
quelle
1

Entweder MRTG oder Kakteen. Kakteen sind mühsam einzurichten, bieten aber einige sehr hübsche Grafiken. MRTG ist einfach zu erstellen, aber für alles Hübsche oder Komplizierte ist es ziemlich schwierig.

Aaron Brown
quelle
1

Munin ist ein weiteres nettes RRD-basiertes Tool, das sehr einfach einzurichten ist. Die Standard-Netzwerkstatistiken sind recht einfach, aber es ist einfach, zusätzliche Plugins hinzuzufügen. Ich habe eine Kopie der Tages- und Wochenstatistik auf einem meiner Server angehängt. Sie erhalten auch monatliche und jährliche Statistiken auf einer anderen Seite.

Munin Netzwerk Graph

gareth_bowles
quelle
Das Bild ist jetzt weg
Kanadier Luke REINSTATE MONICA