Записки в хомяке

Личный блог

Для лучшего восприятия статистики полученной с помощью программы vnstat можно установить веб морду — vnstat PHP frontend.

vnstat PHP frontend

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.

  1. Настроил все по статье, работает! Если кому нужно — переведенная веб морда vnstat PHP frontend 1.4.1 http://slil.ru/27114867.

  2. Скажи для работы скрипта на сервере надо устанавливать сам Vnstat?

  3. Да, естественно.
    Минимум что нужно сделать это установить сам vnstat и запустить создав базу данных vnstat -u -i eth0 .
    http://gealex.ru/linux-45.html

  4. Подскажите точнее на счет вывода граффического рисунка.. все настроил.. все работает.. выводит инфу прекрасно… но вот картинку ни в ПНГ, ни в СВГ не показывает.. что может быть не так? Подскажите, пожалуйста. Заранее благодарю!

    И кстати… если у меня vnstat на шлюзе стоит, замеры траффика правильно показывает, Вы не проверяли в действительности?

  5. Такс, значит 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

    В чем проблемка?

  6. На счет отображения графики, нужно проверить правильность путей в конфиге, для PNG важен правильно прописанный путь к VeraBd.ttf

    vnStat SVG frontend это что? Если это vnstat PHP frontend, то в нем нет инструкции для make, это скрипт а не программа, устанавливается путем копирования файлов в нужную директорию.
    vnstat правильно показывает статистику, он ее берет из ядра.

Вы должны войти, чтобы оставлять комментарии.