Este artículo forma parte de nuestra serie de artículos de supervisión continua del rendimiento.
En este artículo, centrémonos en cómo monitorear el tráfico de red y registrarlo para su posterior análisis mediante la utilidad vnstat.
vnstat es una utilidad de línea de comandos que muestra y registra el tráfico de red de las interfaces de sus sistemas. Esto depende de las estadísticas de red proporcionadas por el kernel. Por lo tanto, vnstat no agrega ninguna carga adicional a su sistema para monitorear y registrar el tráfico de la red.
1. Instalar vnStat
Instale vnStat en su sistema desde el repositorio específico para sus distribuciones de Linux.
Por ejemplo, en Ubuntu, use apt-get para instalarlo como se muestra a continuación.
$ apt-get install vnstat
Si prefiere instalarlo desde la fuente, descargue la fuente vnStat desde aquí o use el wget como se muestra a continuación para descargarlo e instalarlo.
Tenga en cuenta que también puede utilizar Mergecap y Tshark para analizar el tráfico de red.
wget http://humdi.net/vnstat/vnstat-1.11.tar.gz cd vnstat-1.11 make make install
Tenga en cuenta que no necesita hacer "./configure" que normalmente hace para otras instalaciones basadas en fuentes.
Dado que vnstat depende de la información proporcionada por el kernel, ejecute el siguiente comando para verificar si el kernel proporciona toda la información que espera vnStat.
# vnstat --testkernel This test will take about 60 seconds. Everything is ok.
2. Elija una interfaz para monitorear usando vnStat
vnStat no supervisa ninguna interfaz a menos que usted lo solicite específicamente.
Para comenzar a monitorear eth0, haga lo siguiente. Esto debe ejecutarse una sola vez. Como puede ver a continuación, esto crea un archivo de base de datos eth0 en el directorio /var/lib/vnstat que contendrá todos los mensajes de registro de tráfico de red para esta interfaz específica.
# vnstat -u -i eth0 Error: Unable to read database "/var/lib/vnstat/eth0". Info: -> A new database has been created.
Para ver todas las interfaces disponibles en su sistema que vnStat puede monitorear, haga lo siguiente.
# vnstat --iflist Available interfaces: lo eth0 eth1 sit0
Inicie vnstatd (demonio vnstat), que supervisará y registrará esta información en segundo plano.
# vnstatd -d # ps -ef | grep vnst root 14353 1 0 09:12 ? 00:00:00 vnstatd -d root 14355 330 0 09:12 pts/1 00:00:00 grep vnst
Nota:puede agregar "vnstatd -d" a su archivo /etc/rc.local, para que se inicie automáticamente cada vez que reinicie su sistema.
3. Uso básico de vnStat
vnstat sin ningún argumento le dará un resumen rápido con la siguiente información:
- La última vez que se actualizó la base de datos vnStat ubicada en /var/lib/vnstat/
- Desde que comenzó a recopilar estadísticas para una interfaz específica
- Los datos estadísticos de la red (bytes transmitidos, bytes recibidos) de los últimos dos meses y los últimos dos días.
# vnstat Database updated: Sat Oct 15 11:54:00 2011 eth0 since 10/01/11 rx: 12.89 MiB tx: 6.94 MiB total: 19.82 MiB monthly rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- Sep '11 12.90 MiB | 6.90 MiB | 19.81 MiB | 0.14 kbit/s Oct '11 12.89 MiB | 6.94 MiB | 19.82 MiB | 0.15 kbit/s ------------------------+-------------+-------------+--------------- estimated 29 MiB | 14 MiB | 43 MiB | daily rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- yesterday 4.30 MiB | 2.42 MiB | 6.72 MiB | 0.64 kbit/s today 2.03 MiB | 1.07 MiB | 3.10 MiB | 0.59 kbit/s ------------------------+-------------+-------------+--------------- estimated 4 MiB | 2 MiB | 6 MiB |
Nota:Si acaba de instalar vnStat, aparecerá el siguiente mensaje "eth0:Aún no hay suficientes datos disponibles". Espere un momento y vuelva a intentar el comando.
4. vnStat horas, días, meses, semanas Datos de red
Use “vnstat -h” (o) “vnstat –hours” para el desglose de datos estadísticos de la red por hora. Esto también muestra un gráfico basado en texto.
Use "vnstat -d" (o) "vnstat –days" para el desglose de datos estadísticos de la red por día.
# vnstat -d eth0 / daily day rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- 10/10/11 2.48 MiB | 1.28 MiB | 3.76 MiB | 0.36 kbit/s 10/11/11 4.07 MiB | 2.17 MiB | 6.24 MiB | 0.59 kbit/s 10/12/11 4.30 MiB | 2.42 MiB | 6.72 MiB | 0.64 kbit/s 10/13/11 2.06 MiB | 1.10 MiB | 3.16 MiB | 0.60 kbit/s ------------------------+-------------+-------------+--------------- estimated 3 MiB | 1 MiB | 4 MiB |
Use "vnstat -m" (o) "vnstat –months" para el desglose de datos estadísticos de la red por mes.
# vnstat --m eth0 / monthly month rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- Sep '11 12.90 MiB | 6.90 MiB | 19.81 MiB | 0.14 kbit/s Oct '11 12.92 MiB | 6.96 MiB | 19.89 MiB | 0.15 kbit/s ------------------------+-------------+-------------+--------------- estimated 29 MiB | 14 MiB | 43 MiB |
De forma similar a los días y los meses, utilice "vnstat -m" (o) "vnstat –months" para el desglose de los datos estadísticos de la red por semana.
5. Exportar los datos a Excel u otra DB
Si desea exportar los datos de monitoreo de la red a Excel u otra base de datos, puede volcar los datos en un formato de texto delimitado por punto y coma, que puede importar a Excel u otra base de datos.
Las primeras líneas de la salida –dumpdb contienen información de encabezado. Después de las líneas del encabezado, tiene 30 líneas que comienzan con "d"; (d;0;1318316406;1;0;386;698;1). Esta línea tiene la siguiente información separada por punto y coma.
- d – significa días
- 0 – número del día. 0 indica hoy.
- 1318316406:datos en formato Unix
- Seguido de esto, contiene los bytes transmitidos y recibidos
$ vnstat --dumpdb interface;eth0 created;1218562937 updated;1218546895 totalrx;3 totaltx;1 ... ... d;0;1328316406;1;0;386;698;1 d;1;1345262937;2;1;494;289;1
También puede usar "vnstat –oneline", que muestra el resumen del tráfico en una sola línea donde los valores están delimitados con punto y coma.
$ vnstat --oneline 1;eth0;10/11/11;1.45 MiB;801 KiB;2.23 MiB;0.59 kbit/s;Oct '11;3.93 MiB;2.06 MiB;6.00 MiB;0.05 kbit/s;3.93 MiB;2.06 MiB;6.00 MiB
6. Mostrar estadísticas de red en vivo
Use "vnstat -l" o "vnstat –live" para mostrar la información estadística de la red en vivo.
$ vnstat -l Monitoring eth0... (press CTRL-C to stop) rx: 2 kbit/s 5 p/s tx: 2 kbit/s 4 p/s
Después de presionar Ctrl-C para detenerlo, vnstat mostrará un resumen del período de tiempo que estuvo funcionando el monitor en vivo.
7. Cambiar el formato de salida predeterminado de vnstat
Use "vnstat -s" o "vnstat –short" que mostrará un breve resumen de las estadísticas de la red. Esto incluye estadísticas de hoy, ayer y del mes actual.
$ vnstat -s (--short) rx / tx / total / estimated eth0: Oct '11 3.93 MiB / 2.06 MiB / 6.00 MiB / 13.00 MiB yesterday 2.48 MiB / 1.28 MiB / 3.76 MiB today 1.45 MiB / 801 KiB / 2.23 MiB / --
También puede usar "vnstat –style 0", que dará una salida de columna estrecha, que es más fácil de leer que la salida de columna más ancha predeterminada.
$ vnstat --style 0
Los siguientes son los números de estilo disponibles:
- 0:salida estrecha
- 1 – Habilitar columna de barra
- 2:habilita la columna de la barra y muestra la tasa de tráfico promedio en resumen
- 3:muestra la tasa de tráfico promedio en todos los resultados
- 4:cuando se combina con el modo en vivo (vnstat -l), deshabilita los caracteres de control del terminal
8. Mostrar los 10 días de mayor tráfico
Use "vnstat -t" o "vnstat –top10" para mostrar los 10 días de mayor tráfico de todos los tiempos.
$ vnstat --top10 eth0 / top 10 # day rx | tx | total | avg. rate -----------------------------+-------------+-------------+--------------- 1 10/12/11 4.30 MiB | 2.42 MiB | 6.72 MiB | 0.64 kbit/s 2 10/11/11 4.07 MiB | 2.17 MiB | 6.24 MiB | 0.59 kbit/s 3 10/10/11 2.48 MiB | 1.28 MiB | 3.76 MiB | 0.36 kbit/s .... -----------------------------+-------------+-------------+---------------
Artículos anteriores de la serie de supervisión y ajuste del rendimiento de Linux:
- Introducción a la supervisión y ajuste del rendimiento de Linux
- 15 ejemplos prácticos de comandos superiores de Linux
- 7 ejemplos prácticos de comandos PS para la supervisión de procesos
- 10 ejemplos útiles de Sar (Sysstat) para la supervisión del rendimiento de UNIX/Linux
- 10 ejemplos de iozone para medir el rendimiento de E/S de disco en Linux
- 24 ejemplos de iostat, vmstat y mpstat para la supervisión del rendimiento de Linux