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.