Установка и настройка системы мониторинга трафика VnStat под Mandriva: различия между версиями
Misha (обсуждение | вклад) |
Misha (обсуждение | вклад) (→Перевод web морды на русский язык) |
||
(не показано 14 промежуточных версий этого же участника) | |||
Строка 3: | Строка 3: | ||
В этот статье я познакомлю Вас с системой мониторинга трафика '''vnStat'''. | В этот статье я познакомлю Вас с системой мониторинга трафика '''vnStat'''. | ||
− | VnStat — простая консольная утилита, но можно к ней прикрутить Web-интерфейс, и удобно смотреть сколько мегабайт было получено или отправлено на том или ином сетевом интерфейсе. Я аналогов этой утилиты не знаю но уверен они точно есть | + | '''VnStat''' — простая консольная утилита, но можно к ней прикрутить Web-интерфейс, и удобно смотреть, сколько мегабайт было получено или отправлено на том или ином сетевом интерфейсе. Я аналогов этой утилиты не знаю, но уверен они точно есть. |
==Установка vnStat== | ==Установка vnStat== | ||
Ставится одной командой | Ставится одной командой | ||
− | <pre> | + | <pre># urpmi vnstat</pre> |
+ | |||
==Настройка== | ==Настройка== | ||
− | В Mandriva vnStat сделан демоном. И вся его настройка сведена в файл /etc/vnstat.conf. И так правим данный файл | + | В Mandriva vnStat сделан демоном. И вся его настройка сведена в файл '''/etc/vnstat.conf'''. И так правим данный файл: |
<pre>#указываем интерфейс, на котором снимать статистику | <pre>#указываем интерфейс, на котором снимать статистику | ||
Interface "eth0" | Interface "eth0" | ||
Строка 16: | Строка 17: | ||
LogFile "/var/log/vnstat.log"</pre> | LogFile "/var/log/vnstat.log"</pre> | ||
Остальные параметры меняем по своему вкусу. | Остальные параметры меняем по своему вкусу. | ||
+ | |||
==Подготовка к первому запуску== | ==Подготовка к первому запуску== | ||
Для того, что бы можно было снимать статистику, нужно создать БД. В противном случае при запуске будет появляться сообщение: | Для того, что бы можно было снимать статистику, нужно создать БД. В противном случае при запуске будет появляться сообщение: | ||
Строка 28: | Строка 30: | ||
Error: Unable to read database "/var/lib/vnstat/eth1". | Error: Unable to read database "/var/lib/vnstat/eth1". | ||
Info: -> A new database has been created.</pre> | Info: -> A new database has been created.</pre> | ||
− | + | Этими командами vnStat создаёт базы данных трафика для интерфейса eth0 и eth1, лежать они будет в каталоге '''/var/lib/vnstat''' и называться просто '''eth0''' и '''eth1'''.<br /> | |
− | + | Базы успешно созданы. Теперь можно запускать демон для сбора статистики: | |
<pre>#service vnstat start</pre> | <pre>#service vnstat start</pre> | ||
После запуска в log файле видим следующие строки | После запуска в log файле видим следующие строки | ||
Строка 35: | Строка 37: | ||
[2010.07.14 08:09:05] Daemon running with pid 1816. | [2010.07.14 08:09:05] Daemon running with pid 1816. | ||
[2010.07.14 08:09:05] Monitoring: eth0 eth1 </pre> | [2010.07.14 08:09:05] Monitoring: eth0 eth1 </pre> | ||
+ | |||
==Сбор статистики== | ==Сбор статистики== | ||
После первого запуска нужно обновить БД, иначе будут появляться сообщения при просмотре статистики: | После первого запуска нужно обновить БД, иначе будут появляться сообщения при просмотре статистики: | ||
Строка 127: | Строка 130: | ||
</pre> | </pre> | ||
==Установка vnstat PHP frontend (web морда)== | ==Установка vnstat PHP frontend (web морда)== | ||
− | Но ввиде, который мы попробовали выше, не всегда удобно пользоваться, особенно если нужно ещё показывать её начальству. Для этих целей был написана php-обвёртка для визуального отображения. Называется она vnstat PHP frontend и скачать можно | + | Но ввиде, который мы попробовали выше, не всегда удобно пользоваться, особенно если нужно ещё показывать её начальству. Для этих целей был написана php-обвёртка для визуального отображения. Называется она '''vnstat PHP frontend''' и скачать можно с сайта '''http://www.sqweek.com'''. |
− | + | [[Изображение:Vnstat www.png|thumb|200px|Внешний вид web морды]]<br /> | |
− | После скачивания распаковываем архив в каталог с вашим web сервером (например, у меня в /var/www/html/vnstat) и открываем там файл config.php и правим следующие параметры: | + | После скачивания распаковываем архив в каталог с вашим web сервером (например, у меня в /var/www/html/vnstat) и открываем там файл '''config.php''' и правим следующие параметры: |
<pre> | <pre> | ||
$language = 'en'; | $language = 'en'; | ||
$iface_list = array('eth0', 'eth1',); | $iface_list = array('eth0', 'eth1',); | ||
− | $iface_title[' | + | $iface_title['eth1'] = 'Интернет'; |
$iface_title['eth0'] = 'Локальный'; | $iface_title['eth0'] = 'Локальный'; | ||
$vnstat_bin = '/usr/bin/vnstat';</pre> | $vnstat_bin = '/usr/bin/vnstat';</pre> | ||
Строка 140: | Строка 143: | ||
И теперь по адресу http://www.dns_name/vnstat можно зайти и насладится статистикой. | И теперь по адресу http://www.dns_name/vnstat можно зайти и насладится статистикой. | ||
===Перевод web морды на русский язык=== | ===Перевод web морды на русский язык=== | ||
+ | Отправил файл перевода разработчику, так что если он там уже будет, то ничего кроме, как указать настройки языка в файле c'''onfig.php''', делать не нужно, а если нет, то:<br /> | ||
Все очень просто копируем файл '''.../vnstat/lang/en.php''' в '''.../vnstat/lang/ru.php''' и редактируете последний, например: | Все очень просто копируем файл '''.../vnstat/lang/en.php''' в '''.../vnstat/lang/ru.php''' и редактируете последний, например: | ||
<pre>// main table headers | <pre>// main table headers | ||
$L['Summary'] = 'Итого'; | $L['Summary'] = 'Итого'; | ||
− | $L['Top 10 days'] = ' | + | $L['Top 10 days'] = 'Топ 10 дней'; |
$L['Last 24 hours'] = 'Последние 24 часа'; | $L['Last 24 hours'] = 'Последние 24 часа'; | ||
$L['Last 30 days'] = 'Последние 30 дней'; | $L['Last 30 days'] = 'Последние 30 дней'; | ||
Строка 149: | Строка 153: | ||
и тд.<br /> | и тд.<br /> | ||
Потом в файле ../vnstat/config.php поправить | Потом в файле ../vnstat/config.php поправить | ||
− | <pre>$language = 'ru';</pre> | + | <pre> //$locale = 'en_US.UTF-8'; |
+ | $locale = 'ru_RU.UTF-8'; | ||
+ | $language = 'ru'; | ||
+ | |||
+ | |||
+ | $L['datefmt_hours'] = '%H%P'; | ||
+ | $L['datefmt_hours_img'] = '%H';</pre> | ||
+ | Если Вам пригодится мой файл, его можно взять [ftp://volmed.org.ru/files/vnstat/ru.php тут]. | ||
+ | |||
+ | ===Улучшение внешнего вида=== | ||
+ | Мне показалось, что сделав выравнивание по середине, таблички смотрятся лучше<br /> | ||
+ | И так правим файл стилей, например, .../vnstat/themes/light/style.css, который используется по умолчанию. | ||
+ | <pre>#main td | ||
+ | { | ||
+ | text-align: center; | ||
+ | font-family: 'Trebuchet MS', Verdana, sans-serif; | ||
+ | font-size: 0.8em; | ||
+ | } | ||
+ | |||
+ | #main td.numeric_odd | ||
+ | { | ||
+ | color: #000; | ||
+ | background-color: #eef; | ||
+ | } | ||
+ | |||
+ | #main td.numeric_even | ||
+ | { | ||
+ | color: #000; | ||
+ | background-color: #fff; | ||
+ | }</pre> | ||
+ | Вообще там есть несколько стилей: '''dark''', '''espresso''', '''light''' и '''red''', которые можно установить в файле '''config.php''' в строке: | ||
+ | <pre>// Default theme | ||
+ | define('DEFAULT_COLORSCHEME', 'light');</pre> |
Текущая версия на 10:05, 17 января 2011
Стятья взята отсюда и отсюда и немного изменена, с учетом использования в Mandriva.
В этот статье я познакомлю Вас с системой мониторинга трафика vnStat.
VnStat — простая консольная утилита, но можно к ней прикрутить Web-интерфейс, и удобно смотреть, сколько мегабайт было получено или отправлено на том или ином сетевом интерфейсе. Я аналогов этой утилиты не знаю, но уверен они точно есть.
Содержание
Установка vnStat
Ставится одной командой
# 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 и eth1, лежать они будет в каталоге /var/lib/vnstat и называться просто eth0 и eth1.
Базы успешно созданы. Теперь можно запускать демон для сбора статистики:
#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['eth1'] = 'Интернет'; $iface_title['eth0'] = 'Локальный'; $vnstat_bin = '/usr/bin/vnstat';
и комментируем строчку
// $data_dir =
И теперь по адресу http://www.dns_name/vnstat можно зайти и насладится статистикой.
Перевод web морды на русский язык
Отправил файл перевода разработчику, так что если он там уже будет, то ничего кроме, как указать настройки языка в файле config.php, делать не нужно, а если нет, то:
Все очень просто копируем файл .../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'; $L['datefmt_hours'] = '%H%P'; $L['datefmt_hours_img'] = '%H';
Если Вам пригодится мой файл, его можно взять тут.
Улучшение внешнего вида
Мне показалось, что сделав выравнивание по середине, таблички смотрятся лучше
И так правим файл стилей, например, .../vnstat/themes/light/style.css, который используется по умолчанию.
#main td { text-align: center; font-family: 'Trebuchet MS', Verdana, sans-serif; font-size: 0.8em; } #main td.numeric_odd { color: #000; background-color: #eef; } #main td.numeric_even { color: #000; background-color: #fff; }
Вообще там есть несколько стилей: dark, espresso, light и red, которые можно установить в файле config.php в строке:
// Default theme define('DEFAULT_COLORSCHEME', 'light');