Мониторим использование сетевого трафика на интерфейсах

Posted by

Всем хорошего дня, я возвращаюсь к написанию заметок на своем блоге. В моей жизни произошли очень важные для меня изменения (буду жить в своем частном доме, облагоустраиваю) и сейчас у меня появилось время в изучении и описывании моментов администрирования, пользования для своего блога.

В данной заметке я рассмотрю такую утилиту для 6.5 с помощью, которой можно мониторить сетевой траффик на интерфейсах системы, а статистику смотреть, используя, как командную строку, так и Web-ориентированное представление. Это нужно для того чтобы понимать, как мы задействуем сеть и сколько трафика через интерфейс проходит. Если у вас так же как и у меня выделенная машина занимается предоставлением удаленного доступа в домашнюю систему, то для себя это будет крайне интересно и познавательно. Но довольно лирики, переходим к практическому описанию:

Система установлена по заметке.

[ekzorchik@server ~]$ uname -a && cat /etc/redhat-release

Linux server 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

CentOS release 6.5 (Final)

[ekzorchik@server ~]$ sudo nano /etc/hosts

192.168.1.17 server server.polygon.local

[ekzorchik@server ~]$ sudo nano /etc/sysconfig/network

HOSTNAME=server

[ekzorchik@server ~]$ sudo service network restart

[ekzorchik@server ~]$ hostnamef

server

Далее в основе этой заметке будет консольная утилита – :

vnstat.x86_64 : Console-based network traffic monitor

[ekzorchik@server ~]$ sudo yum install vnstat –y

Далее запускаем сервис, который создаст базу для сетевых интерфейсов в системе:

[ekzorchik@server ~]$ sudo service vnstat start

Starting vnstatd: Zero database found, adding available interfaces…

«eth0» added, -1 Mbit bandwidth limit.

-> 1 interface added. Limits can be modified using the configuration file.

[ OK ]

Далее настраиваем автозапуск сервиса после перезагрузки системы:

[ekzorchik@server ~]$ sudo chkconfig vnstat on

За настройку демона отвечает конфигурационный файл: (включаем логирование в файл):

[ekzorchik@server ~]$ sudo nano /etc/vnstat.conf

UseFileLocking 1

# enable / disable logging (0 = disabled, 1 = logfile, 2 = syslog)

UseLogging 1

# file used for logging if UseLogging is set to 1

LogFile «/var/log/vnstat.log»

[ekzorchik@server ~]$ sudo service vnstat restart

Проверяем, пишутся ли логи работы демона:

[ekzorchik@server ~]$ sudo tail -f /var/log/vnstat.log

[2014.03.22 12:52:20] vnStat daemon 1.11 started.

[2014.03.22 12:52:20] Daemon running with pid 21091.

[2014.03.22 12:52:20] Monitoring: eth0

Отобразить доступные интерфейсы в системе:

[ekzorchik@server ~]$ sudo vnstat —iflist

Available interfaces: lo eth0

Для ведения лога необходимо сначала создать базу данных нужного интерфейса. К примеру, для eth0:

[ekzorchik@server ~]$ sudo vnstat -u -i eth0

Теперь уже происходит мониторинг за трафиком.

Показать статистику:

[ekzorchik@server ~]$ sudo vnstat -q

Database updated: Sat Mar 22 03:19:19 2014

Показать статистику по использованию сетевого трафика

, где:

Rx – исходящий трафик

Tx – входящий трафик

Estimated – ожидаемый трафик

Показать статистику в реальном времени:

[ekzorchik@server ~]$ sudo vnstat -l

Monitoring eth0… (press CTRL-C to stop)

rx: 0 kbit/s 0 p/s tx: 0 kbit/s 0 p/s

при нажатии CtrlC – вывод статистики ниже

Показать статистику в реальном времени

 

 

 

 

 

 

 

можно также вывод данной команды повесить в отдельную сессию в связке с утилитой screen, чтобы в последствие можно было обратиться к ней и пронаблюдать собираемые данные, но это так к слову.

Показать статистику только по конкретному интерфейсу:

[ekzorchik@server ~]$ sudo vnstat -i eth0

Database updated: Sat Mar 22 03:26:04 2014

Показать статистику по конкретному интерфейсу по часам (‘-h’), по дням (‘-d), по неделям (‘-w), по месяцам (‘-m’).

Параметр ‘-dumpdb’ позволяет вывести данные из базы, чтобы в последствии использовать при создании собственных запросов:

[ekzorchik@server ~]$ sudo vnstat -i eth0 —dumpdb

version;3

active;1

interface;eth0

nick;eth0

created;1395472564

updated;1395473464

totalrx;0

totaltx;0

currx;629153606

curtx;9963763

totalrxk;46

totaltxk;71

btime;1395218542

d;0;1395472564;0;0;46;71;1

d;1;0;0;0;0;0;0

и т.д.

Для обнуления базы и остановки подсчета используем соответственно параметры: ‘-r/—reset’ и ‘—disable’:

[ekzorchik@server ~]$ sudo vnstat -i eth0 -u -r —disable

Для включения подсчета:

[ekzorchik@server ~]$ sudo vnstat -u -i eth0

Посмотреть доступные опции:

[ekzorchik@server ~]$ sudo vnstat –help

Посмотреть полный текст справки по использованию:

[ekzorchik@server ~]$ sudo vnstat –longhelp

Отлично, с консольным использованием выше все более или менее понятно, но как я сказал, в самом начале заметки к удобному просмотру статистических данных можно настроить Web-ориентированное представление на основе интерфейса из PHP файлов которые обеспечиваю работу графического интерфейса.

Устанавливаем в систему Web сервер Apache:

[ekzorchik@server ~]$ sudo yum install httpd php* –y

[ekzorchik@server ~]$ sudo chkconfig —add httpd

[ekzorchik@server ~]$ sudo chkconfig —levels 2345 httpd on

[ekzorchik@server ~]$ sudo nano /etc/httpd/conf/httpd.conf

ServerName server

User apache

Group apache

Скачиваем vnstat php frontend:

[ekzorchik@server ~]$ wget -c http://www.sqweek.com/sqweek/files/vnstat_php_frontend-1.5.1.tar.gz

Распаковываю скачанный архив:

[ekzorchik@server ~]$ tar xvfz vnstat_php_frontend-1.5.1.tar.gz

Перемещаем в каталог /var/www/html/vnstat:

[ekzorchik@server ~]$ sudo mkdir -p /var/www/html/vnstat

[ekzorchik@server ~]$ sudo mv vnstat_php_frontend-1.5.1 /var/www/html/vnstat/

Т.к. я использую SElinux на сервере, то для каталога нужно отменить использование:

[ekzorchik@server ~]$ sudo restorecon -Rv /var/www/html/vnstat/

Переходим к редактированию конфигурационного файла config.php:

[ekzorchik@server ~]$ sudo nano /var/www/html/vnstat/config.php

И приводим параметры к таким значениям:

$locale = ‘en_US.UTF-8’;

Статистика отображения берется на основании файлов из каталога /var/www/html/vnstat/lang, но если нужно можно создать свой, поменяв перевод на нужный язык:

$language = ‘en‘;

Комментируем или удаляем, если не используем IPv6:

// $iface_title[‘sixxs’] = ‘SixXS IPv6’;

$iface_list = array(‘eth0’);

Сохраняем внесенные изменения в файле.

Создаем каталог для дампов:

[ekzorchik@server ~]$ sudo mkdir –p /var/www/html/vnstat/dumps

Теперь создаем дампы для интерфейсов (а):

[ekzorchik@server ~]$ sudo -s

[root@server ekzorchik]# vnstat —dumpdb -i eth0 > /var/www/html/vnstat/dumps/vnstat_dump_eth0

[root@server ekzorchik]# exit

Exit

Правильно выставляем права на каталог vnstat:

[ekzorchik@server ~]$ sudo chown -R apache:apache /var/www/html/vnstat

Перезапускаем Web-сервис Apache:

[ekzorchik@server ~]$ sudo service httpd restart

Далее открываем браузер и в строке адреса указываем, либо FQDN/IP системы с префиксом vnstat для отображения сетевой статистики:

К примеру, у меня: http://192.168.1.17/vnstat

Web-ориентированное представление статистики посредством браузера

 

Как видно статистика по использованию наполняется, но хорошо бы было бы закрыть доступ, к данной статистики средствами стандартной apache авторизации:

[ekzorchik@server ~]$ sudo nano /etc/httpd/conf.d/vnstat.conf

Alias /vnstat/ «/var/www/html/vnstat/»

<Directory «/var/www/html/vnstat/»>

AuthType Basic

AuthName «Private zone network statictics»

AuthUserFile /var/www/html/vnstat/.htpasswd

Require valid-user

</Directory>

Сохраняем внесенные изменения в файле

Проверяем, что внесенные изменения в конфиг корректны:

[ekzorchik@server ~]$ sudo apachectl graceful

Должно быть без ошибок, у меня ошибок нет.

Создаем пользователя для авторизации в приватной области:

[ekzorchik@server ~]$ sudo htpasswd -c /var/www/html/.htpasswd ekzorchik

New password: 712mbddr@

Re-type new password: 712mbddr@

Adding password for user ekzorchik

Чтобы изменения применились нужно, чтобы демон apache перечитал конфиги:

[ekzorchik@server ~]$ sudo /etc/init.d/httpd reload

Теперь при обращении к URL: http://192.168.1.17/vnstat, чтобы получить доступ к статистике нужно указать логин и пароль:

User name: ekzorchik

Password: 712mbddr@

И нажать кнопку OK

Защищаем доступ к статистике стандартной Apache авторизацией

Вот собственно и всё по данной заметке и практических шагам для установки, настройки и некоторых нюансов, возникающих в работе. Конечно же, возможности данной утилиты vnstat огромны, прочитав справку и немного разобравшись в скриптах можно сотворить многое, если я в последствии и буду это делать, то конечно же новая заметка найдет отражение на моем блоге. А пока удачи и с уважением ekzorchik.

One comment

  1. Действительно проделав все эти шаги — все получилось, это настоящий автор блога, у него только реальные и практические заметки.
    Блог «Реальные заметки Ubuntu / Windows» заслуживает похвалы без каких либо преувеличений.
    Спасибо!!!

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

12 − 4 =