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.


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).


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

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


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;)


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.


+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


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.


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


Obraz zniknął
— Kanadyjczyk Łukasz
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.