Kategorie | Linux, Programy, Serwer

  

vnstat: statystyki ruchu sieciowego

Opublikowano 11 lutego 2009 przez Franek

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.

  

10 Comments For This Post

  1. Logansan Says:

    Polecam “vnstat PHP frontend” do ściągnięcia z Sqweek.com

  2. Franek Says:

    Logansan dzięki za info. :)

  3. NieNatemat Says:

    Na dole strony napisałeś, że jest “Valid XHTML & CSS”… Muszę się nie zgodzić.

  4. Franek Says:

    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?

  5. Kelo Says:

    Akurat w tym przypadku validator jest ok:P franek@blog.pl:~$ vnstat --top10
    Strong musi byc zamknięty prze P

  6. Franek Says:

    Dobra poprawie się :P będę używał < p style = "font-weight:bold;">< / p > :)

  7. Szalony Daniello Says:

    A nie łatwiej używać programy "BitMeter OS" ? Dlaczego wszyscy dążą do tego żeby utrudniać sobie życie konsolą i tysiącem komend ?

    pozdrawiam

  8. Franek Says:

    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

  9. kukielka Says:

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

  10. yavorr Says:

    a jak ściągać statystyki z interfejsów wirtualnych ? np.
    osobno z eth0 i osobno z eth0:1 ? :)

Leave a Reply

Polityka komentarzy

Wyszukiwane tagi: 78 161 71 199      
     
Green Dog Says

MiniBlog