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:
[bash][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'[/bash]
a następnie zainstalować:
[bash][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.[/bash]
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
.
[bash][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.[/bash]
Kolejnym krokiem jest uruchomienie demona, który będzie zbierał dane vnstatd -d
. Po jakimś czasie możemy zacząć przeglądać zebrane informacje.
[bash][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[/bash]
Poleceniem vnstat -tr
możemy obejrzeć ruch z ostatnich 5 sekund, natomiast vnstat -l
pokaże nam bieżący ruch.