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