En la era de la computación en la nube, las máquinas virtuales (VM) se han vuelto muy comunes, mientras que el uso de máquinas físicas ha comenzado a disminuir gradualmente. En esta publicación, presentaremos las herramientas ‘vnStat’ e ‘iftop,’ que podemos usar para monitorear el consumo de datos en una VM.
Primero, estoy creando una máquina con los siguientes recursos:
CPU de 20 GHz
16 GB de RAM
20 GB de SSD
Estoy montando el disco con la imagen de Ubuntu 18.04 que está disponible en la CloudSigma’s biblioteca.
Ubuntu 18.04 : Preinstalado de 64 bits con controladores VirtIO, superusuario, Python 2.7.15, Pip 18.0, OpenSSL 1.1.0i, Cloud-init y últimas actualizaciones hasta el 2018-09-30.
A continuación, estoy actualizando todos los repositorios y paquetes existentes en la máquina.
|
1 2 |
sudo apt update sudo apt upgrade |
Ahora que nuestro sistema está actualizado, pasaré a nuestras herramientas, ‘vnStat’ e ‘iftop’.
VNSTAT
Según humdi, vnStat es un monitor de tráfico de red basado en consola para Linux y BSD que mantiene un registro del tráfico de red para la(s) interfaz(ces) seleccionada(s). Utiliza las estadísticas de la interfaz de red proporcionadas por el kernel como fuente de información. Esto significa que vnStat en realidad no estará analizando ningún tráfico y también garantiza un uso ligero de los recursos del sistema.
Algunas de las características de vnStat son:
- Incluso si el sistema se reinicia, los datos persisten.
- Puede monitorear múltiples interfaces al mismo tiempo.
- Hay varias opciones de salida, por ejemplo, por día, por semana, etc.
- Las políticas de retención de datos pueden ser configuradas por el usuario.
- Los meses se pueden configurar de acuerdo con el ciclo de facturación.
- La herramienta en sí es muy ligera y el uso de recursos es mínimo.
- El uso de CPU será el mismo independientemente del tráfico.
Instalación
Use el siguiente comando para instalar vnStat:
|
1 |
sudo apt install vnstat |
Debería detectar automáticamente la interfaz de red. En caso de que no lo haga, puedo verificar la interfaz con el comando:
|
1 |
ip addr |
En mi caso puedo ver dos interfaces:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 22:af:d1:32:d2:0b brd ff:ff:ff:ff:ff:ff inet XXX.XXX.XX.XXX/24 brd XXX.XXX.XX.XXX scope global dynamic ens3 valid_lft 1853sec preferred_lft 1853sec inet6 fe80::20af:d1ff:fe32:d20b/64 scope link valid_lft forever preferred_lft forever |
Puedo ignorar la interfaz de loopback. La interfaz que quiero monitorear es ‘ens3’. Puedo actualizar esto en vnStat usando el comando:
|
1 |
sudo vnstat -u -i ens3 |
Guía de uso
La guía de uso se puede ver usando el comando: vnStat –help
El uso se describirá de esta manera:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
vnStat 1.18 por Teemu Toivola <tst en iki punto fi> -q, --query consultar base de datos -h, --hours mostrar horas -d, --days mostrar días -m, --months mostrar meses -w, --weeks mostrar semanas -t, --top10 mostrar mejores 10 días -s, --short usar corta salida -u, --update actualizar base de datos -i, --iface seleccionar interfaz (por defecto: ens3) -?, --help corta ayuda -v, --version mostrar versión -tr, --traffic calcular tráfico -ru, --rateunit intercambiar configurada velocidad unidad -l, --live mostrar velocidad de transferencia en tiempo real Consulte también "--longhelp" para la lista completa de opciones y "man vnstat". |
Con la ayuda de estos comandos, podemos obtener las métricas de uso de datos.
Para monitorearlo de manera fácil e intuitiva, podemos instalar el panel de control de vnStat. A continuación se detallan los pasos para instalar el panel de control:
Instale las siguientes dependencias requeridas:
|
1 |
sudo apt install apache2 php wget unzip -y |
Después de la instalación de las dependencias requeridas, obtendremos el panel de control desde el repositorio de GitHub, lo descomprimiremos y lo colocaremos en el directorio de nuestro servidor web.
|
1 2 3 |
wget https://github.com/alexandermarston/vnstat-dashboard/archive/master.zip unzip master.zip sudo mv vnstat-dashboard-master/ /var/www/html/vnstat/ |
A continuación, necesitamos editar la configuración.
|
1 |
sudo vi /var/www/html/vnstat/config.php |
Las siguientes líneas necesitarían un cambio. Estoy marcando los cambios requeridos en negrita.
|
1 2 3 4 5 6 7 |
$use_predefined_interfaces = <strong>true</strong>; if ($use_predefined_interfaces == <strong>true</strong>) { $interface_list = <strong>["ens3"]</strong>; $interface_name<strong>['ens3']</strong> = "Interfaz de prueba"; } |
Puedo nombrar la interfaz para que sea más fácil de monitorear. Se pueden tener múltiples interfaces para monitorear. Podemos agregarlas aquí.
Después de haber realizado los cambios, abra <<IP-ADDRESS>>/vnstat
Ahora puedo ver los datos de una manera elegante.


IFTOP
iftop escucha el tráfico de red en una interfaz con nombre, o en la primera interfaz que pueda encontrar que parezca una interfaz externa si no se especifica ninguna. Muestra una tabla del uso actual del ancho de banda por pares de hosts. Debemos ejecutar iftop con los permisos suficientes para monitorear todo el tráfico de red en la interfaz.
Instalación
Podemos instalar Iftop usando el siguiente comando:
|
1 |
sudo apt install iftop |
Guía de uso
La guía de uso se puede ver usando el comando: iftop -h
El uso se describirá así:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
iftop: muestra el uso del ancho de banda usage en una interfaz por host Sinopsis: iftop -h | [-npblNBP] [-i interfaz] [-f filtro código] [-F red/máscara] [-G red6/máscara6] -h muestra este mensaje -n no realizar búsquedas de nombres de host -N no t convertir números de puerto a servicios -p ejecutar en modo promiscuo (mostrar tráfico entre otros hosts en el mismo segmento de red) -b no't mostrar un gráfico de barras de tráfico -B Mostrar ancho de banda en bytes -i interfaz escuchar en la interfaz especificada -f código de filtro usar código de filtro para seleccionar paquetes a contar (por defecto: ninguno, pero solo se cuentan los paquetes IPare counted) -F red/máscara mostrar flujos de tráfico dentro /y fuera de la red IPv4network -G net6/mask6 mostrar flujos de tráfico dentro /y fuera de la red IPv6network -l mostrar y contar el tráfico -IPv6 de enlace localtraffic (por defecto: desactivado) -P mostrar puertos así como los hosts -m límite establece el límite superior para la escala de ancho de banda -c archivo de configuración especifica un archivo de configuración alternativofile -t usar interfaz de texto sin ncurses Orden de ordenación: -o 2s Ordenar por el promedio de tráfico de (2s de la primera columna) -o 10s Ordenar por el promedio de tráfico de (10s de la segunda columna) [por defecto] -o 40s Ordenar por el promedio de tráfico de (40s de la tercera columna) -o origen Ordenar por dirección de origen -o destino Ordenar por dirección de destino Las siguientes opciones solo están disponibles en combinación con -t -s num imprimir una sola salida de texto después de num segundos, , luego salir -L num número de líneas a imprimir iftop, versión 1.0pre4 copyright (c) 2002 Paul Warren <pdw@ex-parrot.com> y colaboradores |
Requiere permisos de root para funcionar. Simplemente estoy usando sudo ya que mi usuario cloudsigma es un usuario sudoer. También puedo usar el comando ‘sudo su’ y luego ejecutar todos los comandos como usuario root.
El siguiente comando me mostraría una pantalla con todas las conexiones en la interfaz ‘ens3’ y las transacciones de datos:
|
1 2 |
sudo su iftop |
Una forma más sencilla si el requisito es capturar el tráfico de datos durante un período de tiempo determinado:
|
1 |
iftop -t -s 30 |
El comando anterior resumiría las transacciones de tráfico de datos durante los próximos 30 segundos y, una vez finalizado el tiempo, mostraría una tabla con todo el uso de datos y las tasas de transferencia.
Aunque iftop muestra tasas de transferencia en tiempo real, no almacena los datos ni dispone de un panel de control para visualizar e identificar patrones de forma intuitiva. Por lo tanto, si desea ver las tasas de transferencia de datos en tiempo real, le recomendamos iftop. Para el monitoreo del tráfico de datos durante un período más largo, recomendamos vnStat.
Esperamos que pueda aprovechar esta guía y aplicar los conceptos básicos sobre cómo usar vnStat e iftop para monitorear el consumo de datos dentro de una VM.
Comentarios
Aún no hay comentarios. Sea el primero.