Documentos de Académico
Documentos de Profesional
Documentos de Cultura
En el artículo Cómo monitorear el tráfico de red en tiempo real en GNU/Linux demostré cómo es posible
monitorear, en tiempo real, la utilización de los dispositivos de red y el consumo de ancho de banda utilizando
la herramienta nload. En este artículo voy a explicar cómo generar y mantener un registro estadístico del
consumo de recursos de red en GNU/Linux, utilizando la herramienta vnStat.
vnStat es un monitor de tráfico de red de línea de comandos para Linux y BSD que mantiene un registro (log)
del consumo de ancho de banda para las interfaces de red seleccionadas. Utiliza los datos estadísticos de las
interfaces de red provistos por el kernel como fuente de información. Por ende, vnStat no esnifea (sniffing)
tráfico y asegura un consumo extremadamente bajo de recursos del sistema. vnStat es software open source y se
libera bajo la licencia GPL.
Para instalar vnstat en Debian y derivados simplemente se debe ejecutar sudo apt-get install vnstat. En
CentOS es necesario agregar el repositorio RPMforge y luego ejecutar yum install vnstat.
vnStat funciona como un servicio que recolecta información periódicamente y la almacena en una base de datos
interna dentro del directorio /var/lib/vnstat/. Antes de iniciar el servicio vnstat, es necesario inicializar la
base de datos para cada interfaz de red que se desee monitorear, utilizando el siguiente comando (por ejemplo
para la interfaz eth0):
# vnstat -u -i eth0
Luego es posible iniciar el servicio para que se recolecte información periódicamente (de forma similar a la
herramienta systat aunque esta utiliza cron jobs, algún día le dedicaré un artículo a systat):
O también ejecutando:
# /etc/init.d/vnstat start
El servicio colecta y registra datos de consumo de ancho de banda diarios y mensuales. Ejecutando
simplemente vnstat, es posible ver el resumen de tráfico registrado hasta el momento (desde que inició el
servicio) y un estimado del consumo diario y mensual, discriminado por tráfico entrante (rx) y saliente (tx):
# vnstat
Database updated: Mon Jun 2 09:06:12 2014
monthly
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
May '14 171.28 MiB | 2.56 GiB | 2.72 GiB | 8.53 kbit/s
Jun '14 20.93 MiB | 342.74 MiB | 363.67 MiB | 25.00 kbit/s
------------------------+-------------+-------------+---------------
estimated 435 MiB | 7.26 GiB | 7.69 GiB |
daily
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
yesterday 14.16 MiB | 262.30 MiB | 276.46 MiB | 26.21 kbit/s
today 6.77 MiB | 80.43 MiB | 87.20 MiB | 21.80 kbit/s
------------------------+-------------+-------------+---------------
estimated 15 MiB | 210 MiB | 225 MiB |
Para obtener una curva del tráfico de las últimas 24 horas, discriminado por hora, ejecutar vnstat -h:
# vnstat -h
eth0 10:30
^ t
| t t
| t t
| t t
| t t t t t
| t t t t t t t t
| t t t t t t t t t t
| t t t t t t t t t t t t t t t
| t t t t t t t t t t t t t t t t t
| t t t t t t t t t t t t t t t t t t t t t
-+--------------------------------------------------------------------------->
| 11 12 13 14 15 16 17 18 19 20 21 22 23 00 01 02 03 04 05 06 07 08 09 10
De forma similar, es posible obtener un registro del tráfico diario (vnstat -d) y mensual (vnstat -m):
# vnstat -d
eth0 / daily
eth0 / monthly
Es una herramienta interesante para medir el consumo promedio (ver columna avg. rate), cada vez que se
necesita calcular el ancho de banda a contratar para un nuevo servidor. Claro que también se deben considerar
los picos de consumo por hora, para que las respuestas del servidor lleguen a tiempo a los clientes, de lo
contrario se puede ver perjudicado el rendimiento del mismo.