Для лучшего восприятия статистики полученной с помощью программы vnstat можно установить веб морду — vnstat PHP frontend.
Настройка vnstat описана здесь.
Скачиваем последнюю версию с сайта разработчика. На момент написания статьи аутуальная версия 1.4.
Для установки, настройки и всех манипуляций не требуются права root.
Для установки, в корне сайта создаем директорию vnstat и распаковываем туда все файлы из скачанного тарбола. В данной директории создадим директорию, например dumps, где будет находится статистика полученная от программы vnstat.
Настраиваем конфигурационный файл — config.php
<?php//Указываем интерфейс для которого будет отображатся статистика, если интерфейсов несколько, то через запятую указываются все.
$iface_list = array('eth0');// Указываем отображаемое название для нашего интерфейса. Лишние можно закоментировать или удалить.
$iface_title['eth0'] = 'Интернет';
// $iface_title['eth0:1'] = 'Internet';
// $iface_title['sixxs'] = 'SixXS IPv6';//Здесь задаются пути до скриптов vnstat PHP frontend и для директрии из которой скрипт будет брать статистику.
$vnstat_bin ='';
$data_dir = './dumps';// Можно выбрать графический формат: svg или png (при выборе png, графики будут выводиться в графическом формате, в виде картинки).
$graph_format='svg';// Путь к шрифтам для графики в формате PNG, ну у нас все в корне скрипта.
define('GRAPH_FONT',dirname(__FILE__).'/VeraBd.ttf');// Шрифт для графики в формате SVG.
define('SVG_FONT', 'Verdana');// Выбор цветовой схемы, здесь их 2 - light и red, но можно и свою создать.
define('DEFAULT_COLORSCHEME', 'red');$colorscheme['light'] = array(
'stylesheet' => 'vnstat.css',
'image_background' => array( 255, 255, 255, 0 ),
'graph_background' => array( 220, 220, 230, 0 ),
'graph_background_2' => array( 205, 205, 220, 0 ),
'grid_stipple_1' => array( 140, 140, 140, 0 ),
'grid_stipple_2' => array( 200, 200, 200, 0 ),
'border' => array( 0, 0, 0, 0 ),
'text' => array( 0, 0, 0, 0 ),
'rx' => array( 190, 190, 20, 50 ),
'rx_border' => array( 40, 80, 40, 90 ),
'tx' => array( 130, 160, 100, 50 ),
'tx_border' => array( 80, 40, 40, 90 )
);$colorscheme['red'] = array(
'stylesheet' => 'vnstat_red.css',
'image_background' => array( 225, 225, 225, 0 ),
'graph_background' => array( 220, 220, 230, 0 ),
'graph_background_2' => array( 205, 205, 220, 0 ),
'grid_stipple_1' => array( 140, 140, 140, 0 ),
'grid_stipple_2' => array( 200, 200, 200, 0 ),
'border' => array( 0, 0, 0, 0 ),
'text' => array( 0, 0, 0, 0 ),
'rx' => array( 190, 20, 20, 50 ),
'rx_border' => array( 80, 40, 40, 90 ),
'tx' => array( 130, 130, 130, 50 ),
'tx_border' => array( 60, 60, 60, 90 )
);
?>
В принципе все, можно проверить работу скрипта набрав в браузере адрес своего сайта в таком виде — http://mysite.ru/vnstat/ Скрипт должен работать. Но статистика пока не отображается.
Чтобы отображалась статистика, ее нужно взять у программы vnstat и предоставить скрипту vnstat PHP frontend.
Делается это командой с таким синтаксисом vnstat --dumpdb -i $iface > /path/to/data_dir/vnstat_dump_$iface
Соответственно вместо $iface требуемый интерфейс, например eth0, вместо vnstat_dump_$iface — vnstat_dump_eth0, /path/to/data_dir/ путь до директории dumps.
Пример команды: vnstat --dumpdb -i eth0 > /home/gealex/www/gealex.ru/public_html/vnstat/dumps/vnstat_dump_eth0
И для удобства, что бы не выполнять данную команду вручную перед каждым просмотром статистики, можно ее доверить cron.
Так как база самой программы vnstat обновляется каждые 5 минут начиная с 00 минут кажого часа, я сделал обновление базы скрипта на минуту позднее и то же каждые 5 минут.
Запись для cron — 1,6,11,16,21,26,31,36,41,46,51,56 * * * * vnstat --dumpdb -i eth0 > /home/gealex/www/gealex.ru/public_html/vnstat/dumps/vnstat_dump_eth0
Все, теперь на своем сайте всегда можно видеть свежую статистику сервера — http://gealex.ru/vnstat.
Вы должны войти, чтобы оставлять комментарии.

13 марта, 2009 9:56
Настроил все по статье, работает! Если кому нужно — переведенная веб морда vnstat PHP frontend 1.4.1 .
11 апреля, 2009 10:04
Скажи для работы скрипта на сервере надо устанавливать сам Vnstat?
11 апреля, 2009 15:13
Да, естественно.
Минимум что нужно сделать это установить сам vnstat и запустить создав базу данных vnstat -u -i eth0 .
18 августа, 2009 3:38
Подскажите точнее на счет вывода граффического рисунка.. все настроил.. все работает.. выводит инфу прекрасно… но вот картинку ни в ПНГ, ни в СВГ не показывает.. что может быть не так? Подскажите, пожалуйста. Заранее благодарю!
И кстати… если у меня vnstat на шлюзе стоит, замеры траффика правильно показывает, Вы не проверяли в действительности?
18 августа, 2009 12:36
Такс, значит SVG у меня показывает графики, но ПНГ не отображает картинки.
И еще когда я ставлю vnStat SVG frontend , у меня при make install отображается:
root@ubuntu:/var/www/vnstat4# make install
Installing the administration pages…
cp: cannot stat `src/admin/{index.xhtml,index.xsl,sidebar.xml,sidebar.xsl,vnstat.js,vnstat.css}’: No such file or directory
make: *** [install] Error 1
В чем проблемка?
2 сентября, 2009 8:55
На счет отображения графики, нужно проверить правильность путей в конфиге, для PNG важен правильно прописанный путь к VeraBd.ttf
vnStat SVG frontend это что? Если это vnstat PHP frontend, то в нем нет инструкции для make, это скрипт а не программа, устанавливается путем копирования файлов в нужную директорию.
vnstat правильно показывает статистику, он ее берет из ядра.