Установка и настройка VnStat под Ubuntu.

Ubuntu, Системное администрирование

Теги: ,

В своём цикле статей про мониторинг серверов я уже написал про AWstats-систему просмотра трафика Web-сервера и про Munin-систему мониторинга параметров сервера. В этот статье я познакомлю Вас с системой мониторинга трафика vnStat.

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

Пример web-интерфейса nvStat.

Устаовка vnStat

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

sudo apt-get install vnstat

После установки vnStat готов к работе, без всяких дополнительных настроек зайдите в терминал и выполните команду

man vnstat

Вы увидите мануал по vnStat, в принципе, там всё подробно написано. Но напишу пару подсказок как всё работает.

Для того чтобы сказать vnstat’у чтобы он отслеживал трафик через интерфейс eth0 надо выполнить команду

sudo vnstat -u -i eth0

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

vnstat -i eth0

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

Пример работы nvStat.

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

Команда

vnstat -h -i eth0

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

Пример работы nvStat.

Так же доступны параметры -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 минут. Всё теперь зайдите на сайт вашей статистики, там уже будет вся статистика.

Похожие посты.

  1. Conky в Ubuntu
  2. Установка phpSysInfo в Ubuntu
  3. Установка и настройка Munin под Ubuntu.
  4. Установка и настройка AWstats на Ubuntu.

Комментарии: