Логирование и мониторинг расхода трафика с помощью VnStat

Установка VnStat из репозитория

Установить пакет VnStat можно из репозиториев, а также из исходного кода. Рассмотрим оба варианта и начнем с наиболее простого — из репозиториев. Существует несколько отличий установки в зависимости от семейства дистрибутива.

Debian based distros

В дистрибутивах основанных на Debian Linux установка выполняется всего с помощью одной команды:

sudo apt install vnstat

Утилита быстро устанавливается, сервис запускается и добавляется в автозапуск. Проверим статус:

sudo systemctl status vnstat

RHEL based distros

1. Включите репозиторий Epel

sudo yum -y install epel-release

Следом обновляем информацию о доступном ПО в репозитории

sudo yum -y update

2. Установите VnStat

sudo yum install vnstat

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

sudo systemctl enable vnstat | sudo systemctl start vnstat

4. Проверим статус после запуска сервиса

sudo systemctl status vnstat

Утилита готова к использованию. Однако при первом запуске возникнет диалоговое сообщение, о том, что еще недостаточно данных для отображения. Дожидаемся сбора статистики. Логирование расхода трафика начнется с момента установки утилиты.

Если репозиторий epel-release больше н енужен на сервере — его можно удалить командой

sudo yum -y remove  epel-release

Конфигурационный файл утилиты находится по пути /etc/vnstat.conf Важным параметром в нем является интерфейс, на котором планируется сбор статистики расходования трафика. Это актуально для систем, в которых несколько сетевых интерфейсов. В пункте с примерами базовых функций мы рассмотрим как можно задавать параметр, указывающий интерфейс.

Установка из исходного кода

1. Устанавливаем дополнительное ПО необходимое для сборки пакета

Для  RHEL и CentOS

sudo yum group install "Development Tools"

Подтверждаем, введя "y"

sudo yum install gd gd-devel sqlite-devel

Подтверждаем, введя "y"

Для Ubuntu и Debian

sudo apt install build-essential libsqlite3-dev

Подтверждаем, введя "y"

2. Загрузите архив с исходным кодом

wget https://humdi.net/vnstat/vnstat-latest.tar.gz

3. Распакуйте архив

tar -xvf vnstat-latest.tar.gz

4. Проверьте какая версия пакета загрузилась и как называется распакованная папка

ls

5. Перейдите в каталог vnstat-x.xx (где х.хх - версия утилиты и название распакованной вами папки)

cd vnstat-2.11

6. Запустите сборку пакета и дождитесь завершения установки

./configure --prefix=/usr --sysconfdir=/etc && make && make install

По завершении установки увидим сообщение

7. Нужно скопировать шаблон и запустить демон vnstat:

sudo cp -v examples/systemd/vnstat.service /etc/systemd/system/
sudo systemctl enable vnstat | sudo systemctl start vnstat

8. Проверьте статус, чтобы убедиться в работопособности сервиса

sudo systemctl status vnstat

Примеры использование VnStat

Проверьте список доступных интерфейсов, чтобы выбрать тот, на котором необходимо проверить статистику расхода трафика. Воспользуйтесь простой командой просмотра настроенных ИП адресов

ip a

Видим, что у нас внешний ИП адрес назначен на интерфейсе ens3. В примерах будем использовать данный интерфейс.

Проверка расхода трафика в списке по часам 

(опция --limit позволяет ограничить количество выводимых часов. В примере выводится информация за последние 12 часов):

vnstat -i ens3 -h --limit 12

Проверка расхода трафика в списке по дням 

(опция --limit позволит ограничить количество выводимых дней. В примере выведем 2 последних дня):

vnstat -i ens3 -d --limit 2

Чтобы выделить дни с наибольшим потреблением трафика можно использовать ключ -t

Проверка расхода трафика в списке по месяцам 

(опция --limit позволит ограничить количество выводимых месяцев):

vnstat -i ens3 -m

Проверка расхода трафика в списке по годам 

(опция --limit позволит ограничить количество выводимых годов)

vnstat -i ens3 -y

Проверка расхода трафика в списке в режиме реального времени

vnstat -i ens3 -l

После прерывания процесса получим таблицу значения за время, в течение которого проводился замер

Проверка расхода трафика в списке в заданный промежуток времени в секундах

vnstat -i ens3 -tr 20


Выведение графика c потреблением трафика за последние 24 часа

vnstat -i ens3 -hg