Наблюдение за сетевыми интерфейсами в Linux обычно не представляет собой какой-либо сложности. При помощи таких утилит, как sar, Iperf, и vnStat администратор может легко и удобным для себя образом отслеживать активность сетевых интерфейсов, как мгновенную, так и за последнее время. Сегодня мы рассмотрим известную многим утилиту vnStat. vnStat ведёт лог трафика за определённый период и хранит собранную статистику по каждому выбранному администратором интерфейсу, предоставляя доступ к ней в случае необходимости. vnStat, в отличие от снифферов, например таких, как Wireshark, не собирает информацию непосредственно с сетевого интерфейса, а анализирует данные, предоставляемые ядром через файловые системы proc и sys, что даёт возможность использовать эту утилиту даже непривилегированным пользователем.
Установка
vnStat в Ubuntu имеется в стандартных репозиториях, так что установка не должна вызвать каких-либо осложнений:
1 |
sudo apt-get install vnstat |
После установки будет выдано предупреждение о том, что база данных пуста. Не пугайтесь, это естественно, если в этой системе vnStat ещё никогда не работала. После того, как вы настроите vnStat должным образом, база данных будет наполняться информацией о статистике сетевого трафика, а пока она пуста.
Настройка и запуск
После установки vnStat необходимо инициализировать базы данных для интерфейсов для того, чтобы демон смог начать работу по сбору статистики. Делается это простой командой (замените eth0 на имя нужного инетрфейса):
1 2 3 |
$ sudo vnstat -i eth0 -u Error: Unable to read database "/var/lib/vnstat/eth0". Info: - A new database has been created. |
Повторите эту процедуру для всех интерфейсов, активность которых необходимо отслеживать.
Сбором статистики занимается демон vnStat — vnstatd. Init-скрипт для запуска/останова демона располагается в файле /etc/init.d/vnstat. После установки пакета будут созданы симлинки из каталогов /etc/rc*.d для автоматического запуска демона во время старта системы. Если вы не перезагружали систему после установки vnStat, его придётся запустить вручную:
1 |
$ sudo /etc/init.d/vnstat start |
Предварительно вы можете просмотреть и изменить в случае необходимости файл конфигурации vnStat, расположенный в файле /etc/vnstat.conf. Хотя, как мне кажется, настройки по умолчанию вполне пригодны для использования в большинстве случаев.
По умолчанию демон vnStat обновляет базу данных каждые 5 минут, а «снимает» информацию с интерфейсов каждые 30 секунд. Эти и другие параметры регулируются в файле конфигурации, и при необходимости вы можете изменить их, предварительно проконсультировавшись с man vnstat.conf. Если вы не хотите ждать, пока демон обновит данные в БД, вы можете принудительно обновить данные:
1 |
$ sudo vnstat -u |
Эта команда обновит БД всех интерфейсов. Если вам необходимо обновить информаци по какому-то определённому интерфейсу, воспользуйтесь опцией «-i», передав ей имя нужного интерфейса, например:
1 |
$ sudo vnstat -i eth0 -u |
Просмотр статистики
Сводная информация по всем интерфейсам:
1 |
$ vnstat |
Сводная информация по конкретному интерфейсу
1 |
$ vnstat -i eth0 |
Отдельный интерфейс, по часам:
1 |
$ vnstat -i eth0 -h |
Отдельный интерфейс, по дням:
1 |
$ vnstat -i eth0 -d |
Отдельный интерфейс, по неделям:
1 |
$ vnstat -i eth0 -w |
Отдельный интерфейс, по месяцам:
1 |
$ vnstat -i eth0 -m |
Live-режим
Также vnStat можно использовать для просмотра статистики в режиме реального времени:
1 |
$ vnstat -i eth0 -l |
К нему есть неплохая вебморда: vnStat PHP frontend
www.sqweek.com