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.