Установка и настройка системы мониторинга трафика VnStat под Mandriva
Стятья взята отсюда и отсюда и немного изменена, с учетом использования в Mandriva.
В этот статье я познакомлю Вас с системой мониторинга трафика vnStat.
VnStat — простая консольная утилита, но можно к ней прикрутить Web-интерфейс, и удобно смотреть сколько мегабайт было получено или отправлено на том или ином сетевом интерфейсе. Я аналогов этой утилиты не знаю но уверен они точно есть. Вот скриншот.
Содержание
Установка vnStat
Ставится одной командой
sudo urpmi vnstat
Настройка
В Mandriva vnStat сделан демоном. И вся его настройка сведена в файл /etc/vnstat.conf. И так правим данный файл:
#указываем интерфейс, на котором снимать статистику Interface "eth0" #включаем логгирование в файл /var/log/vnstat.log UseLogging 1 LogFile "/var/log/vnstat.log"
Остальные параметры меняем по своему вкусу.
Подготовка к первому запуску
Для того, что бы можно было снимать статистику, нужно создать БД. В противном случае при запуске будет появляться сообщение:
Error: Unable to open database directory "/var/lib/vnstat". Make sure it exists and is at least read enabled for current user. Exiting...
Создаём БД для нужных интерфейсов интерфейсов. Их может быть несколько, например, eth0 и eth1:
# vnstat -u -i eth0 Error: Unable to read database "/var/lib/vnstat/eth0". Info: -> A new database has been created. # vnstat -u -i eth1 Error: Unable to read database "/var/lib/vnstat/eth1". Info: -> A new database has been created.
Этой команды vnStat создаёт базу данных трафика для интерфейса eth0, лежать она будет в каталоге /var/lib/vnstat и называться просто eth0.
База успешно создана. Теперь можно запускать демон для сбора статистики:
#service vnstat start
После запуска в log файле видим следующие строки
[2010.07.14 08:09:05] vnStat daemon 1.9 started. [2010.07.14 08:09:05] Daemon running with pid 1816. [2010.07.14 08:09:05] Monitoring: eth0 eth1
Сбор статистики
После первого запуска нужно обновить БД, иначе будут появляться сообщения при просмотре статистики:
#vnstat -i eth0 eth0: Not enough data available yet.
Обновляем:
#vnstat -u -i eth0 #vnstat -u -i eth1
Теперь можно наблюдать статистику, например для eth1:
# vnstat -i eth1 Database updated: Wed Jul 14 08:09:00 2010 eth1 since 07/13/10 rx: 770.77 MiB tx: 7.21 GiB total: 7.96 GiB monthly rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- Jul '10 770.77 MiB | 7.21 GiB | 7.96 GiB | 57.93 kbit/s ------------------------+-------------+-------------+--------------- estimated 1.75 GiB | 16.75 GiB | 18.49 GiB | daily rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- yesterday 545.15 MiB | 3.44 GiB | 3.98 GiB | 385.96 kbit/s today 225.63 MiB | 3.76 GiB | 3.98 GiB | 1.14 Mbit/s ------------------------+-------------+-------------+--------------- estimated 662 MiB | 11.08 GiB | 11.73 GiB |
Так же vnstat позволяет наблюдать статистику в режиме реального времени. Для этого использутся ключ -l (--live).
# vnstat -i eth1 -l Monitoring eth1... (press CTRL-C to stop) rx: 92 kbit/s 73 p/s tx: 1.64 Mbit/s 145 p/s
После нажатия Ctrl+C увидим общую статистику за период real-time'a
eth1 / traffic statistics rx | tx --------------------------------------+------------------------ bytes 886 KiB | 12.88 MiB --------------------------------------+------------------------ max 764 kbit/s | 1.89 Mbit/s average 110.75 kbit/s | 1.65 Mbit/s min 32 kbit/s | 1.21 Mbit/s --------------------------------------+------------------------ packets 5449 | 9772 --------------------------------------+------------------------ max 128 p/s | 195 p/s average 85 p/s | 152 p/s min 61 p/s | 111 p/s --------------------------------------+------------------------ time 1.07 minutes
Просмотр статистики
Статистику можно просматривать прямо с консоли:
-за день:
# vnstat -i eth1 -d eth1 / daily day rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- 07/13/10 545.15 MiB | 3.44 GiB | 3.98 GiB | 385.96 kbit/s 07/14/10 228.78 MiB | 3.77 GiB | 3.99 GiB | 1.13 Mbit/s ------------------------+-------------+-------------+--------------- estimated 664 MiB | 10.98 GiB | 11.63 GiB |
-за час:
# vnstat -i eth1 -h eth1 08:19 ^ t | t t | t t | t t | t t | t t t | t t t t t t t t t t t t t | t t t t t t t t t t t t t | t t t t t t t t t t t t t t t | t rt rt t t t t t t t t t t t t -+---------------------------------------------------------------------------> | 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 00 01 02 03 04 05 06 07 08 h rx (KiB) tx (KiB) h rx (KiB) tx (KiB) h rx (KiB) tx (KiB) 09 0 0 17 128822 420781 01 74023 423685 10 0 0 18 129924 578792 02 14224 402120 11 0 0 19 48498 497348 03 14984 439416 12 0 0 20 52648 465780 04 42364 993196 13 0 0 21 51215 432292 05 39131 998606 14 0 0 22 50521 489028 06 9347 219620 15 0 0 23 48089 456491 07 1651 17518 16 48514 269577 00 18992 450503 08 23619 67793
Установка vnstat PHP frontend (web морда)
Но ввиде, который мы попробовали выше, не всегда удобно пользоваться, особенно если нужно ещё показывать её начальству. Для этих целей был написана php-обвёртка для визуального отображения. Называется она vnstat PHP frontend и скачать можно по с сайта http://www.sqweek.com.
После скачивания распаковываем архив в каталог с вашим web сервером (например, у меня в /var/www/html/vnstat) и открываем там файл config.php и правим следующие параметры:
$language = 'en'; $iface_list = array('eth0', 'eth1',); $iface_title['eth0'] = 'Интернет'; $iface_title['eth0'] = 'Локальный'; $vnstat_bin = '/usr/bin/vnstat';
и комментируем строчку
// $data_dir =
И теперь по адресу http://www.dns_name/vnstat можно зайти и насладится статистикой.
Перевод web морды на русский язык
Все очень просто копируем файл .../vnstat/lang/en.php в .../vnstat/lang/ru.php и редактируете последний, например:
// main table headers $L['Summary'] = 'Итого'; $L['Top 10 days'] = 'Максимальный за 10 дней'; $L['Last 24 hours'] = 'Последние 24 часа'; $L['Last 30 days'] = 'Последние 30 дней'; $L['Last 12 months'] = 'Последние 12 месяцев';
и тд.
Потом в файле ../vnstat/config.php поправить
//$locale = 'en_US.UTF-8'; $locale = 'ru_RU.UTF-8'; $language = 'ru';