Parece que el curso esta teniendo éxito, así que hoy vamos a continuar con sistemas para monitorear nuestro Linux, haciendo uso de herramientas web y comandos para entender como podemos analizar a donde se van los consumos de recursos.

Contenido: instalación y uso de Ntopng, instalando los repositorios y uso de Webmin y finalmente vamos a conocer en detalle el comando TOP.

1- Ntopng

Es una herramienta de monitoreo de red gratuita, de código abierto y muy útil que se puede utilizar para analizar el tráfico de red en tiempo real. Es una versión de alto rendimiento, de bajos recursos y viene a ser la evolución de ntop, basado en libpcap. Es multiplataforma así que se puede correr en Unix, MacOSX y Windows. ntopng monitorea e informa sobre varios protocolos, incluidos TCP, UDP, ICMP, DLC, IPX, ARP, Netbios, Decnet y muchos más.

Características

  • Geolocalización de direcciones IP.
  • Muestra el tráfico de red y los hosts con IPv4 / IPv6.
  • Analiza el tráfico y lo clasifica según la fuente / destino.
  • Almacenar estadísticas de tráfico en formato RRD.
  • Informar y ordenar el uso del protocolo IP por tipo de protocolo.

Paso 1- Instalar Ntopng
Por defecto, Ntopng no está disponible en el repositorio de Debian 10. Pero los vamos a agregar manualmente. Primeramente los descargamos e instalamos.

wget http://apt.ntop.org/buster/all/apt-ntop.deb

dpkg -i apt-ntop.deb

Una vez que se agrega el repositorio, actualizamos e instale Ntopng con apt:

apt update
apt install pfring-dkms nprobe ntopng n2disk cento -y

Una vez que se haya completado la instalación, iniciamos el servicio Ntopng con systemctl:

systemctl start ntopng
systemctl enable ntopng

Paso 2- Configurando Ntopng

El archivo de configuración predeterminado de Ntopng se encuentra en /etc/ntopng/ntopng.conf. Vamos a editarlo para hacer algunos cambios:

nano /etc/ntopng/ntopng.conf

Le agregamos lo siguiente

-G=/var/run/ntopng.pid
# Interface de red
-i=ens33
# Puerto Acceso web
-w=3000

Guardamos el archivo y a continuación, creamos un nuevo archivo llamado ntopng.start para definir la red.

nano /etc/ntopng/ntopng.start

Donde ponemos los siguientes datos, que son nuestra red y la interface a usar:

--local-networks "192.168.254.0/24" 
--interface 1

Guardamos y reiniciamos el servicio para que tome los cambios.

systemctl restart ntopng

Paso 3- Abrir puertos de firewall

ufw allow 3000/tcp
ufw allow 3000/udp

Paso 4- Acceso Ntopng

Ntopng ahora se está ejecutando y escuchando en el puerto 3000. Vamos al navegador web y ponemos la URL http://your-server-ip:3000.
Nos pedirá el usuario y la contraseña, que los predeterminados son admin / admin y al hacer clic en Login nos pedirá que cambiemos la clave que viene por defecto.

2- Webmin

Es una herramienta de configuración de sistemas accesible vía web para sistemas Unix, y está escrito en Perl. Con él se pueden configurar aspectos internos de muchos sistemas libres, como el servidor web Apache, PHP, MySQL, DNS, Samba, DHCP, entre otros.

Parte 1- Agregando repositorios

Editamos los repositorios en /etc/apt/sources.list y agregamos lo siguiente:

deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib

Parte 2- Cargamos la llave

wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc

Parte 3- Instalamos webmin y comprobando versión

apt update
apt install webmin

Parte 4- Ingresando a webmin
Ahora que esta instalado abrimos un navegador y colocamos: https://localhost:10000/

Parte 5- Abrir puertos del firewall

ufw allow 10000/tcp
ufw allow 10000/udp

Documentación de Webmin: https://doxfer.webmin.com/Webmin/Main_Page

3- Comando TOP

El comando top nos ayuda a conocer los procesos de ejecución del sistema (y más cosas) en tiempo real y es una de las herramientas más importantes para un administrador. Nos mostrará una gran cantidad de datos que se actualizan cada 3 segundos así que analizaremos paso a paso que es cada cosa que se muestra.

1- top – 16:29:19 up 9 min, 2 users, load average: 0,03, 0,21, 0,22

La primer línea es fácil, vemos, Hora y tiempo que hace que esta corriendo el sistema (up), cantidad de usuarios que esta mostrando 2 porque tengo nksistemas y root, y por último load average es la carga promedio del equipo.

2- Task: 137 total, 1 running, 136 slleping, 0 stopped, 0 zombie

Línea número 2, vemos la cantidad de tareas totales o procesos y en que estado están:

  • Running procesos ejecutándose actualmente o preparados para ejecutarse.
  • Sleeping procesos dormidos esperando que pase algo (depende del proceso) ejecutarse.
  • Stopped proceso detenido.
  • Zombie el proceso no está corriendo y quedan en este estado cuando el proceso que los inició murió o fue matado con el comando kill.

3- %Cpu(s): 1,7 us, 0,3 sy, 0,0 ni, 98,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st

Línea Número 3, nos muestra los porcentajes de uso del procesador diferenciado por el uso que se le de.

  • us (usuario): tiempo de CPU de usuario.
  • sy (sistema): tiempo de CPU del núcleo (kernel).
  • ni (nice): tiempo de CPU del usuario que tienen un “nice” positivo
  • id (inactivo): tiempo de CPU en procesos inactivos (idle).
  • wa (en espera): tiempo de CPU en procesos en espera.
  • hi (interrupciones de hardware): interrupciones de hardware.
  • si (interrupciones de software): tiempo de CPU en interrupciones de software.
  • st (steal time): sólo aplica cuando la distro corre en una máquina virtual. Es el tiempo que algún proceso de nuestro sistema estaba esperando en la cola de ejecución, pero el hypervisor eligió no darnos tiempo de procesador, y asignarlo a otro procesador virtual.

4- KiB Mem: 2051776 total, 988684 used, 1063092 free, 55764 buffers

Línea número 4, hace referencia al uso de la memoria física del equipo.

  • Memoria total.
  • Memoria utilizada.
  • Memoria libre.
  • Memoria utilizada por buffer.

5- KiB Swap: 1012732 total, 0 used, 1012732 free. 513300 cached Mem
Línea número 5, utilización de la memoria virtual

  • Memoria total.
  • Memoria utilizada.
  • Memoria libre.
  • Memoria en caché.

6- PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

Línea número 6, muestra el detalle de los procesos en general teniendo en cuenta lo siguiente:

PID: es el identificador de proceso.
USER (USUARIO): usuario propietario del proceso.
PR: prioridad del proceso. Si aparece un RT sigifica que corre en tiempo real.
NI: asigna la prioridad. Si tiene un valor bajo (hasta -20) quiere decir que tiene más prioridad que otro con valor alto (hasta 19).
VIRT: cantidad de memoria virtual utilizada por el proceso.
RES: cantidad de memoria RAM física que utiliza ese proceso.
SHR: memoria compartida.
S (ESTADO): estado del proceso.
%CPU: porcentaje de CPU utilizado desde la última actualización.
%MEM: porcentaje de memoria física utilizada por el proceso desde la última actualización.
TIME+ (HORA+): tiempo total de CPU que ha usado el proceso desde su inicio.
COMMAND: comando utilizado para iniciar el proceso.

7- Podemos utilizar las siguientes teclas para ampliar el uso de TOP, esto es mientras esta corriendo:

M –> Ordenar por uso de memoria
P –> Ordenar por uso de CPU
T –> Ordenar por tiempo de CPU utilizado
F –> seleccionar campo por el cual ordenar la lista de procesos
i –> mostrar u ocultar procesos idle y zombie
m, l, t, 1 –> muestra u oculta las líneas del resumen (parte de arriba)
f, o –> agregar/quitar columnas, cambiar el orden
s –> cambia el tiempo de actualización de la pantalla (por defecto es de 3 segundos)
z –> Cambia de color
k –> Matar un proceso (luego pregunta el PID)
r –> “renice” cambia el nice value de un proceso (luego pregunta el PID)
q –> Salir de top
h –> ayuda

Finalmente veamos el video del curso:

6 Comentarios

  1. Muchas gracias por tu respuesta… en época de cuarentena y encierro forzoso, que mejor oportunidad para seguir tu oportuna recomendación. Saludos y muchos éxitos!!!

      • Jorge, estuve leyendo y advierten en varios forums que esta versión de Linux es para usuarios avanzados… y la verdad que es toda una nueva gama de terminología muy nueva para mi… empezando que para descargar están las iso «non-pae» y los AMD… y buscando que es non-pae que exigen hasta 64Gb de memoria física…creo que pasaré esta vez por ausencia absoluta de conocimientos… otro novato que murió en el intento… jejeje! Muchas gracias!!! Salu2 🤷‍♂️

        • Yasif, es verdad que Debian si lo queres usar a fondo necesitas conocimientos avanzados, pero este curso la idea es para alguien que no sabe nada, y lo hacemos simple instalando y explicando cada cosa paso a paso. No te desanimes, tenes que ir haciendo todo en tu laboratorio y vas a ver que salís aprendiendo.

  2. Buenas noches, he notado este curso desde un comienzo -te sigo en YouTube y a través del FeedReader- pero desde la primera clase muy oportunamente hiciste la aclaración que esto va dirigido a montar un servidor. No es mi caso, ni los recursos, equipo o tiempo poseo para ofrecer un servidor.
    He quiero aprender a instalar y aprovechar un Linux/Ubunto en un computador portátil de apenas 512MB de RAM y disco duro de 40GB. Y he leído de distribuciones de Linux que no demanda muchos recursos y me podrían servir para sacarle provecho a este portátil que está en excelentes condiciones.
    Me doy cuenta que este no es el curso que necesito, pero quisiera preguntar si ya has publicado un curso o similares que se adapte a mi necesidad o si podría sugerir este tema para futuros proyectos.
    Muchas gracias!!!
    J.

Deja un comentario