Rejestrowanie i monitorowanie zużycia ruchu przy użyciu VnStat | INTROSERV
EUR
european

EUR

usa

USD

Poland Pl
Ex. VAT Ex. VAT 0%

Come registrare e monitorare il consumo di traffico con vnStat

vnStat to lekkie narzędzie konsolowe, które przechowuje historię ruchu sieciowego w systemie Linux. Usługa działająca w tle, vnstatd, odczytuje liczniki interfejsów z jądra systemu i zapisuje je w niewielkiej bazie danych. Następnie można przeglądać ruch w ujęciu godzinowym, dziennym, miesięcznym i rocznym lub śledzić bieżącą szybkość transferu w czasie rzeczywistym. vnStat nie przechwytuje pakietów, dlatego jego narzut na system jest bardzo niski. Pokazuje, ile ruchu przeszło przez każdy interfejs, ale nie wskazuje, które adresy IP, porty lub połączenia go wygenerowały.

Ten poradnik pokazuje, jak zainstalować vnStat z repozytorium lub z kodu źródłowego oraz jak przeglądać statystyki ruchu. vnStat jest przydatny na każdym serwerze, na którym ruch jest limitowany lub płatny, na przykład na serwerze VPS z Linuksem lub serwerze dedykowanym INTROSERV.

Instalacja vnStat z repozytorium

Połącz się z serwerem przez SSH. Szczegółowe informacje znajdziesz w artykule Połączenie przez SSH.

Ubuntu i Debian

vnStat jest dostępny w standardowych repozytoriach. Zainstaluj go:

sudo apt update sudo apt install -y vnstat

Instalacja uruchamia usługę vnstat i włącza ją przy starcie systemu. Sprawdź, czy usługa działa:

sudo systemctl status vnstat

W wyniku musi być widoczny stan active (running). Jeśli usługa nie działa, włącz ją i uruchom poleceniem sudo systemctl enable --now vnstat.

AlmaLinux i Rocky Linux

vnStat jest dostępny w repozytorium EPEL. Włącz EPEL i zainstaluj vnStat:

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

Włącz i uruchom usługę:

sudo systemctl enable vnstat && sudo systemctl start vnstat

Sprawdź, czy usługa działa:

sudo systemctl status vnstat

Instalacja vnStat z kodu źródłowego

Skompiluj vnStat ze źródeł, jeśli pakiet nie jest dostępny dla Twojej dystrybucji lub potrzebujesz najnowszej wersji.

Warning

Jeśli vnStat został już zainstalowany z repozytorium, najpierw usuń pakiet: sudo apt remove -y vnstat w Ubuntu i Debianie lub sudo dnf remove -y vnstat w AlmaLinux i Rocky Linux. Obie instalacje używają tego samego pliku konfiguracyjnego, tej samej bazy danych i tej samej nazwy usługi, dlatego ich współistnienie powoduje konflikty.

Zainstaluj zależności potrzebne do kompilacji. W Ubuntu i Debianie:

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

W AlmaLinux i Rocky Linux:

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

Pobierz i rozpakuj najnowsze wydanie:

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

Archiwum rozpakowuje się do katalogu z numerem wersji w nazwie, na przykład vnstat-2.13. Symbol wieloznaczny vnstat-*/ pozwala wejść do katalogu bez wpisywania numeru wersji.

Skompiluj i zainstaluj vnStat:

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

Opcja --prefix=/usr instaluje programy w katalogach /usr/bin i /usr/sbin, a --sysconfdir=/etc umieszcza plik konfiguracyjny w /etc/vnstat.conf.

W AlmaLinux i Rocky Linux z włączonym SELinux, jeśli vnStat był wcześniej zainstalowany z repozytorium, najpierw przywróć etykiety SELinux katalogu bazy danych. W przeciwnym razie usługa nie uruchomi się i zgłosi błąd Permission denied:

sudo restorecon -Rv /var/lib/vnstat

Zainstaluj usługę systemd, następnie włącz ją i uruchom:

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

Sprawdź wersję programu i stan usługi:

vnstat --version sudo systemctl status vnstat

Ustalanie interfejsu sieciowego

Domyślnie vnStat dodaje do bazy danych wszystkie interfejsy sieciowe serwera z wyjątkiem interfejsu pętli zwrotnej (loopback). Aby zobaczyć interfejsy znajdujące się obecnie w bazie, uruchom:

vnstat --dbiflist

Interfejsy można też wyświetlić poleceniem ip a. W poniższych przykładach używany jest interfejs ens3. Zastąp go nazwą swojego interfejsu, na przykład eth0 lub enp1s0.

Info

Domyślnie vnStat zapisuje nowe dane w bazie co 5 minut. Bezpośrednio po instalacji polecenie vnstat informuje, że nie ma jeszcze danych, na przykład komunikatem Not enough data available yet lub No data. Odczekaj kilka minut i uruchom polecenie ponownie.

Przeglądanie statystyk ruchu

Uruchom vnstat bez opcji, aby zobaczyć podsumowanie dla wszystkich interfejsów, obejmujące ruch z bieżącego dnia i miesiąca oraz prognozę na koniec każdego okresu.

vnstat

We wszystkich raportach rx oznacza ruch przychodzący, tx – ruch wychodzący, a total – ich sumę.

Ruch w ujęciu godzinowym

Aby wyświetlić 12 ostatnich wpisów godzinowych, uruchom:

vnstat -i ens3 -h --limit 12

Ruch w ujęciu dziennym

Aby wyświetlić 2 ostatnie wpisy dzienne, uruchom:

vnstat -i ens3 -d --limit 2

Bez opcji --limit liczba wyświetlanych wpisów zależy od parametru ListDays w pliku /etc/vnstat.conf, domyślnie jest to 30. Parametr ogranicza tylko wyświetlane dane, a nie dane przechowywane w bazie.

Ruch w ujęciu miesięcznym

vnstat -i ens3 -m

Ruch w ujęciu rocznym

vnstat -i ens3 -y

Ruch w czasie rzeczywistym

Aby śledzić bieżącą szybkość transferu, uruchom:

vnstat -i ens3 -l

Wartości są odświeżane, dopóki nie naciśniesz Ctrl+C. Jeśli polecenie działało dłużej niż 10 sekund, vnStat wyświetli następnie podsumowanie z tego okresu.

Ruch w zadanym czasie (w sekundach)

Aby zmierzyć średnią szybkość ruchu w wybranym przedziale czasu, podaj jego długość w sekundach. Na przykład 20 sekund:

vnstat -i ens3 -tr 20

Jeśli nie podasz wartości, pomiar trwa 5 sekund. Wynik zostanie wyświetlony po upływie zadanego czasu.

Wykres z ostatnich 24 godzin

Aby wyświetlić ruch z ostatnich 24 godzin w postaci wykresu tekstowego, uruchom:

vnstat -i ens3 -hg

Tip

Aby przetwarzać statystyki w skrypcie, użyj opcji --json lub --oneline. Na przykład polecenie vnstat -i ens3 --json d eksportuje statystyki dzienne w formacie JSON.

Ustawianie domyślnego interfejsu

Jeśli serwer ma kilka interfejsów, a zwykle sprawdzasz tylko jeden z nich, ustaw go jako domyślny w pliku konfiguracyjnym /etc/vnstat.conf. Otwórz plik:

sudo nano /etc/vnstat.conf

W AlmaLinux i Rocky Linux edytor nano nie jest domyślnie zainstalowany. Zainstaluj go poleceniem sudo dnf install -y nano lub użyj vi.

Znajdź wiersz Interface, usuń średnik na jego początku i wpisz nazwę swojego interfejsu:

Interface "ens3"

Zapisz plik. Teraz vnstat uruchomiony bez opcji -i, na przykład vnstat -d, wyświetla statystyki tego interfejsu. Usługa vnstat nadal monitoruje wszystkie interfejsy.

Pełną listę opcji uzyskasz poleceniem vnstat --longhelp lub w dokumentacji 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