Логування та моніторинг споживання трафіку за допомогою VnStat | INTROSERV
EUR
european

EUR

usa

USD

Ukraine Ua
Ex. VAT Ex. VAT 0%

Як вести облік і моніторинг споживання трафіку за допомогою vnStat

vnStat є легкою консольною утилітою, яка веде історію мережевого трафіку в Linux. Фонова служба vnstatd зчитує лічильники інтерфейсів із ядра та зберігає їх у невелику базу даних. Після цього ви можете переглядати трафік за годинами, днями, місяцями й роками або стежити за поточною швидкістю в реальному часі. vnStat не перехоплює пакети, тому навантаження від нього дуже низьке. Він показує, скільки трафіку пройшло через кожен інтерфейс, але не показує, які IP-адреси, порти чи з'єднання його створили.

У цій інструкції показано, як встановити vnStat із репозиторію або з вихідного коду та як переглядати статистику трафіку. vnStat стане в пригоді на будь-якому сервері, де трафік обмежений або тарифікується, наприклад на Linux VPS чи виділеному сервері INTROSERV.

Встановіть vnStat із репозиторію

Підключіться до сервера по SSH. Докладніше див. Підключення через SSH.

Ubuntu і Debian

vnStat є у стандартних репозиторіях. Встановіть його:

sudo apt update sudo apt install -y vnstat

Під час встановлення служба vnstat запускається й додається в автозавантаження. Перевірте, що вона працює:

sudo systemctl status vnstat

У виводі має бути active (running). Якщо служба не запущена, додайте її в автозавантаження й запустіть командою sudo systemctl enable --now vnstat.

AlmaLinux і Rocky Linux

vnStat є в репозиторії EPEL. Підключіть EPEL і встановіть vnStat:

sudo dnf install -y epel-release sudo dnf install -y vnstat

Додайте службу в автозавантаження й запустіть її:

sudo systemctl enable vnstat && sudo systemctl start vnstat

Перевірте, що вона працює:

sudo systemctl status vnstat

Встановіть vnStat із вихідного коду

Збирайте vnStat із вихідного коду, якщо для вашого дистрибутива немає пакета або вам потрібна найновіша версія.

Warning

Якщо vnStat уже встановлено з репозиторію, спочатку видаліть пакет: sudo apt remove -y vnstat в Ubuntu і Debian або sudo dnf remove -y vnstat в AlmaLinux і Rocky Linux. Обидві інсталяції використовують той самий файл конфігурації, базу даних та ім'я служби, тому разом вони конфліктують.

Встановіть залежності для збирання. В Ubuntu і Debian:

sudo apt update && sudo apt install -y build-essential libsqlite3-dev wget

В AlmaLinux і Rocky Linux:

sudo dnf group install -y "Development Tools" sudo dnf install -y sqlite-devel wget

Завантажте й розпакуйте останній випуск:

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

Архів розпаковується в каталог із номером версії в назві, наприклад vnstat-2.13. Маска vnstat-*/ дає змогу перейти в нього, не вводячи номер версії.

Зберіть і встановіть vnStat:

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

Параметр --prefix=/usr встановлює програми в /usr/bin і /usr/sbin, а --sysconfdir=/etc розміщує файл конфігурації в /etc/vnstat.conf.

В AlmaLinux і Rocky Linux з увімкненим SELinux, якщо vnStat раніше було встановлено з репозиторію, спочатку відновіть мітки SELinux для каталогу бази даних. Інакше служба не запуститься з помилкою Permission denied:

sudo restorecon -Rv /var/lib/vnstat

Встановіть службу systemd, додайте її в автозавантаження й запустіть:

sudo cp -v examples/systemd/vnstat.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now vnstat

Перевірте версію та статус служби:

vnstat --version sudo systemctl status vnstat

Визначте мережевий інтерфейс

За замовчуванням vnStat додає до своєї бази всі мережеві інтерфейси сервера, крім петлевого. Щоб побачити інтерфейси, які зараз є в базі, виконайте:

vnstat --dbiflist

Список інтерфейсів також показує команда ip a. У прикладах нижче використовується інтерфейс ens3. Замініть його на ім'я свого інтерфейсу, наприклад eth0 або enp1s0.

Info

За замовчуванням vnStat зберігає нові дані в базу кожні 5 хвилин. Одразу після встановлення команда vnstat повідомляє, що даних поки немає, наприклад Not enough data available yet або No data. Зачекайте кілька хвилин і виконайте команду знову.

Перегляд статистики трафіку

Запустіть vnstat без параметрів, щоб побачити зведення за всіма інтерфейсами: трафік за поточну добу й місяць із прогнозом на кінець періоду.

vnstat

В усіх звітах rx означає вхідний трафік, tx вихідний, а total їхню суму.

Трафік за годинами

Щоб переглянути 12 останніх погодинних записів, виконайте:

vnstat -i ens3 -h --limit 12

Трафік за днями

Щоб переглянути 2 останні записи за днями, виконайте:

vnstat -i ens3 -d --limit 2

Без --limit кількість записів задає параметр ListDays у /etc/vnstat.conf, за замовчуванням 30. Він обмежує лише вивід, а не дані в базі.

Трафік за місяцями

vnstat -i ens3 -m

Трафік за роками

vnstat -i ens3 -y

Трафік у реальному часі

Щоб стежити за поточною швидкістю передавання даних, виконайте:

vnstat -i ens3 -l

Швидкість оновлюється, доки ви не натиснете Ctrl+C. Якщо команда працювала довше ніж 10 секунд, vnStat після цього покаже зведення за цей час.

Трафік за задану кількість секунд

Щоб виміряти середню швидкість трафіку за певний час, вкажіть його в секундах. Наприклад, 20 секунд:

vnstat -i ens3 -tr 20

Без числа вимірювання триває 5 секунд. Результат з'явиться, коли цей час мине.

Графік за останні 24 години

Щоб вивести трафік за останні 24 години у вигляді текстового графіка, виконайте:

vnstat -i ens3 -hg

Tip

Для обробки статистики в скриптах використовуйте параметр --json або --oneline. Наприклад, vnstat -i ens3 --json d виводить статистику за днями у форматі JSON.

Задайте інтерфейс за замовчуванням

Якщо на сервері кілька інтерфейсів, а перевіряєте ви зазвичай один із них, вкажіть його як інтерфейс за замовчуванням у файлі конфігурації /etc/vnstat.conf. Відкрийте файл:

sudo nano /etc/vnstat.conf

В AlmaLinux і Rocky Linux nano за замовчуванням не встановлено. Встановіть його командою sudo dnf install -y nano або використовуйте vi.

Знайдіть рядок Interface, видаліть крапку з комою на його початку й вкажіть ім'я свого інтерфейсу:

Interface "ens3"

Збережіть файл. Тепер vnstat показує цей інтерфейс, якщо запустити його без параметра -i, наприклад vnstat -d. Служба vnstat і далі відстежує всі інтерфейси.

Повний список параметрів виводить команда vnstat --longhelp, докладний опис є в man vnstat.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA