Linux: Jak mierzyć dzienny / miesięczny ruch sieciowy?

15

Muszę prowadzić statystyki dziennego ruchu sieciowego dla maszyny linux (CentOS 5).

Czy można to zrobić za pomocą standardowych / rodzimych narzędzi lub programów narzędziowych?
Czy muszę pobierać do tego specjalne oprogramowanie?

Dzięki.

Uwolnić się
źródło
1
Jak dokładne są statystyki? Innymi słowy, czy potrzebujesz czegoś wystarczająco konkretnego, aby przeliczyć rachunek za przepustowość, czy też średnie są dobre?
Zypher
Muszę dokładnie wiedzieć, ile ruchu zużywałem każdego dnia, ponieważ nie chcę przekraczać pewnych limitów.
GetFree
1
Wtedy nie chcesz żadnego z narzędzi opartych na RRD (kaktusów, MRTG, Munin itp.) RRD uśrednia liczby, więc nigdy nie otrzymasz dokładnej miary, a z czasem będzie gorzej.
Zypher

Odpowiedzi:

8

To, co Zypher mówił o rrdtool (i cokolwiek innego, co używa go jako backendu - MRTG, kaktusów itp.) Jest prawdopodobnie poprawne. RRDTool został zaprojektowany jako narzędzie do uśredniania historycznej analizy trendów. Uśrednia i przechowuje liczniki w coraz bardziej nierozstrzygniętych przyrostach wraz z upływem czasu.

Można to jednak skonfigurować, ustawiając odpowiednio RRA. Przyznaję jednak, że nie wiem absolutnie nic na temat ich konfigurowania i nigdy osobiście nie miałem szczęścia, aby uzyskać je poza moim standardowym zestawem (15 minut, 8 godzin, 1 tydzień, 1 miesiąc, 1 rok). Poleciłbym zastanowić się nad skonfigurowaniem kontrolerów RRA, aby oczekiwał codziennych danych wejściowych i podawał licznik przepustowości z netstat. Otrzymasz bardzo ładne dane historyczne i wgląd w swoje wzorce użytkowania.

Aby rozwiązać bieżący problem, upewnij się, że nie przekroczysz dziennego limitu przepustowości; Polecam codzienne pobieranie liczników netstat dla danego interfejsu. Możesz porównać wczorajszy ruch w czasie t z dzisiejszymi licznikami w czasie t i dowiedzieć się, ile zostało przeniesione. Prawdopodobnie wystarczyłby prosty skrypt z płaską pamięcią plików tekstowych o poprzedniej wartości. Następnie możesz wyłączyć interfejs, jeśli wykryjesz przekroczenie przepustowości lub monitorujesz go w ciągu dnia i powiadomisz administratora, jeśli zbliżasz się do limitu.

Aby uzyskać bajty wejściowe w systemie OSX, możesz użyć następującego zestawu poleceń:

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

I odwrotnie, dane wyjściowe można uzyskać za pomocą:

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

Możesz wstawić odpowiednie liczniki do płaskiego pliku gdzieś zapisanego i porównać z:

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

Po prostu dostosuj przetwarzanie netstat do swojego systemu (ponieważ wiem, że nie korzystasz z OSX).

Jordan T. Cox
źródło
25

Sugeruję również użycie 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
źródło
4

Pakiet sysstat zawiera narzędzie sar. Sar jest niezwykle konfigurowalnym „profilerem” systemu, z braku lepszego terminu, który zbiera różne statystyki w określonych odstępach czasu (cron). Są one przechowywane w plikach binarnych, po jednym na każdy dzień, które zwykle są zmieniane co tydzień, ale można je konfigurować. Program sar może być używany do wyciągania statystyk z tych plików, a wyniki te można łatwo odczytać za pomocą dowolnego programu biurowego lub gnuplot (moje osobiste preferencje).

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

d34dh0r53
źródło
4

Vnstat to świetny monitor ruchu oparty na konsoli dziennej / tygodniowej / miesięcznej. Umożliwia nawet monitorowanie ruchu w czasie rzeczywistym, co jest przydatne.

Zużywa też bardzo mało zasobów systemowych;)

Hilton D.
źródło
2

Chcesz MRTG, który jest narzędziem do monitorowania sieci, który produkuje wszystkie wykresy sieciowe, które widzisz w Internecie (z rdtool do przekształcania liczb w obrazy)

Jeśli nie chcesz go konfigurować lub potrzebujesz czegoś prostszego, możesz użyć iptables do nagrywania transferu danych.

gbjbaanb
źródło
+1 za rozwiązanie iptables
GetFree
iptables link nie działa - może to? qaoverflow.com/question/…
twodayslate
1

Użyłem mrtg, jest to bardzo fajne rozwiązanie, a istnieją inne narzędzia, które wydają się interesujące i które dostarczają wielu informacji na temat ruchu o nazwie ntop sonda sieciowa, tutaj link do instalacji ntop na CentOS

Ali Mezgani
źródło
1

Albo MRTG, albo kaktusy. Kaktusy są trudne do skonfigurowania, ale dają bardzo ładne wykresy. MRTG jest łatwy do skonfigurowania, ale dla wszystkiego ładnego lub skomplikowanego jest dość trudny.

Aaron Brown
źródło
1

Munin to kolejne fajne narzędzie oparte na RRD, bardzo łatwe w konfiguracji; domyślne statystyki sieciowe są dość proste, ale łatwo jest dodać dodatkowe wtyczki. Załączam kopię dziennych i tygodniowych statystyk na jednym z moich serwerów; otrzymujesz również miesięczne i roczne statystyki na innej stronie.

Wykres sieci Munin

gareth_bowles
źródło
Obraz zniknął
Kanadyjczyk Łukasz