Всем хорошего дня, я возвращаюсь к написанию заметок на своем блоге. В моей жизни произошли очень важные для меня изменения (буду жить в своем частном доме, облагоустраиваю) и сейчас у меня появилось время в изучении и описывании моментов администрирования, пользования для своего блога.
В данной заметке я рассмотрю такую утилиту для CentOS 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 ~]$ hostname –f
server
Далее в основе этой заметке будет консольная утилита – vnstat:
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
при нажатии Ctrl–C – вывод статистики ниже
можно также вывод данной команды повесить в отдельную сессию в связке с утилитой 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
Как видно статистика по использованию наполняется, но хорошо бы было бы закрыть доступ, к данной статистики средствами стандартной 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
Вот собственно и всё по данной заметке и практических шагам для установки, настройки и некоторых нюансов, возникающих в работе. Конечно же, возможности данной утилиты vnstat огромны, прочитав справку и немного разобравшись в скриптах можно сотворить многое, если я в последствии и буду это делать, то конечно же новая заметка найдет отражение на моем блоге. А пока удачи и с уважением ekzorchik.
Действительно проделав все эти шаги – все получилось, это настоящий автор блога, у него только реальные и практические заметки.
Блог “Реальные заметки Ubuntu / Windows” заслуживает похвалы без каких либо преувеличений.
Спасибо!!!