Как отслеживать сетевой трафик с помощью vnStat в Ubuntu 22.04

vnStat — это бесплатный инструмент с открытым исходным кодом для мониторинга сетевого трафика в консольном режиме, предназначенный для операционной системы Linux. С помощью vnStat вы можете отслеживать сетевую статистику за различные периоды времени. Он прост, легкий и потребляет небольшую часть системных ресурсов. vnStat позволяет генерировать данные о сетевом трафике за час, день, месяц, неделю и день. В этом руководстве вы узнаете, как установить и использовать vnStat для мониторинга сетевого трафика.

Особенности

  • Мониторинг нескольких интерфейсов одновременно.
  • Предоставляет несколько вариантов вывода данных, например по дням, неделям и т. д.
  • Сортировка данных по часам, дням, месяцам или неделям, а также выборка 10 дней с наибольшим трафиком.
  • Возможность вывода данных в формате изображения.
  • Мониторинг нескольких сетевых интерфейсов одновременно.
  • Легкий и с низким потреблением ресурсов процессора.

В этом руководстве вы узнаете, как установить и использовать инструмент VnStat для мониторинга сетевого трафика в Ubuntu 22.04.

Необходимые условия

  • Сервер под управлением Ubuntu 20.04.
  • На сервере настроен пароль root.

Начало работы

Перед началом рекомендуется обновить и модернизировать все системные пакеты до последней версии. Вы можете обновить их все с помощью следующей команды:

apt update -y
apt upgrade -y

После обновления всех пакетов вы можете установить VnStat из исходного кода на следующем шаге.

Установка vnStat

По умолчанию последняя версия vnStat недоступна в стандартном репозитории Ubuntu. Поэтому вам нужно будет скомпилировать его из исходного кода.

Сначала установите все зависимости, необходимые для компиляции vnStat, с помощью следующей команды:

apt-get install build-essential gcc make libsqlite3-dev -y

После установки всех зависимостей загрузите последнюю версию исходного кода vnStat с помощью следующей команды:

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

По завершении загрузки распакуйте загруженный файл с помощью следующей команды:

tar -xvzf vnstat-2.10.tar.gz

Затем перейдите в каталог с распакованными файлами и настройте программу с помощью следующей команды:

cd vnstat-2.10
./configure --prefix=/usr --sysconfdir=/etc

Затем установите vnStat, выполнив следующую команду:

make
make install

После установки vnStat вы можете проверить версию установленного vnStat с помощью следующей команды:

vnstat -v

Вы должны получить следующий вывод:

vnStat 2.10 by Teemu Toivola 

После завершения вы можете перейти к следующему шагу.

Использование Systemd для управления VnStat

Для управления VnStat с помощью systemd вам необходимо скопировать файл службы vnStat из исходного кода vnStat в каталог /etc/systemd/system/:

cp -v vnstat-2.10/examples/systemd/vnstat.service /etc/systemd/system/

Затем включите службу vnStat и запустите ее с помощью следующей команды:

systemctl enable vnstat
systemctl start vnstat

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

systemctl status vnstat

Вы должны получить следующий вывод:

? vnstat.service - vnStat network traffic monitor
   Loaded: loaded (/lib/systemd/system/vnstat.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2022-11-29 08:34:08 IST; 2h 49min ago
     Docs: man:vnstatd(1)
           man:vnstat(1)
           man:vnstat.conf(5)
 Main PID: 1730 (vnstatd)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/vnstat.service
           ??1730 /usr/sbin/vnstatd -n

Nov 29 08:34:08 vyompc systemd[1]: Started vnStat network traffic monitor.
Nov 29 08:34:08 vyompc vnstatd[1730]: Info: vnStat daemon 1.18 started. (pid:1730 uid:122 gid:128)
Nov 29 08:34:08 vyompc vnstatd[1730]: Info: Monitoring: enp20s0 (1000 Mbit) wlp22s0 (1000 Mbit)

После завершения вы можете перейти к следующему шагу.

Как отслеживать сетевой трафик с помощью vnStat

vnStat предоставляет несколько опций, позволяющих отслеживать сетевой трафик. Вы можете отобразить список всех доступных опций с помощью следующей команды:

vnstat --help

Вы должны получить следующий вывод:

vnStat 2.10 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.

Перед использованием vnStat необходимо подождать некоторое время, чтобы обновить базу данных vnStat. После обновления базы данных вы можете запустить vnStat без каких-либо опций, как показано ниже:

vnstat

Вы должны увидеть следующий вывод:

                      rx      /      tx      /     total    /   estimated
 wlp22s0:
       Oct '22     17.80 GiB  /    4.35 GiB  /   22.15 GiB
       Nov '22     16.61 GiB  /    3.62 GiB  /   20.23 GiB  /   21.48 GiB
     yesterday    332.22 MiB  /  114.17 MiB  /  446.39 MiB
         today    710.25 MiB  /   44.85 MiB  /  755.11 MiB  /    1.55 GiB

Чтобы использовать конкретный сетевой интерфейс, используйте опцию -i, как показано ниже:

vnstat -i ens3

Вы должны получить суточную и месячную статистику в следующем выводе:

Database updated: 2020-11-12 06:30:00

   ens3 since Saturday 29 January 2022

          rx:  185.89 GiB      tx:  38.82 GiB      total:  224.70 GiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       Oct '22     17.80 GiB |    4.35 GiB |   22.15 GiB |   71.04 kbit/s
       Nov '22     16.61 GiB |    3.62 GiB |   20.23 GiB |   71.20 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated     17.64 GiB |    3.85 GiB |   21.48 GiB |

   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     yesterday    332.22 MiB |  114.17 MiB |  446.39 MiB |   43.34 kbit/s
         today    710.25 MiB |   44.85 MiB |  755.11 MiB |  154.31 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated      1.46 GiB |      92 MiB |    1.55 GiB |

Чтобы отобразить почасовую статистику, запустите следующую команду:

vnstat -h

Вы должны получить следующий вывод:

 ens3  /  hourly

 h  rx (MiB)   tx (MiB)  ][  h  rx (MiB)   tx (MiB)  ][  h  rx (MiB)   tx (MiB) 
12        5.4        0.2 ][ 20       30.4       14.8 ][ 04        0.0        0.0
13       72.7       15.0 ][ 21       24.8        6.4 ][ 05        0.0        0.0
14        1.9        0.4 ][ 22       20.1        9.8 ][ 06        0.0        0.0
15        0.0        0.0 ][ 23        0.0        0.0 ][ 07        0.0        0.0
16        0.0        0.0 ][ 00        0.0        0.0 ][ 08      147.0       10.2
17       36.4        9.6 ][ 01        0.0        0.0 ][ 09       64.1        9.4
18       54.0       23.4 ][ 02        0.0        0.0 ][ 10      496.9       23.9
19       86.5       34.5 ][ 03        0.0        0.0 ][ 11        2.3        1.3

Чтобы отобразить дневную статистику, выполните следующую команду:

vnstat -d

Вы должны получить следующий вывод:

 ens3  /  daily
        day         rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     Sunday 30 October 2022  266.75 MiB |   47.81 MiB |  314.56 MiB |   30.54 kbit/s
     Monday 31 October 2022  701.49 MiB |  225.89 MiB |  927.38 MiB |   90.04 kbit/s
     Tuesday 01 November 2022  506.20 MiB |  184.50 MiB |  690.70 MiB |   67.06 kbit/s
     Wednesday 02 November 2022  631.15 MiB |  182.43 MiB |  813.59 MiB |   78.99 kbit/s
     Thursday 03 November 2022  189.21 MiB |   41.18 MiB |  230.39 MiB |   22.37 kbit/s
     Friday 04 November 2022  703.67 MiB |  175.49 MiB |  879.16 MiB |   85.36 kbit/s
     Saturday 05 November 2022  518.96 MiB |  130.47 MiB |  649.43 MiB |   63.05 kbit/s
     Sunday 06 November 2022  301.74 MiB |   81.95 MiB |  383.69 MiB |   37.25 kbit/s

Вы можете использовать опцию -t для отображения дней с наибольшим трафиком:

vnstat -t

Вы должны получить следующий вывод:

 ens3  /  top 1

    #      day          rx      |     tx      |    total    |   avg. rate
   -----------------------------+-------------+-------------+---------------
    1   Thursday 03 February 2022    2.58 GiB |  214.64 MiB |    2.79 GiB |  277.76 kbit/s
    2   Saturday 05 February 2022    2.11 GiB |  229.32 MiB |    2.33 GiB |  231.67 kbit/s
    3   Tuesday 01 February 2022    1.81 GiB |  190.56 MiB |    2.00 GiB |  198.71 kbit/s
    4   Wednesday 02 February 2022    1.80 GiB |  179.75 MiB |    1.98 GiB |  196.72 kbit/s
    5   Sunday 10 July 2022    1.69 GiB |  248.34 MiB |    1.93 GiB |  192.21 kbit/s
    6   Saturday 19 February 2022    1.56 GiB |  172.67 MiB |    1.73 GiB |  171.56 kbit/s
    7   Friday 16 September 2022    1.44 GiB |  201.21 MiB |    1.64 GiB |  163.16 kbit/s
    8   Friday 17 June 2022    1.34 GiB |  278.89 MiB |    1.61 GiB |  160.33 kbit/s
    9   Friday 25 March 2022    1.06 GiB |  504.19 MiB |    1.55 GiB |  154.51 kbit/s
   10   Monday 07 February 2022    1.30 GiB |  160.68 MiB |    1.46 GiB |  145.30 kbit/s
   -----------------------------+-------------+-------------+---------------

Чтобы отобразить статистику сетевого трафика в режиме реального времени, выполните следующую команду:

vnstat -l

Вы должны получить следующий вывод:

Monitoring ens3...    (press CTRL-C to stop)

   rx:       11 kbit/s     7 p/s          tx:        9 kbit/s     6 p/s^C


 ens3  /  traffic statistics

                           rx         |       tx
--------------------------------------+------------------
  bytes                       17 KiB  |          18 KiB
--------------------------------------+------------------
          max              24 kbit/s  |       33 kbit/s
      average            6.78 kbit/s  |     7.39 kbit/s
          min               0 kbit/s  |        0 kbit/s
--------------------------------------+------------------
  packets                         78  |              82
--------------------------------------+------------------
          max                 10 p/s  |          11 p/s
      average                  3 p/s  |           4 p/s
          min                  0 p/s  |           0 p/s
--------------------------------------+------------------
  time                    20 seconds

Вы также можете очистить записи базы данных для интерфейса ens3 и остановить мониторинг с помощью следующей команды:

vnstat -i ens3 --remove --force

Вы должны получить следующий вывод:

Interface "ens3" removed from database.
The interface will no longer be monitored. Use --add
if monitoring the interface is again needed.

Вы также можете снова добавить удаленный интерфейс ens3, выполнив следующую команду:

vnstat -i ens3 --add

Вы должны получить следующий вывод:

Adding interface "ens3" for monitoring to database...

Restart the vnStat daemon if it is currently running in order to start monitoring "ens3".

Затем перезапустите службу vnStat, чтобы применить изменения:

systemctl restart vnstat

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *