Установка и настройка системы мониторинга трафика VnStat под Mandriva
Стятья взята отсюда и немного изменена, с учетом использования в Mandriva.
В этот статье я познакомлю Вас с системой мониторинга трафика vnStat.
VnStat — простая консольная утилита, но можно к ней прикрутить Web-интерфейс, и удобно смотреть сколько мегабайт было получено или отправлено на том или ином сетевом интерфейсе. Я аналогов этой утилиты не знаю но уверен они точно есть. Вот скриншот.
Установка vnStat
Ставится одной командой
sudo urpmi vnstat
После установки vnStat готов к работе, без всяких дополнительных настроек зайдите в терминал и выполните команду
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 минут. Всё теперь зайдите на сайт вашей статистики, там уже будет вся статистика.