vnStat je bezplatný nástroj pro monitorování síťového provozu s otevřeným zdrojovým kódem a konzolou pro operační systém Linux. Pomocí vnStat můžete sledovat síťové statistiky v různých časových obdobích. Je jednoduchý, lehký a spotřebovává malou část systémových prostředků. vnStat vám umožní generovat data o síťovém provozu za hodinu, den, měsíc, týden a den.
V tomto tutoriálu vám ukážeme, jak nainstalovat a používat vnStat ke sledování síťového provozu.
Předpoklady
- Server se systémem Ubuntu 20.04.
- Na serveru je nakonfigurováno heslo uživatele root.
Instalovat vnStat
Ve výchozím nastavení není nejnovější verze vnStat k dispozici ve výchozím úložišti Ubuntu. Budete jej tedy muset zkompilovat ze zdroje.
Nejprve nainstalujte všechny závislosti potřebné ke kompilaci vnStat pomocí následujícího příkazu:
apt-get install build-essential gcc make libsqlite3-dev -y
Jakmile jsou všechny závislosti nainstalovány, stáhněte si nejnovější verzi zdroje vnStat pomocí následujícího příkazu:
wget https://humdi.net/vnstat/vnstat-2.6.tar.gz
Po dokončení stahování rozbalte stažený soubor pomocí následujícího příkazu:
tar -xvzf vnstat-2.6.tar.gz
Dále změňte adresář na extrahovaný adresář a nakonfigurujte jej pomocí následujícího příkazu:
cd vnstat-2.6
./configure --prefix=/usr --sysconfdir=/etc
Dále nainstalujte vnStat spuštěním následujícího příkazu:
make
make install
Jakmile je vnStat nainstalován, můžete ověřit nainstalovanou verzi vnStat pomocí následujícího příkazu:
vnstat -v
Měli byste získat následující výstup:
vnStat 2.6 by Teemu Toivola
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Spravovat službu vnStat
Dále budete muset zkopírovat soubor služby vnStat systemd ze zdroje vnStat do adresáře /etc/systemd/system/:
cp -v vnstat-2.6/examples/systemd/vnstat.service /etc/systemd/system/
Dále povolte službu vnStat a spusťte ji následujícím příkazem:
systemctl enable vnstat
systemctl start vnstat
Stav služby vnStat můžete také ověřit pomocí následujícího příkazu:
systemctl status vnstat
Měli byste získat následující výstup:
? vnstat.service - vnStat network traffic monitor Loaded: loaded (/etc/systemd/system/vnstat.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-11-12 06:24:01 UTC; 11s ago Docs: man:vnstatd(8) man:vnstat(1) man:vnstat.conf(5) Main PID: 20989 (vnstatd) Tasks: 1 (limit: 4701) Memory: 1.5M CGroup: /system.slice/vnstat.service ??20989 /usr/sbin/vnstatd -n Nov 12 06:24:01 Ubuntu systemd[1]: Started vnStat network traffic monitor. Nov 12 06:24:01 Ubuntu vnstatd[20989]: No interfaces found in database, adding available interfaces... Nov 12 06:24:01 Ubuntu vnstatd[20989]: Interface "ens3" added with 1000 Mbit bandwidth limit. Nov 12 06:24:01 Ubuntu vnstatd[20989]: Interface "ens4" added with 1000 Mbit bandwidth limit. Nov 12 06:24:01 Ubuntu vnstatd[20989]: -> 2 new interfaces found. Nov 12 06:24:01 Ubuntu vnstatd[20989]: Limits can be modified using the configuration file. See "man vnstat.conf". Nov 12 06:24:01 Ubuntu vnstatd[20989]: Unwanted interfaces can be removed from monitoring with "vnstat --remove". Nov 12 06:24:01 Ubuntu vnstatd[20989]: Info: vnStat daemon 2.6 started. (pid:20989 uid:0 gid:0 64-bit) Nov 12 06:24:01 Ubuntu vnstatd[20989]: Info: Monitoring (2): ens4 (1000 Mbit) ens3 (1000 Mbit)
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Práce s vnStat
vnStat přichází s několika možnostmi, které vám pomohou sledovat síťový provoz. Všechny dostupné možnosti můžete zobrazit pomocí následujícího příkazu:
vnstat --help
Měli byste získat následující výstup:
vnStat 2.6 by Teemu Toivola-5, --fiveminutes [limit] show 5 minutes -h, --hours [limit] show hours -hg, --hoursgraph show hours graph -d, --days [limit] show days -m, --months [limit] show months -y, --years [limit] show years -t, --top [limit] show top days -b, --begin set list begin date -e, --end set list end date --oneline [mode] show simple parsable format --json [mode] [limit] show database in json format --xml [mode] [limit] show database in xml format -tr, --traffic [time] calculate traffic -l, --live [mode] show transfer rate in real time -i, --iface select interface Use "--longhelp" or "man vnstat" for complete list of options.
Před použitím vnStat budete muset počkat na aktualizaci databáze vnStat. Po aktualizaci databáze můžete spustit vnStat bez jakékoli možnosti, jak je uvedeno níže:
vnstat
Měli byste vidět následující výstup:
rx / tx / total / estimated ens3: 2020-11 164.83 KiB / 495.17 KiB / 660.01 KiB / -- today 164.83 KiB / 495.17 KiB / 660.01 KiB / 2.38 MiB
Můžete také určit konkrétní síťové rozhraní pomocí volby -i, jak je uvedeno níže:
vnstat -i ens3
Denní a měsíční statistiky byste měli získat v následujícím výstupu:
Database updated: 2020-11-12 06:30:00 ens3 since 2020-11-12 rx: 164.83 KiB tx: 495.17 KiB total: 660.01 KiB monthly rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- 2020-11 164.83 KiB | 495.17 KiB | 660.01 KiB | 5 bit/s ------------------------+-------------+-------------+--------------- estimated -- | -- | -- | daily rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- today 164.83 KiB | 495.17 KiB | 660.01 KiB | 231 bit/s ------------------------+-------------+-------------+--------------- estimated 608 KiB | 1.79 MiB | 2.38 MiB |
Chcete-li zobrazit hodinovou statistiku, spusťte následující příkaz:
vnstat -h
Měli byste získat následující výstup:
ens3 / hourly hour rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- 2020-11-12 06:00 164.83 KiB | 495.17 KiB | 660.01 KiB | 3.00 kbit/s ------------------------+-------------+-------------+---------------
Chcete-li zobrazit denní statistiku, spusťte následující příkaz:
vnstat -d
Měli byste získat následující výstup:
ens3 / daily day rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- 2020-11-12 164.83 KiB | 495.17 KiB | 660.01 KiB | 231 bit/s ------------------------+-------------+-------------+--------------- estimated 608 KiB | 1.79 MiB | 2.38 MiB |
Můžete použít volbu -t pro zobrazení dnů s nejvyšší návštěvností:
vnstat -t
Měli byste získat následující výstup:
ens3 / top 1 # day rx | tx | total | avg. rate -----------------------------+-------------+-------------+--------------- > 1 2020-11-12 164.83 KiB | 495.17 KiB | 660.01 KiB | 62 bit/s
Chcete-li zobrazit statistiky síťového provozu v reálném čase, spusťte následující příkaz:
vnstat -l
Měli byste získat následující výstup:
Monitoring ens3... (press CTRL-C to stop) rx: 1.31 kbit/s 2 p/s tx: 1.49 kbit/s 1 p/s^C ens3 / traffic statistics rx | tx --------------------------------------+------------------ bytes 3.75 KiB | 5.42 KiB --------------------------------------+------------------ max 6.55 kbit/s | 11.17 kbit/s average 1.53 kbit/s | 2.22 kbit/s min 264 bit/s | 264 bit/s --------------------------------------+------------------ packets 41 | 37 --------------------------------------+------------------ max 7 p/s | 8 p/s average 2 p/s | 1 p/s min 0 p/s | 0 p/s --------------------------------------+------------------ time 20 seconds
Můžete také vymazat databázové položky pro rozhraní ens3 a zastavit monitorování pomocí následujícího příkazu:
vnstat -i ens3 --remove --force
Měli byste získat následující výstup:
Interface "ens3" removed from database. The interface will no longer be monitored. Use --add if monitoring the interface is again needed.
Odebrané rozhraní ens3 můžete také znovu přidat spuštěním následujícího příkazu:
vnstat -i ens3 --add
Měli byste získat následující výstup:
Adding interface "ens3" for monitoring to database... Restart the vnStat daemon if it is currently running in order to start monitoring "ens3".
Poté restartujte službu vnStat, aby se změny projevily:
systemctl restart vnstat
Závěr
Ve výše uvedené příručce jste se naučili, jak nainstalovat vnStat a používat jej ke sledování síťového provozu. Doufám, že vám tento nástroj pomůže při analýze a odstraňování problémů souvisejících se sítí. Pokud máte nějaké dotazy, neváhejte se mě zeptat.