19 июл. 2011 г.

Установка и настройка vnstat + vnstat php frontend

Простенькая последовательность на "не забыть" по установке-настройке простенького же монитора трафика vnstat в Debian Squeeze, и не только.
apt-get install vnstat apache2 libapache2-mod-php5 php5-gd
Настройки в основном умолчальные (/etc/vnstat.conf), правим только интефейс (если хочется несколько, то через запятую):
#Interface "eth0"
Interface "ppp200"
Уводим логи в собственный файл вместо syslog:
#UseLogging 2
UseLogging 1
LogFile "/var/log/vnstatd.log"
Единоразово инициализируем базу:
root@demos:/home/interra/!# vnstat -e -i ppp200
Перезапускаем демон:
root@demos:/home/interra/!# service vnstat restart
Stopping vnStat daemon: vnstatd.
Starting vnStat daemon: vnstatd.
Убеждаемся, что все хорошо:
root@demos:/home/interra/!# cat /var/log/vnstatd.log
[2011.07.19 11:53:47] vnStat daemon 1.10 started.
[2011.07.19 11:53:47] Daemon running with pid 30757.
[2011.07.19 11:53:47] Monitoring: ppp200
Скачиваем веб-морду vnStat PHP Frontend отсюда (на момент написания версия 1.5.1), распаковываем в /var/www/vnstat.
Настройки находятся в файле  /var/www/vnstat/config.php. Для базового запуска достаточно переопределить интерфейсы:
$iface_list = array('ppp200');
$iface_title['ppp200'] = 'Internet';
Получать данные для отображения можно или запросом текущих данных, тогда указывается путь к бинарнику vnstat:
$vnstat_bin = '/usr/bin/vnstat';
или чтением данных из текстового дампа базы, выполненного командой вида vnstat --dumpdb -i $iface > /path/to/data_dir/vnstat_dump_$iface. В этом случае переменная $vnstat_bin комментируется, и описывается переменная $data_dir:
// $vnstat_bin = '/usr/bin/vnstat';
$data_dir = './dumps';
В приведенном примере полный путь к каталогу - /var/www/vnstat/dumps. Важно, чтобы файл с дампом назывался строго vnstat_dump_$iface, где $iface - имя интерфейса, за которым ведется мониторинг. Несколько интерфейсов - несколько файлов, каждый из которых заполняется отдельной командой.
Далее внесем в cron задание на периодическое обновление дампа такого вида, создав файлик в /etc/cron.d/ или вызвав редактор - crontab -e:
*/2 * * * * /usr/bin/vnstat --dumpdb -i ppp200 > /srv/www/vnstat/dumps/vnstat_dump_ppp200
Всегда используем в кроне только абсолютные пути!
Далее остается только перезапустить apache и обратиться браузером по адресу http://адрес_сервера/vnstat