Ciekawym narzędziem do analizowania ruchu i obciążenia sieciowego na serwerze jest vnStat. Aplikacja ta dostępna jest dla Linuksa oraz systemów BSD. Do zbierania informacji o ruchu sieciowym wykorzystuje dane zebrane przez kernel. Oznacza to, że vnStat nie podsłuchuje żadnego interfejsu sieciowego i nie ma konieczności uruchamianie jego na koncie root. Program wydawany jest na licencji GPL.

Instalacja

Pobrany plik vnstat-1.10.tar.gz należy rozpakować, a następnie czeka nas kompilacja programu:

[root@herbatnik vnstat-1.10]# make
make -C src
make[1]: Wej[cie do katalogu `/usr/src/vnstat-1.10/src'
gcc -O2   -c -o vnstat.o vnstat.c
gcc -O2   -c -o ifinfo.o ifinfo.c
gcc -O2   -c -o dbxml.o dbxml.c
gcc -O2   -c -o dbshow.o dbshow.c
gcc -O2   -c -o dbaccess.o dbaccess.c
gcc -O2   -c -o dbmerge.o dbmerge.c
gcc -O2   -c -o common.o common.c
gcc -O2   -c -o misc.o misc.c
gcc -O2   -c -o cfg.o cfg.c
gcc -O2   -c -o traffic.o traffic.c
gcc  vnstat.o ifinfo.o dbxml.o dbshow.o dbaccess.o dbmerge.o common.o misc.o cfg.o traffic.o -lm -o vnstat
gcc -O2   -c -o vnstatd.o vnstatd.c
gcc -O2   -c -o dbcache.o dbcache.c
gcc  vnstatd.o ifinfo.o dbaccess.o dbcache.o common.o misc.o cfg.o -lm -o vnstatd
make[1]: Opuszczenie katalogu `/usr/src/vnstat-1.10/src'

a następnie zainstalować:

[root@herbatnik vnstat-1.10]# make install
Installing vnStat...
install -d -m 755 /usr/bin /usr/sbin /usr/share/man/man1 /usr/share/man/man5 /var/lib/vnstat
install -s -m 755 src/vnstat /usr/bin
install -s -m 755 src/vnstatd /usr/sbin
install -m 644 man/vnstat.1 /usr/share/man/man1
install -m 644 man/vnstatd.1 /usr/share/man/man1
install -m 644 man/vnstat.conf.5 /usr/share/man/man5

No startup script or cron entry has been installed. See the
INSTALL document for instructions on how to enable vnStat.

Na stronie projektu przygotowane zostały również skrypty /etc/init.d dla takich systemów jak: Debian / Ubuntu, RedHat / Fedora / CentOS, Arch (/etc/rc.d), openSUSE.

Aplikacja potrafi monitorować kilka interfejsów sieciowych w jednym momencie. Nie obciąża systemy, a zebrane dane mogą być prezentowane w formie statystyk dziennych, tygodniowych i miesięcznych.

Pierwsze uruchomienie

Przed pierwszym uruchomieniem należy stworzyć plik z bazą danych dla ruchu sieciowego. Bazy tworzymy osobno dla każdego interfejsu. Przykładowo dla interfejsów eth0 oraz eth1.

[root@herbatnik vnstat-1.10]# vnstat -u -i eth0
Error: Unable to read database "/var/lib/vnstat/eth0".
Info: -> A new database has been created.
[root@herbatnik vnstat-1.10]# vnstat -u -i eth1
Error: Unable to read database "/var/lib/vnstat/eth1".
Info: -> A new database has been created.

Kolejnym krokiem jest uruchomienie demona, który będzie zbierał dane vnstatd -d. Po jakimś czasie możemy zacząć przeglądać zebrane informacje.

[root@herbatnik vnstat-1.10]# vnstat

                      rx      /      tx      /     total    /   estimated
 eth1:
       Aug '10       131 KiB  /       0 KiB  /     131 KiB  /       0 KiB
         today       131 KiB  /       0 KiB  /     131 KiB  /      --

 eth0:
       Aug '10     21.92 MiB  /    9.97 MiB  /   31.89 MiB  /   35.00 MiB
         today     21.92 MiB  /    9.97 MiB  /   31.89 MiB  /      67 MiB

Poleceniem vnstat -tr możemy obejrzeć ruch z ostatnich 5 sekund, natomiast vnstat -l pokaże nam bieżący ruch.