Установка и настройка системы мониторинга трафика VnStat под Mandriva: различия между версиями

Материал из Wiki МИАЦ ВО
Перейти к навигации Перейти к поиску
(Установка vnStat)
(Установка vnStat)
Строка 8: Строка 8:
 
Ставится одной командой
 
Ставится одной командой
 
<pre>sudo urpmi vnstat</pre>
 
<pre>sudo urpmi vnstat</pre>
После установки vnStat готов к работе, без всяких дополнительных настроек зайдите в терминал и выполните команду
+
==Настройка==
<pre>man vnstat</pre>
+
В Mandriva vnStat сделан демоном. И вся его настройка сведена в файл /etc/vnstat.conf. И так правим данный файл
Вы увидите мануал по vnStat, в принципе, там всё подробно написано. Но напишу пару подсказок как всё работает.</ br>
+
<pre>#указываем интерфейс, на котором снимать статистику
Для того чтобы сказать vnstat’у чтобы он отслеживал трафик через интерфейс eth0 надо выполнить команду
+
Interface "eth0"
<pre>sudo vnstat -u -i eth0</pre>
+
#включаем логгирование в файл /var/log/vnstat.log
Этой команды vnStat создаёт базу данных трафика для интерфейса eth0, лежать она будет в каталоге '''/var/lib/vnstat''' и называться просто '''eth0'''. Так же эта команда обновляет статистику по интерфейсу eth0 (-u значит update). Вообще статистика сама обновляется с какой-то периодичностью.
+
UseLogging 1
Для просмотра общей статистики трафика через интерфейс eth0 выполните команду
+
LogFile "/var/log/vnstat.log"</pre>
vnstat -i eth0
+
Остальные параметры меняем по своему вкусу.
 +
==Подготовка к первому запуску==
 +
Для того, что бы можно было снимать статистику, нужно создать БД. В противном случае при запуске будет появляться сообщение:
 +
<pre>Error: Unable to open database directory "/var/lib/vnstat".
 +
Make sure it exists and is at least read enabled for current user.
 +
Exiting...</pre>
 +
Создаём  БД для нужных интерфейсов интерфейсов. Их может быть несколько, например, eth0 и eth1:
 +
<pre># vnstat -u -i eth0  
 +
Error: Unable to read database "/var/lib/vnstat/eth0".
 +
Info: -> A new database has been created.
 +
# vnstat -u -i eth1
 +
Error: Unable to read database "/var/lib/vnstat/eth1".
 +
Info: -> A new database has been created.</pre>
 +
Этой команды vnStat создаёт базу данных трафика для интерфейса eth0, лежать она будет в каталоге '''/var/lib/vnstat''' и называться просто '''eth0'''.<br />
 +
База успешно создана. Теперь можно запускать демон для сбора статистики:
 +
<pre>#service vnstat start</pre>
 +
После запуска в log файле видим следующие строки
 +
<pre>[2010.07.14 08:09:05] vnStat daemon 1.9 started.
 +
[2010.07.14 08:09:05] Daemon running with pid 1816.
 +
[2010.07.14 08:09:05] Monitoring: eth0 eth1 </pre>
 +
==Сбор статистики==
 +
После первого запуска нужно обновить БД, иначе будут появляться сообщения при просмотре статистики:
 +
<pre>#vnstat -i eth0
 +
eth0: Not enough data available yet.</pre>
 +
Обновляем:
 +
#vnstat -u -i eth0
 +
#vnstat -u -i eth1
 +
Теперь можно наблюдать статистику, например для eth1:
 +
<pre># vnstat -i eth1
 +
Database updated: Wed Jul 14 08:09:00 2010
  
результат этой команды будет выглядеть следующим образом.
+
  eth1 since 07/13/10
  
 +
          rx:  770.77 MiB      tx:  7.21 GiB      total:  7.96 GiB
  
 +
  monthly
 +
                    rx      |    tx      |    total    |  avg. rate
 +
    ------------------------+-------------+-------------+---------------
 +
      Jul '10    770.77 MiB |    7.21 GiB |    7.96 GiB |  57.93 kbit/s
 +
    ------------------------+-------------+-------------+---------------
 +
    estimated      1.75 GiB |  16.75 GiB |  18.49 GiB |
  
rx — исходящий трафик
+
  daily
tx — входящий трафик
+
                    rx     |    tx      |    total    |  avg. rate
estimated - ожидаемый
+
    ------------------------+-------------+-------------+---------------
 +
    yesterday    545.15 MiB |    3.44 GiB |    3.98 GiB |  385.96 kbit/s
 +
        today    225.63 MiB |    3.76 GiB |    3.98 GiB |    1.14 Mbit/s
 +
    ------------------------+-------------+-------------+---------------
 +
    estimated       662 MiB |  11.08 GiB |  11.73 GiB |</pre>
 +
Так же vnstat позволяет наблюдать статистику в режиме реального времени. Для этого использутся ключ -l (--live).
 +
<pre># vnstat -i eth1 -l
 +
Monitoring eth1...    (press CTRL-C to stop)
  
Команда
+
  rx:      92 kbit/s    73 p/s          tx:    1.64 Mbit/s  145 p/s</pre>
vnstat -h -i eth0
+
После нажатия Ctrl+C увидим общую статистику за период real-time'a
 +
<pre>eth1  /  traffic statistics
  
Выведет статистику по часам, выглядит это так
+
                          rx        |      tx
 +
--------------------------------------+------------------------
 +
  bytes                      886 KiB  |      12.88 MiB
 +
--------------------------------------+------------------------
 +
          max            764 kbit/s  |    1.89 Mbit/s
 +
      average          110.75 kbit/s  |    1.65 Mbit/s
 +
          min              32 kbit/s  |    1.21 Mbit/s
 +
--------------------------------------+------------------------
 +
  packets                      5449  |            9772
 +
--------------------------------------+------------------------
 +
          max                128 p/s  |        195 p/s
 +
      average                85 p/s  |        152 p/s
 +
          min                61 p/s  |        111 p/s
 +
--------------------------------------+------------------------
 +
  time                  1.07 minutes</pre>
 +
==Просмотр статистики==
 +
Статистику можно просматривать прямо с консоли: <br />
 +
-за день:
 +
<pre># vnstat -i eth1 -d
  
 +
eth1  /  daily
  
 +
        day        rx      |    tx      |    total    |  avg. rate
 +
    ------------------------+-------------+-------------+---------------
 +
      07/13/10    545.15 MiB |    3.44 GiB |    3.98 GiB |  385.96 kbit/s
 +
      07/14/10    228.78 MiB |    3.77 GiB |    3.99 GiB |    1.13 Mbit/s
 +
    ------------------------+-------------+-------------+---------------
 +
    estimated      664 MiB |  10.98 GiB |  11.63 GiB |</pre>
 +
-за час:
 +
<pre># vnstat -i eth1 -h
 +
eth1                                                                    08:19
 +
  ^                                                              t           
 +
  |                                                            t  t           
 +
  |                                                            t  t           
 +
  |                                                            t  t           
 +
  |                                                            t  t           
 +
  |                              t                            t  t           
 +
  |                          t  t  t  t  t  t  t  t  t  t  t  t  t           
 +
  |                          t  t  t  t  t  t  t  t  t  t  t  t  t           
 +
  |                        t  t  t  t  t  t  t  t  t  t  t  t  t  t  t         
 +
  |                        t rt rt  t  t  t  t  t  t  t  t  t  t  t  t         
 +
-+--------------------------------------------------------------------------->
 +
  |  09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 00 01 02 03 04 05 06 07 08   
 +
                                                                               
 +
h  rx (KiB)  tx (KiB)      h  rx (KiB)  tx (KiB)      h  rx (KiB)  tx (KiB)
 +
09          0          0    17    128822    420781    01      74023    423685
 +
10          0          0    18    129924    578792    02      14224    402120
 +
11          0          0    19      48498    497348    03      14984    439416
 +
12          0          0    20      52648    465780    04      42364    993196
 +
13          0          0    21      51215    432292    05      39131    998606
 +
14          0          0    22      50521    489028    06      9347    219620
 +
15          0          0    23      48089    456491    07      1651      17518
 +
16      48514    269577    00      18992    450503    08      23619      67793
 +
</pre>
 +
==Установка vnstat PHP frontend (web морда)==
 +
Но ввиде, который мы попробовали выше, не всегда удобно пользоваться, особенно если нужно ещё показывать её начальству. Для этих целей был написана php-обвёртка для визуального отображения. Называется она vnstat PHP frontend и скачать можно по с сайта http://www.sqweek.com.
  
Так же доступны параметры -d, -w, -m который выводят статистику по дням, неделям и месяцам соответственно. Ещё доступен параметр -l выводит трафик в настоящее время типа live. Можно состовлять свои запросы к базе данных об этом можно почитать в мануале. Всё это конечно хорошо но для удобного восприятия данных было бы не плохо иметь графический интерфейс, он есть, есть gui web-интерфейс от производителей, он написан на CGI-скриптах, а есть vnstat PHP frontend интерфейс разработанный каким-то добрым человеком на PHP. Я пользуюсь интерфейсом на PHP, про него я и расскажу.
+
После скачивания распаковываем архив в каталог с вашим web сервером (например, у меня в /var/www/html/vnstat)  и открываем там файл config.php и правим следующие параметры:
 
+
<pre>
Скачать его можно отсюда http://www.sqweek.com/sqweek/index.php?p=1. Вы скачаете архив из php файлов которые обеспечивают работу графического интерфейса. Создайте новый виртуальных хост в Apache или скопируйте эту папку в домашнюю папку уже существующего хоста и введите адрес в браузер, допустим http://site1.ru/nvStat вы попадёте на страницу статистики, но скорее всего вам будет показана нулевая статистика. Надо всё настроить, конфигурация интерфейса происходит через файл config.php, Вы его скачали вместе с другими файлами vnstat PHP frontend.
+
$language = 'en';
 
+
$iface_list = array('eth0', 'eth1',);
В этом файле надо обратить обратить внимание на эту часть
+
$iface_title['eth0'] = 'Интернет';
    //  
+
$iface_title['eth0'] = 'Локальный';
    // There are two possible sources for vnstat data. If the $vnstat_bin
+
$vnstat_bin = '/usr/bin/vnstat';</pre>
    // variable is set then vnstat is called directly from the PHP script
+
и комментируем строчку
    // to get the interface data.  
+
<pre>// $data_dir = </pre>
    //  
+
И теперь по адресу http://www.dns_name/vnstat можно зайти и насладится статистикой.
    // The other option is to periodically dump the vnstat interface data to
+
===Перевод web морды на русский язык===
    // a file (e.g. by a cronjob). In that case the $vnstat_bin variable
+
Все очень просто копируем файл '''.../vnstat/lang/en.php''' в '''.../vnstat/lang/ru.php''' и редактируете последний, например:
    // must be cleared and set $data_dir to the location where the dumps
+
<pre>// main table headers
    // are stored. Dumps must be named 'vnstat_dump_$iface'.  
+
$L['Summary'] = 'Итого';
    //  
+
$L['Top 10 days'] = 'Максимальный за 10 дней';
    // You can generate vnstat dumps with the command:  
+
$L['Last 24 hours'] = 'Последние 24 часа';
    //  vnstat --dumpdb -i $iface > /path/to/data_dir/vnstat_dump_$iface
+
$L['Last 30 days'] = 'Последние  30 дней';
    //
+
$L['Last 12 months'] = 'Последние 12 месяцев';</pre>
    $vnstat_bin = '';  
+
и тд.<br />
    $data_dir = './dumps';
+
Потом в файле ../vnstat/config.php поправить
 
+
<pre>$language = 'ru';</pre>
Она гласит о том что есть два способа получения данных 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 минут. Всё теперь зайдите на сайт вашей статистики, там уже будет вся статистика.
 

Версия 07:49, 14 июля 2010

Стятья взята отсюда и немного изменена, с учетом использования в Mandriva.

В этот статье я познакомлю Вас с системой мониторинга трафика vnStat.

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

Установка vnStat

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

sudo urpmi vnstat

Настройка

В Mandriva vnStat сделан демоном. И вся его настройка сведена в файл /etc/vnstat.conf. И так правим данный файл

#указываем интерфейс, на котором снимать статистику
Interface "eth0"
#включаем логгирование в файл /var/log/vnstat.log
UseLogging 1
LogFile "/var/log/vnstat.log"

Остальные параметры меняем по своему вкусу.

Подготовка к первому запуску

Для того, что бы можно было снимать статистику, нужно создать БД. В противном случае при запуске будет появляться сообщение:

Error: Unable to open database directory "/var/lib/vnstat".
Make sure it exists and is at least read enabled for current user.
Exiting...

Создаём БД для нужных интерфейсов интерфейсов. Их может быть несколько, например, eth0 и eth1:

# vnstat -u -i eth0 
Error: Unable to read database "/var/lib/vnstat/eth0".
Info: -> A new database has been created.
# vnstat -u -i eth1 
Error: Unable to read database "/var/lib/vnstat/eth1".
Info: -> A new database has been created.

Этой команды vnStat создаёт базу данных трафика для интерфейса eth0, лежать она будет в каталоге /var/lib/vnstat и называться просто eth0.
База успешно создана. Теперь можно запускать демон для сбора статистики:

#service vnstat start

После запуска в log файле видим следующие строки

[2010.07.14 08:09:05] vnStat daemon 1.9 started.
[2010.07.14 08:09:05] Daemon running with pid 1816.
[2010.07.14 08:09:05] Monitoring: eth0 eth1 

Сбор статистики

После первого запуска нужно обновить БД, иначе будут появляться сообщения при просмотре статистики:

#vnstat -i eth0
eth0: Not enough data available yet.

Обновляем:

#vnstat -u -i eth0
#vnstat -u -i eth1

Теперь можно наблюдать статистику, например для eth1:

# vnstat -i eth1
Database updated: Wed Jul 14 08:09:00 2010

   eth1 since 07/13/10

          rx:  770.77 MiB      tx:  7.21 GiB      total:  7.96 GiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       Jul '10    770.77 MiB |    7.21 GiB |    7.96 GiB |   57.93 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated      1.75 GiB |   16.75 GiB |   18.49 GiB |

   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     yesterday    545.15 MiB |    3.44 GiB |    3.98 GiB |  385.96 kbit/s
         today    225.63 MiB |    3.76 GiB |    3.98 GiB |    1.14 Mbit/s
     ------------------------+-------------+-------------+---------------
     estimated       662 MiB |   11.08 GiB |   11.73 GiB |

Так же vnstat позволяет наблюдать статистику в режиме реального времени. Для этого использутся ключ -l (--live).

# vnstat -i eth1 -l
Monitoring eth1...    (press CTRL-C to stop)

   rx:       92 kbit/s    73 p/s          tx:     1.64 Mbit/s   145 p/s

После нажатия Ctrl+C увидим общую статистику за период real-time'a

eth1  /  traffic statistics

                           rx         |       tx
--------------------------------------+------------------------
  bytes                      886 KiB  |       12.88 MiB
--------------------------------------+------------------------
          max             764 kbit/s  |     1.89 Mbit/s
      average          110.75 kbit/s  |     1.65 Mbit/s
          min              32 kbit/s  |     1.21 Mbit/s
--------------------------------------+------------------------
  packets                       5449  |            9772
--------------------------------------+------------------------
          max                128 p/s  |         195 p/s
      average                 85 p/s  |         152 p/s
          min                 61 p/s  |         111 p/s
--------------------------------------+------------------------
  time                  1.07 minutes

Просмотр статистики

Статистику можно просматривать прямо с консоли:
-за день:

# vnstat -i eth1 -d

 eth1  /  daily

         day         rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
      07/13/10    545.15 MiB |    3.44 GiB |    3.98 GiB |  385.96 kbit/s
      07/14/10    228.78 MiB |    3.77 GiB |    3.99 GiB |    1.13 Mbit/s
     ------------------------+-------------+-------------+---------------
     estimated       664 MiB |   10.98 GiB |   11.63 GiB |

-за час:

# vnstat -i eth1 -h
 eth1                                                                     08:19 
  ^                                                               t             
  |                                                            t  t             
  |                                                            t  t             
  |                                                            t  t             
  |                                                            t  t             
  |                              t                             t  t             
  |                           t  t  t  t  t  t  t  t  t  t  t  t  t             
  |                           t  t  t  t  t  t  t  t  t  t  t  t  t             
  |                        t  t  t  t  t  t  t  t  t  t  t  t  t  t  t          
  |                        t rt rt  t  t  t  t  t  t  t  t  t  t  t  t          
 -+---------------------------------------------------------------------------> 
  |  09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 00 01 02 03 04 05 06 07 08    
                                                                                
 h  rx (KiB)   tx (KiB)      h  rx (KiB)   tx (KiB)      h  rx (KiB)   tx (KiB) 
09          0          0    17     128822     420781    01      74023     423685
10          0          0    18     129924     578792    02      14224     402120
11          0          0    19      48498     497348    03      14984     439416
12          0          0    20      52648     465780    04      42364     993196
13          0          0    21      51215     432292    05      39131     998606
14          0          0    22      50521     489028    06       9347     219620
15          0          0    23      48089     456491    07       1651      17518
16      48514     269577    00      18992     450503    08      23619      67793

Установка vnstat PHP frontend (web морда)

Но ввиде, который мы попробовали выше, не всегда удобно пользоваться, особенно если нужно ещё показывать её начальству. Для этих целей был написана php-обвёртка для визуального отображения. Называется она vnstat PHP frontend и скачать можно по с сайта http://www.sqweek.com.

После скачивания распаковываем архив в каталог с вашим web сервером (например, у меня в /var/www/html/vnstat) и открываем там файл config.php и правим следующие параметры:

$language = 'en';
$iface_list = array('eth0', 'eth1',);
$iface_title['eth0'] = 'Интернет';
$iface_title['eth0'] = 'Локальный';
$vnstat_bin = '/usr/bin/vnstat';

и комментируем строчку

// $data_dir = 

И теперь по адресу http://www.dns_name/vnstat можно зайти и насладится статистикой.

Перевод web морды на русский язык

Все очень просто копируем файл .../vnstat/lang/en.php в .../vnstat/lang/ru.php и редактируете последний, например:

// main table headers
$L['Summary'] = 'Итого';
$L['Top 10 days'] = 'Максимальный за 10 дней';
$L['Last 24 hours'] = 'Последние 24 часа';
$L['Last 30 days'] = 'Последние  30 дней';
$L['Last 12 months'] = 'Последние 12 месяцев';

и тд.
Потом в файле ../vnstat/config.php поправить

$language = 'ru';