Поиск по сайту:

Мониторинг сетевого трафика с помощью vnStat в Ubuntu 20.04


Это руководство существует для этих версий ОС

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 20.04 (Focal Fossa)

На этой странице

  1. Предпосылки
  2. Установить vnStat
  3. Управление службой vnStat
  4. Работа с vnStat
  5. Заключение

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

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

Предпосылки

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

Установить внстат

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

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

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

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

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

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

tar -xvzf vnstat-2.6.tar.gz

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

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

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

make
make install

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

vnstat -v

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

vnStat 2.6 by Teemu Toivola 

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

Управление службой vnStat

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

cp -v vnstat-2.6/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 (/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)

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

Работа с внстат

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

vnstat --help

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

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.

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

vnstat

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

                      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

Вы также можете указать конкретный сетевой интерфейс, используя параметр -i, как показано ниже:

vnstat -i ens3

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

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 |

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

vnstat -h

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

 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
     ------------------------+-------------+-------------+---------------

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

vnstat -d

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

 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 |

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

vnstat -t

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

 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

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

vnstat -l

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

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

Вы также можете очистить записи базы данных для интерфейса 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

Заключение

В приведенном выше руководстве вы узнали, как установить vnStat и использовать его для мониторинга сетевого трафика. Я надеюсь, что этот инструмент поможет вам в анализе и устранении неполадок, связанных с сетью. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.