Monitorizar el tráfico de red con vnStat en Ubuntu 20.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.

En este tutorial, te mostraremos cómo instalar y utilizar vnStat para supervisar el tráfico de red.

Requisitos previos

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

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.6.tar.gz

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

tar -xvzf vnstat-2.6.tar.gz

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

cd vnstat-2.6
./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.6 by Teemu Toivola 

Cuando hayas terminado, puedes pasar al siguiente paso.

Gestionar el servicio vnStat

A continuación, tendrás que copiar el archivo de servicio vnStat systemd desde el origen de vnStat al directorio /etc/systemd/system/:

cp -v vnstat-2.6/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 verificar el estado del servicio vnStat utilizando el siguiente comando:

systemctl status vnstat

Deberías obtener la siguiente salida:

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

Cuando hayas terminado, puedes pasar al siguiente paso.

Trabajar con vnStat

vnStat viene con varias opciones que te ayudan a monitorizar 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.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.

Antes de utilizar vnStat, deberás esperar algún tiempo para actualizar 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
 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

También puedes especificar la interfaz de red concreta utilizando 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 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 |

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

vnstat -h

Deberías obtener la siguiente salida:

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

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

vnstat -d

Deberías obtener la siguiente salida:

 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 |

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   2020-11-12   164.83 KiB |  495.17 KiB |  660.01 KiB |       62 bit/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:     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

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 la guía anterior, has aprendido a instalar vnStat y a utilizarlo para supervisar el tráfico de red. Espero que esta herramienta te ayude a analizar y solucionar problemas relacionados con la red. No dudes en preguntarme si tienes alguna duda.

Scroll al inicio