Don Quijote de la Mancha -Miguel de Cervantes-

 

Vnstat CLI Network Bandwidth Monitor

3
(1)

Monitorizando  el uso del ancho de banda de nuestros interfaces en Linux OS,s

Objetivo

Monitorizar el consumo del ancho de banda de nuestros interfaces de red, con ello podremos tomar las decisiones que estimemos oportunas.

Usando el software  vnstat

El software  vnstat es una buena herramienta para monitorizar tu ancho de banda de internet. Incorpora un deamon que recoge y almacena detalles de tu red, los datos quedan almacenados después del arranque de la maquina. 

Installación

El paquete vnstat viene incluido en las principales distribuciones, por lo que su instalación es posible vía gestor de paquetes de tu distribución o vía CLI. Tras su instalación, habremos de arrancar el servicio vnstat para que inicie la recogida y almacenamiento de los datos.Para la obtención de los datos en formato de imagen, sera necesario instalar adicionalmente el paquete vnstati 
$ sudo apt install vnstat vnstati

Arrancamos y permitimos el servicio vía systemctl :
$ sudo systemctl enable --now vnstat

$ sudo systemctl status vnstat
● vnstat.service – vnStat network traffic monitor Loaded: loaded (/usr/lib/systemd/system/vnstat.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2022-06-30 16:11:07; 6s ago Main PID: 25854 (vnstatd)First, we enabled and then started the service using the enable –now parameters. Then we checked that the service was enabled and running using the status parameter.Now that the service is running, we need to give it some time until it collects enough data before we can see the usage statistics for the first time.

Viendo las estadísticas en la consola

Es posible de manera sencilla ver las estadísticas de consumo en la consola ejecutando el comando vnstat. Con ello, podremos visualizar el tráfico recibido, transmitido y el total por cada interfaces de nuestra red.Ejecutamos vnstat para ver el uso del ancho de banda:
$ vnstat

Database updated: 2023-01-11 14:40:00

eth0 since 2023-01-08

rx: 33.04 MiB tx: 2.80 MiB total: 35.84 MiB

monthly
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
2023-01 33.04 MiB | 2.80 MiB | 35.84 MiB | 327 bit/s
------------------------+-------------+-------------+---------------
estimated 94.51 MiB | 7.66 MiB | 102.17 MiB |

daily
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
yesterday 5.79 MiB | 242.13 KiB | 6.03 MiB | 585 bit/s
today 17.50 MiB | 2.34 MiB | 19.83 MiB | 3.15 kbit/s
------------------------+-------------+-------------+---------------
estimated 28.63 MiB | 3.82 MiB | 32.45 MiB |
 Podemos ver las estadísticas del mes actual, interfaces, diarios y totales.Los detalles relativos a “estimated”, es una estimación del  consumo diario y mensual basado en consumos anteriores.Podemos de igual manera, ver la información estadística por horas, días, meses y años usando los parámetros -h, -d, -m e -y respectivamente.En caso de que tengamos varios interfaces, es posible su selección con el parámetro -i seguido por el nombre del interface.Como ejemplo, usemos el parámetro -d mas el  -i eth0 para ver estadisticas diarias. 
# vnstat -d -i eth0

eth0 / daily

day rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
2023-01-08 634.90 KiB | 41.90 KiB | 676.80 KiB | 64 bit/s
2023-01-09 9.14 MiB | 190.86 KiB | 9.32 MiB | 905 bit/s
2023-01-10 5.79 MiB | 242.13 KiB | 6.03 MiB | 585 bit/s
2023-01-11 17.84 MiB | 2.35 MiB | 20.19 MiB | 3.17 kbit/s
------------------------+-------------+-------------+---------------
estimated 28.87 MiB | 3.80 MiB | 32.66 MiB |
 

Creando una Imagen

Si nuestra elección es visualizar la información en formato de imagen, podemos usar el comando vnstati. Nos mostrará una imagen en formato png.Los parámetros del comando vnstati son similares a los de vnstat. Por lo que podremos visualizar el uso del interface de forma mensual con los parámetros  -m -i eth0.Con el parámetro -o detallaremos el nombre de la salida (output)Como ejemplo, generaremos una imagen llamada mensual.png con el uso del ancho de banda del interface eth0:
$ vnstati -m -i eth0 -o mensual.png

Veremos la imagen con contenido similar al obtenido en la consola.
Es posible generar un resumen usando los parámetros -s, -hs, o -vs. El parámetro -s genera un resumen genérico con el consumo del ancho de banda en los últimos días y últimos meses.Los parámetros -hs y vs mejora la opción del parámetro -s añadiendo el ratio de transferencia durante las ultimas 24 horas. Con los parámetros -vs generaremos una imagen vertical con esta información. Si preferimos la opción horizontal, podemos usar -hs.Para generar un resumen vertical con los detalles del interface eth0: 
$ vnstati -vs -i eth0 -o summary.png
 

Alerta cuando el uso del ancho de banda alcanza un Límite

Otra funcionalidad de vnstat es el parámetro -alert. Podremos usarlo para obtener una alerta cuando el uso excede un determinado límite.El parámetro -alert necesita seis argumentos:
  • Modo de salida
  • Código de salida
  • Intervalo de tiempo
  • Recepción, Transmisión o Total
  • Límite
  • Unidad del límite
Mas información esta disponible en la página man.El bash script puede incluirse en un cron job diario.Aquí tenemos un bash script para obtener una alerta cuando el uso de ancho de banda transmitido exceda el límite de 1 TiB:
#!/bin/bash
if ! vnstat -i eth0 --alert 0 3 monthly tx 1 TiB; then
# The eth0 interface exceeded the 1 TiB transmitted limit
# We can send an email to alert us
fi
 

Conclusión

En este post, hemos visto como monitorizar el uso del ancho de banda de Internet de nuestra maquinaSe ha descrito como instalar el paquete vnstat, vnstati y arrancar el servicio. Tras esto, vimos como monitorizar el uso del ancho de banda con vnstat y vnstati (crear imágenes), así como usar el parámetro -alert para detectar usos por encima de los límites establecidos. 
 
vnstati
vnstati

How useful was this post?

Thank you for reading this post, don't forget to subscribe!

Click on a star to rate it!

Average rating 3 / 5. Vote count: 1

No votes so far! Be the first to rate this post.

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

0 - 0

Thank You For Your Vote!

Sorry You have Already Voted!

Leave a Reply

Your email address will not be published. Required fields are marked *

error

Enjoy this blog? Please spread the word :)