Установка и настройка системы мониторинга трафика VnStat под Mandriva

Материал из Wiki МИАЦ ВО
Версия от 16:10, 13 июля 2010; Misha (обсуждение | вклад) (Новая страница: «Стятья взята [http://448dmg.ru/vnstat-ubuntu-293 отсюда] и немного изменена, с учетом использования в Mandriva.…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Стятья взята отсюда и немного изменена, с учетом использования в Mandriva.

В этот статье я познакомлю Вас с системой мониторинга трафика vnStat.

VnStat — простая консольная утилита, но можно к ней прикрутить Web-интерфейс, и удобно смотреть сколько мегабайт было получено или отправлено на том или ином сетевом интерфейсе. Я аналогов этой утилиты не знаю но уверен они точно есть. Вот скриншот.

Установка vnStat

Ставится одной командой

sudo urpmi vnstat<pre>
После установки vnStat готов к работе, без всяких дополнительных настроек зайдите в терминал и выполните команду 
<pre>man vnstat

Вы увидите мануал по vnStat, в принципе, там всё подробно написано. Но напишу пару подсказок как всё работает.</ br> Для того чтобы сказать vnstat’у чтобы он отслеживал трафик через интерфейс eth0 надо выполнить команду

sudo vnstat -u -i eth0

Этой команды vnStat создаёт базу данных трафика для интерфейса eth0, лежать она будет в каталоге /var/lib/vnstat и называться просто eth0. Так же эта команда обновляет статистику по интерфейсу eth0 (-u значит update). Вообще статистика сама обновляется с какой-то периодичностью. Для просмотра общей статистики трафика через интерфейс eth0 выполните команду vnstat -i eth0

результат этой команды будет выглядеть следующим образом.


rx — исходящий трафик tx — входящий трафик estimated - ожидаемый

Команда vnstat -h -i eth0

Выведет статистику по часам, выглядит это так


Так же доступны параметры -d, -w, -m который выводят статистику по дням, неделям и месяцам соответственно. Ещё доступен параметр -l выводит трафик в настоящее время типа live. Можно состовлять свои запросы к базе данных об этом можно почитать в мануале. Всё это конечно хорошо но для удобного восприятия данных было бы не плохо иметь графический интерфейс, он есть, есть gui web-интерфейс от производителей, он написан на CGI-скриптах, а есть vnstat PHP frontend интерфейс разработанный каким-то добрым человеком на PHP. Я пользуюсь интерфейсом на PHP, про него я и расскажу.

Скачать его можно отсюда http://www.sqweek.com/sqweek/index.php?p=1. Вы скачаете архив из php файлов которые обеспечивают работу графического интерфейса. Создайте новый виртуальных хост в Apache или скопируйте эту папку в домашнюю папку уже существующего хоста и введите адрес в браузер, допустим http://site1.ru/nvStat вы попадёте на страницу статистики, но скорее всего вам будет показана нулевая статистика. Надо всё настроить, конфигурация интерфейса происходит через файл config.php, Вы его скачали вместе с другими файлами vnstat PHP frontend.

В этом файле надо обратить обратить внимание на эту часть

   // 
   // There are two possible sources for vnstat data. If the $vnstat_bin 
   // variable is set then vnstat is called directly from the PHP script 
   // to get the interface data. 
   // 
   // The other option is to periodically dump the vnstat interface data to 
   // a file (e.g. by a cronjob). In that case the $vnstat_bin variable 
   // must be cleared and set $data_dir to the location where the dumps 
   // are stored. Dumps must be named 'vnstat_dump_$iface'. 
   // 
   // You can generate vnstat dumps with the command: 
   //   vnstat --dumpdb -i $iface > /path/to/data_dir/vnstat_dump_$iface 
   // 
   $vnstat_bin = ; 
   $data_dir = './dumps';

Она гласит о том что есть два способа получения данных web-интерфесом: первый- какойто непонятный и второй через дамп базы данных по интерфейсу(имеются ввиду те базы данных которые вы создали при помощи команды sudo vnstat -u -i eth0, напомню они лежат в /var/lib/vnstat). Короче, для того чтобы интерфейс получал данные о трафике через итерфейс eth0 надо сделать дамп базы eth0, я делаю это командой sudo vnstat –dumpdb -i eth0 > /var/lib/vnstat/dumps/vnstat_dump_eth0 , и указать в конфигурационном файле в параметр $data_dir путь к директории с дампами базы данных в моём случае

   $data_dir = '/var/lib/vnstat/dumps/';

Но так как статистика всё время меняется, надо всё время обновлять этот дамп, с этим отлично справляется cron. Просто внесём эту команду в таблицу задач cron’а(как работать с крон написано тут).

  • /15 * * * * sudo vnstat -u -i eth0
  • /15 * * * * sudo vnstat --dumpdb -i eth0 > /var/lib/vnstat/dumps/vnstat_dump_eth0

У меня ещё через cron обновляется сама база статистики каждые 15 минут. Всё теперь зайдите на сайт вашей статистики, там уже будет вся статистика.