Cómo monitorizar el tráfico de red con vnStat en Ubuntu 22.04

vnStat es una herramienta de supervisión del tráfico de red gratuita, de código abierto y basada en consola para el sistema operativo Linux. Con vnStat, puedes supervisar las estadísticas de red durante varios periodos de tiempo. Es sencilla, ligera y consume una pequeña parte de los recursos de tu sistema. vnStat te permite generar los datos de tráfico de red en una hora, un día, un mes, una semana y un día. Este tutorial te mostrará cómo instalar y utilizar vnStat para supervisar el tráfico de red.

Características

  • Monitoriza múltiples interfaces al mismo tiempo.
  • Proporciona varias opciones de salida, como por día, por semana, etc.
  • Ordena los datos por hora, día, mes o semana u obtén los 10 días principales.
  • Te permite generar la salida en formato de imagen.
  • Supervisa varias interfaces de red al mismo tiempo.
  • Es ligero y consume poca CPU.

Este tutorial te mostrará cómo instalar y utilizar la herramienta VnStat para supervisar el tráfico de red en Ubuntu 22.04.

Requisitos previos

  • Un servidor que ejecute Ubuntu 20.04.
  • Una contraseña de root configurada en el servidor.

Cómo empezar

Antes de empezar, se recomienda actualizar todos los paquetes del sistema a la última versión. Puedes actualizarlos todos utilizando el siguiente comando:

apt update -y
apt upgrade -y

Una vez actualizados todos los paquetes, puedes instalar el VnStat desde el código fuente en el siguiente paso.

Instalar vnStat

Por defecto, la última versión de vnStat no está disponible en el repositorio por defecto de Ubuntu. Así que tendrás que compilarla desde el código fuente.

En primer lugar, instala todas las dependencias necesarias para compilar vnStat con el siguiente comando:

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

Una vez instaladas todas las dependencias, descarga la última versión del código fuente de vnStat con el siguiente comando:

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

Una vez finalizada la descarga, extrae el archivo descargado con el siguiente comando:

tar -xvzf vnstat-2.10.tar.gz

A continuación, cambia el directorio al extraído y configúralo con el siguiente comando:

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

A continuación, instala el vnStat ejecutando el siguiente comando:

make
make install

Una vez instalado vnStat, puedes verificar la versión instalada de vnStat con el siguiente comando:

vnstat -v

Deberías obtener la siguiente salida:

vnStat 2.10 by Teemu Toivola 

Cuando hayas terminado, puedes pasar al siguiente paso.

Utilizar Systemd para gestionar VnStat

Para gestionar VnStat con systemd, tendrás que copiar el archivo de servicio vnStat systemd desde el origen de vnStat al directorio /etc/systemd/system/:

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

A continuación, habilita el servicio vnStat e inícialo con el siguiente comando:

systemctl enable vnstat
systemctl start vnstat

También puedes comprobar el estado del servicio vnStat con el siguiente comando:

systemctl status vnstat

Deberías obtener la siguiente salida:

? 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)

Cuando hayas terminado, puedes pasar al siguiente paso.

Cómo supervisar el tráfico de red con vnStat

vnStat proporciona varias opciones que te permiten supervisar el tráfico de red. Puedes listar todas las opciones disponibles con el siguiente comando:

vnstat --help

Deberías obtener la siguiente salida:

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.

Antes de utilizar vnStat, deberás esperar un tiempo para que se actualice la base de datos de vnStat. Después de actualizar la base de datos, puedes ejecutar vnStat sin ninguna opción, como se muestra a continuación:

vnstat

Deberías ver la siguiente salida:

                      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

Para utilizar la interfaz de red específica, utiliza la opción -i como se muestra a continuación:

vnstat -i ens3

Deberías obtener las estadísticas diarias y mensuales en la siguiente salida:

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 |

Para mostrar las estadísticas horarias, ejecuta el siguiente comando:

vnstat -h

Deberías obtener la siguiente salida:

 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

Para mostrar las estadísticas diarias, ejecuta el comando siguiente:

vnstat -d

Deberías obtener la siguiente salida:

 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

Puedes utilizar la opción -t para visualizar los días de mayor tráfico:

vnstat -t

Deberías obtener la siguiente salida

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

Para visualizar las estadísticas de tráfico de la red en tiempo real, ejecuta el comando siguiente:

vnstat -l

Deberías obtener la siguiente salida:

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

También puedes borrar las entradas de la base de datos de la interfaz ens3 y detener la monitorización mediante el siguiente comando:

vnstat -i ens3 --remove --force

Deberías obtener la siguiente salida:

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

También puedes volver a añadir la interfaz ens3 eliminada ejecutando el siguiente comando:

vnstat -i ens3 --add

Deberías obtener la siguiente salida:

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

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

A continuación, reinicia el servicio vnStat para aplicar los cambios:

systemctl restart vnstat

Conclusión

En este post hemos explicado cómo instalar vnStat en Ubuntu 22.04. También te mostramos cómo utilizarlo para supervisar el tráfico de red con varios ejemplos. Ahora puedes utilizar esta herramienta para analizar y solucionar problemas relacionados con la red. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...