Zawsze bardzo cieszę się kiedy znajduję jakąś ciekawą oraz przyjemną w użytkowaniu aplikację działającą pod konsolą. Jest tak dlatego, że bardzo cenię sobie lekkość i szybkość działania konsolowych programów, no i oczywiście mogę je uruchamiać na systemie pozbawionym iksów – czytaj serwerku.
Jakiś czas temu szukałem sposobu dzięki, któremu mógłbym w łatwy sposób monitorować ruch jaki generowany jest na interfejsie sieciowym serwerka.
Miałem pewne wymagania względem aplikacji użytej do tego celu:
- oczywisty fakt, serwerek nie ma iksów, więc aplikacja musiałaby działać pod konsolą
- nie powinna obciążać w znaczący sposób zasobów systemu, w końcu serwerek ma dla mnie ważniejsze zadania do wykonania niż monitoring trafficu
- chciałem też mieć wgląd do statystyk dziennych, tygodniowych i miesięcznych
Skontaktowałem się w tej sprawie z wujkiem Googlem. ;) Szukałem, szukałem i znalazłem! Wszystkie wymagania spełnił vnstat. :) Na samym już początku bardzo mnie zaskoczył, ponieważ po instalacji nie został uruchomiony żaden nowy demon. Okazało się, że vnstat nie ma demona. Podczas instalacji tworzone jest zadanie cron, które co pięć minut aktualizuje baze danych aplikacji (owa baza znajduje się w /var/lib/vnstat) z danymi zbieranymi przez jądro systemu w wirtualnym systemie plików procfs. Z mojego punktu widzenia była to wielka zaleta, ponieważ demon jest stale uruchomiony pochłaniając jakieś tam zasoby sprzętowe systemu. Aplikacja wymaga uruchomienia jej z konta roota tylko podczas tworzenia nowej bazy danych interfejsu lub podczas ręcznej aktualizacji bazy danych.
Instalacja
sudo apt-get install vnstat
– W Ubuntu i Debianie
Konfiguracja
W moim przypadku interfejsem sieciowym jest urządzenie ath0, więc prawdopodobnie musisz zamienić wpis ath0 na nazwę swojego interfejsu.
Tworzymy nową bazę danych dla konkretnego interfejsu:
sudo vnstat -u -i ath0
Korzystanie
Po jakimś czasie, kiedy zebrane już zostaną statystyki, będziemy mieli wgląd do nich.
franek@blog.pl:~$ vnstat
Database updated: Tue Feb 10 05:20:01 2009
ath0
received: 351.69 MB (85.2%)
transmitted: 61.10 MB (14.8%)
total: 412.80 MB
rx | tx | total
———————–+————+———–
today 351.69 MB | 61.10 MB | 412.80 MB
———————–+————+———–
estimated 1.53 GB | 271 MB | 1.79 GB
Wyświetlenie statystyk dziennych:
franek@blog.pl:~$ vnstat --days
ath0 / daily
day rx | tx | total
————————+————-+—————————————-
10.02. 352.53 MB | 61.28 MB | 413.81 MB %%%%%%%%%%%%%%%%%%%%%::::
————————+————-+—————————————-
estimated 1.51 GB | 268 MB | 1.78 GB
Wyświetlenie statystyk tygodniowych:
franek@blog.pl:~$ vnstat --weeks
ath0 / weekly
rx | tx | total
—————————-+—————+————–
last 7 days 352.53 MB | 61.28 MB | 413.81 MB
current week 352.53 MB | 61.28 MB | 413.81 MB
—————————-+—————+————–
estimated 1.99 GB | 353 MB | 2.34 GB
Wyświetlenie statystyk miesięcznych:
franek@blog.pl:~$ vnstat --months
ath0 / monthly
month rx | tx | total
————————-+————–+————————————–
Feb ’09 352.53 MB | 61.28 MB | 413.81 MB %%%%%%%%%%%%%%%%%%%:::
————————-+————–+————————————–
estimated 1.04 GB | 185 MB | 1.23 GB
Wyświetlenie dni z największymi trafficami:
franek@blog.pl:~$ vnstat --top10
ath0 / top 10
# day rx | tx | total
——————————-+————-+———————————
1 10.02.09 3.93 GB | 748.71 MB | 4.66 GB %%%%%%%%%%%%%%%:::
——————————-+————-+———————————
Wyświetlenie statystyk czasu rzeczywistego:
franek@blog.pl:~$ vnstat -i ath0 --live
Monitoring ath0… (press CTRL-C to stop)
rx: 240.20 kB/s 366 p/s tx: 31.48 kB/s 189 p/s^C
ath0 / traffic statistics
rx | tx
————————————–+—————————————-
bytes 36.03 MB | 5.96 MB
————————————–+—————————————-
max 265.44 kB/s | 31.48 kB/s
average 145.82 kB/s | 24.12 kB/s
min 71.58 kB/s | 14.10 kB/s
————————————–+—————————————-
packets 60092 | 30788
————————————–+—————————————-
max 387 p/s | 216 p/s
average 237 p/s | 121 p/s
min 147 p/s | 82 p/s
————————————–+—————————————-
time 4.22 minutes
Inne
Jeśli maszyna, której interfejsy sieciowe monitorujemy, posiada również zainstalowany serwer www z obsługą skryptów PHP, możemy pokusić się o stworzenie skryptu, dzięki któremu uzyskamy dostęp do statystyk z poziomu przeglądarki www:
sudo vim /var/www/statystyki_sieci.php
<?php
$staty = shell_exec('vnstat -m');
echo (''.$staty.'');
?>
vnstat PHP frontend
Jest to bardzo ciekawa i moim zdaniem przydatna nakładka na vnstat, oferuje ona wygodny frontend który pozwala szybko i efektywnie przeglądać statystyki połączenia internetowego. Aplikacja ta rysuje bardzo przyjemne dla oka, które to uatrakcyjniają przeglądanie statystyk. Oczywiście należy mieć zainstalowany serwer www z obsługą php, na przykład nginx. Sama instalacja vnstat PHP frontend jest bardzo prosta. Należy ze strony projektu sqweek.com pobrać najnowsze jego wydanie, aktualnie jest to wydanie oznaczone numerem 1.5.1:
wget http://www.sqweek.com/sqweek/files/vnstat_php_frontend-1.5.1.tar.gz
Po pobraniu należy rozpakować archiwum, polecam zmienić też nazwę katalogu:
tar -xvf vnstat_php_frontend-1.5.1.tar.gz
mv vnstat_php_frontend-1.5.1 vnstat
Teraz należy edytować ustawienia vnstat PHP frontend:
vim vnstat/config.php
Prawdopodobnie, należy skorygować ustawienia odnośnie interfejsów które mają być monitorowane, lokalizacji czy katalogu w którym znajduję się aplikacja. Ja zmieniłem następujące linijki w pliku konfiguracyjnym:
$language = 'en';
$iface_list = array('ppp0');
$iface_title['ppp0'] = 'Play';
//$iface_title['sixxs'] = 'SixXS IPv6';
$data_dir = '/home/frk/Projects/public_html/vnstat';
Na koniec należy przenieść katalog vnstat do katalogu serwera www.
Więcej informacji
Tak jak to zwykle bywa, więcej informacji uzyskasz korzystając z “magicznych komend” ;)
man vnstat
vnstat --help
Jest to bardzo wygodne oraz przydatne rozwiązanie, szczególnie kiedy używa się Internetu mobilnego z limitami transferów takiego jak Play Online, polecam też Onlitor – zarządzanie modemem.
11 lutego, 2009 at 18:51
Polecam “vnstat PHP frontend” do ściągnięcia z Sqweek.com
11 lutego, 2009 at 19:42
Logansan dzięki za info. :)
11 lutego, 2009 at 21:29
Na dole strony napisałeś, że jest “Valid XHTML & CSS”… Muszę się nie zgodzić.
11 lutego, 2009 at 21:38
A ja nie zgadzam z tym validatorem, twierdzi np. że błędem jest < przed strong w < strong > blabla < / strong > – więc wiesz gdzie mam taki validator?
12 lutego, 2009 at 12:50
Akurat w tym przypadku validator jest ok:P
franek@blog.pl:~$ vnstat --top10
Strong musi byc zamknięty prze P
12 lutego, 2009 at 13:02
Dobra poprawie się :P będę używał < p style = "font-weight:bold;">< / p > :)
9 lutego, 2011 at 11:41
A nie łatwiej używać programy "BitMeter OS" ? Dlaczego wszyscy dążą do tego żeby utrudniać sobie życie konsolą i tysiącem komend ?
pozdrawiam
9 lutego, 2011 at 13:44
LOL dlaczego utrudniać? Często, gęsto wpisanie komendy jest szybsze niż klikanie. Po za tym monitorowanie neta to nie jest priorytetem i powinno zjadać możliwie jak najmniej zasobów.
"Jakiś czas temu szukałem sposobu dzięki, któremu mógłbym w łatwy sposób monitorować ruch jaki generowany jest na interfejsie sieciowym serwerka."
Że niby mam iksy na serwerze zainstalować? O______________o
13 września, 2011 at 9:42
Może i X-y są lepsze ładniejsze itp, itd.
Pracuję od 15 lat z takimi co działają w większości na X-ach i …. wygrywam z nimi szybkością, dokładnością pracy i wieloma innymi aspektami. Dlaczego? bo nie używam X-ów ani innych okienek.
Zanim mój kolega dołączy się do swojej konsoli X-ów to ja już dawno skończę pracę i wrócę do picia swojej ulubionej kawy :)
Pozdrawiam X-owców :)
19 czerwca, 2013 at 12:33
a jak ściągać statystyki z interfejsów wirtualnych ? np.
osobno z eth0 i osobno z eth0:1 ? :)