GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:come misurare il traffico di rete giornaliero/mensile?

Soluzione 1:

Suggerisco anche di usare 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

Soluzione 2:

Ciò che Zypher stava dicendo su rrdtool (e qualsiasi altra cosa che lo utilizza come backend - MRTG, Cacti ecc.) è probabilmente corretto. RRDTool è progettato per essere uno strumento di analisi dei trend storici "mediati". Calcola la media e memorizza i contatori in incrementi sempre più non risoluti man mano che si va indietro nel tempo.

Questo è, tuttavia, configurabile impostando gli RRA in modo appropriato. Confesso di non sapere assolutamente nulla sulla configurazione di questi, tuttavia, e personalmente non ho mai avuto fortuna nel portarli oltre il mio set standard (15 minuti, 8 ore, 1 settimana, 1 mese, 1 anno). Consiglierei di esaminare la configurazione degli RRA in modo che si aspettino input giornalieri e forniscano il contatore della larghezza di banda da netstat. Otterrai alcuni dati storici molto interessanti e approfondimenti sui tuoi modelli di utilizzo.

Per rispondere al tuo problema attuale, per assicurarti di non superare un limite di larghezza di banda giornaliero; Consiglierei di prendere quotidianamente i contatori netstat per l'interfaccia in questione. Puoi confrontare il traffico di ieri all'ora t con i contatori di oggi all'ora t e scoprire quanto è stato trasferito. Probabilmente sarebbe sufficiente uno script semplice con una memorizzazione in un file di testo semplice del valore precedente. Puoi quindi disabilitare l'interfaccia se rilevi una larghezza di banda superata o monitorarla durante il giorno e notificare a un amministratore se ti stai avvicinando al limite.

Per ottenere i byte di input su un sistema OSX puoi utilizzare il seguente set di comandi:

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

Al contrario, l'output può essere ottenuto con:

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

Potresti inserire i contatori pertinenti in un file flat archiviato da qualche parte e confrontarlo con:

#!/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

Regola semplicemente l'elaborazione di netstat in modo che corrisponda al tuo sistema (poiché so che non stai utilizzando OSX).

Soluzione 3:

Il pacchetto sysstat contiene l'utilità sar. Sar è un "profiler" di sistema estremamente configurabile, in mancanza di un termine migliore, che raccoglie varie statistiche ad intervalli predefiniti (cron). Questi sono memorizzati in file binari, uno per ogni giorno, che vengono in genere ruotati settimanalmente, ma configurabili. Il programma sar può essere utilizzato per estrarre le statistiche da questi file e questi risultati possono essere facilmente rappresentati graficamente con qualsiasi programma per ufficio o gnuplot (la mia preferenza personale).

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

Soluzione 4:

Vnstat è un ottimo monitor del traffico giornaliero / settimanale / mensile basato su console. Ti consente persino di monitorare il traffico in tempo reale, il che è comodo.

Utilizza anche pochissime risorse di sistema;)

Soluzione 5:

Vuoi MRTG che è uno strumento di monitoraggio della rete, è la cosa che produce tutti i grafici di rete che vedi sul web (con rdtool per trasformare i numeri in immagini)

Se non vuoi configurarlo o hai solo bisogno di qualcosa di più semplice, puoi usare iptables per registrare il trasferimento dei dati.


Linux
  1. Come usare il comando mtr di Linux

  2. Come creare una condivisione di rete tramite Samba su Linux

  3. Linux:come annullare la condivisione della rete per il processo corrente?

  4. Linux:come misurare e prevenire la deriva dell'orologio?

  5. Come posso montare un'unità di rete WD MyBook World in Linux?

Come trovare le interfacce di rete disponibili su Linux

Come modificare l'indirizzo MAC di rete in Linux

Come installare e utilizzare l'analizzatore del traffico di rete Linux basato sul Web di Darkstat

Come aggiungere route su Linux

Come configurare Linux come router statico

Come usare il comando netstat in Linux