Попалась мне на глаза эта небольшая и простая утилитка для подсчёта трафика. Решил опробовать. Скажу сразу – подойдёт она для небольших офисов или домашнего использования.
1) Установка
Обновляем порты и ставим:
#portsnap fetch update && cd /usr/ports/net/vnstat && make install clean
2) Настройка.
После установки идём в директорию /usr/local/etc и копируем файл vnstat.conf.example в vnstat.conf. Открываем vnstat.conf и редактируем следующие опции:
#указываем интерфейс, на котором снимать статистику
Interface "fxp0"
#путь к базе со статистикой
DatabaseDir "/var/db/vnstat"
#включаем логгирование в файл /var/log/vnstat.log
UseLogging 1
LogFile "/var/log/vnstat.log"
Остальные параметры меняем по своему вкусу.
3) Подготовка к запуску.
Для того, что бы можно было снимать статистику, нужно создать БД. В противном случае при запуске будет появляться сообщение:
Error: Unable to open database directory "/var/db/vnstat".
Make sure it exists and is at least read enabled for current user.
Exiting...
Создаём папку /var/db/vnstat и создаём собственно БД для интерфейса:
#mkdir /var/db/vnstat
#vnstat -u -i fxp0
Error: Unable to read database "/var/db/vnstat/fxp0".
Info: -> A new database has been created.
База успешно создана. Теперь можно запускать демон для сбора статистики:
#vnstatd -d --config /usr/local/etc/vnstat.conf
Проверим всё ли нормально прошло:
#ps auxww | grep vnstat
root 9593 0,0 0,2 3392 1068 ?? Ss 12:02 0:00,01 vnstatd -d --config /usr/local/etc/vnstat.conf
Как видим, демон запущен.
В журнальном файле /var/log/vnstat.log можно наблюдать такие записи:
[2010.06.08 12:02:32] vnStat daemon 1.10 started.
[2010.06.08 12:02:32] Daemon running with pid 9593.
[2010.06.08 12:02:32] Monitoring: fxp0
4) Сбор статистики.
После первого запуска нужно обновить БД, иначе будут появляться сообщения при просмотре статистики:
#vnstat -i fxp0
fxp0: Not enough data available yet.
Обновляем:
#vnstat -u -i fxp0
Теперь можно наблюдать статистику:
#vnstat -i fxp0 Database updated: Tue Jun 8 12:07:32 2010 fxp0 since 08.06.2010 rx: 1,40 MiB tx: 190 KiB total: 1,58 MiB monthly rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- июн '10 1,40 MiB | 190 KiB | 1,58 MiB | 0,02 kbit/s ------------------------+-------------+-------------+--------------- estimated -- | -- | -- | daily rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- today 1,40 MiB | 190 KiB | 1,58 MiB | 0,30 kbit/s ------------------------+-------------+-------------+--------------- estimated -- | -- | -- |
Так же vnstat позволяет наблюдать статистику в режиме реального времени. Для этого использутся ключ -l (–live).
# vnstat -i fxp0 -l
Monitoring fxp0... (press CTRL-C to stop)
rx: 28 kbit/s 59 p/s tx: 0 kbit/s 0 p/s
После нажатия Ctrl+C увидим общую статистику за период real-time’a
fxp0 / traffic statistics rx | tx --------------------------------------+------------------ bytes 109 KiB | 6 KiB --------------------------------------+------------------ max 32 kbit/s | 4 kbit/s average 25,65 kbit/s | 1,41 kbit/s min 24 kbit/s | 0 kbit/s --------------------------------------+------------------ packets 1770 | 21 --------------------------------------+------------------ max 63 p/s | 2 p/s average 52 p/s | 0 p/s min 49 p/s | 0 p/s --------------------------------------+------------------ time 34 seconds
5) Просмотр статистики.
Статистику можно просматривать прямо с консоли:
– за день:
#vnstat -i fxp0 -d fxp0 / daily day rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- 08.06.2010 3,47 MiB | 302 KiB | 3,77 MiB | 0,70 kbit/s ------------------------+-------------+-------------+--------------- estimated -- | -- | -- |
– за час:
fxp0 12:17 ^ r | r | r | r | r | r | r | r | r | r -+---------------------------------------------------------------------------> | 13 14 15 16 17 18 19 20 21 22 23 00 01 02 03 04 05 06 07 08 09 10 11 12 h rx (KiB) tx (KiB) h rx (KiB) tx (KiB) h rx (KiB) tx (KiB) 13 0 0 21 0 0 05 0 0 14 0 0 22 0 0 06 0 0 15 0 0 23 0 0 07 0 0 16 0 0 00 0 0 08 0 0 17 0 0 01 0 0 09 0 0 18 0 0 02 0 0 10 0 0 19 0 0 03 0 0 11 0 0 20 0 0 04 0 0 12 3 554 302
и т.д.
Но в таком виде не всегда удобно пользоваться, особенно если нужно ещё показывать её начальству. Для этих целей был написана php-обвёртка для визуального отображения. Называется она vnstat PHP frontend и скачать можно по с сайта http://www.sqweek.com.
После скачивания распаковываем архив и открываем файл config.php и правим следующие параметры:
$language = 'en';
$iface_list = array('fxp0');
$iface_title['fxp0'] = 'Inet';
$vnstat_bin = '/usr/local/bin/vnstat';
и комментируем строчку
// $data_dir =
Теперь настраиваем ваш web-сервер так, что бы можно было попасть в папку с vnstat PHP frontend, заходим и наслаждаемся статистикой.