Cuando dentro de nuestras tareas de administración y soporte está el verificar el estado de los servicios y roles de los servidores o equipos cliente con ambientes Linux, disponemos de una serie de alternativas para acceder a información detallada sobre todo lo que ocurre internamente. De hecho, el propio sistema nos ofrece comandos como top, htop, atop para disponer de esta información y a partir de ahí llevar a cabo los procesos de administración requeridos.
Es por esta razón que hoy Solvetic hablará de una herramienta que es mucho más detallada que estos comandos integrados de Linux y es Hegemon.
Con esta utilidad podemos acceder a detalles como:
- Monitoreo del uso de CPU, memoria y uso de swap.
- Intervalo de actualización de la recopilación de datos configurable cuyo valor predeterminado es 3 segundos.
- Puede monitorear la temperatura del sistema y las velocidades del ventilador.
- Está en la capacidad de llevar a cabo pruebas unitarias.
- Se puede expandir el flujo de datos con el fin de acceder a una visualización gráfica más detallada de los datos.
- Arquitectura MVC limpia de alta calidad de código.
- Soporte de macOS y BSD ya que hoy en día solo es compatible con Linux.
- Capacidad de seleccionar y reordenar los flujos de datos.
- Posibilidad de monitorear el disco y la E/S de la red y uso de GPU.
- Control del mouse.
1. Cómo instalar Hegemon en Linux
Hegemon requiere de Rust 1.26 o posterior y de los archivos de desarrollo para libsensors. Estos archivos los podemos encontrar en el repositorio de paquetes de cada distribución como lm_sensors-devel en Fedora y libsensors4-dev en Ubuntu.
Para la instalación de estos archivos ejecutaremos alguna de las siguientes líneas en base a la distribución usada:
yum install lm_sensors-devel
dnf install lm_sensors-devel
apt install libsensors4-dev
Ingresamos la letra S para confirmar la descarga e instalación
Una vez finalice tendrá el siguiente aspecto:
Una vez se haya instalado Rust, es hora de llevar a cabo la instalación de Hegemon a través del gestor de paquetes de Rust llamado cargo. Para ello debemos instalar en primer lugar cargo con la siguiente línea:
sudo apt install cargoAllí ingresamos la letra S para confirmar la descarga e instalación.
Podemos ver que se inicia el proceso de instalación.
Ahora usaremos el gestor de paquetes de Rust, cargo, para llevar a cabo la instalación de Hegemon:
cargo install hegemonAllí vemos que se da inicio al proceso de descarga de los respectivos complementos de la utilidad.
Una vez finalice este proceso veremos lo siguiente:
Una vez se complete este proceso, procedemos a ejecutar la utilidad con la siguiente línea:
HegemonPor defecto se desplegará lo siguiente. Allí encontramos las siguientes secciones:
Para expandir cada sección, debemos seleccionarlo y presionar la tecla "Espacio" en nuestro teclado con el fin de acceder a información más detallada sobre la utilización del recurso seleccionado en Linux. Podemos aumentar o disminuir el intervalo de actualización, usando las teclas + y - del teclado. Además podemos ver en detalle cada aspecto del sistema con sus capacidades y porcentajes de uso actuales.
export PATH="$HOME/.cargo/bin:$PATH"
2. Cómo agregar nuevos parámetros en Hegemon (Linux)
Mientras los comandos de monitoreo común como top, el cual ha sido desarrollado para mostrar métricas específicas como el uso de la CPU y la memoria, la utilidad Hegemon va mucho más allá; ya que ésta despliega la salida de los módulos de monitoreo, los cuales son llamados flujos de datos. El comportamiento de estos flujos está definido por una función llamada Stream.
Para usar un nuevo Stream, solo se necesita proporcionar algunas propiedades básicas como el nombre y la descripción, y un método que permita recuperar un valor de datos numérico. A partir de este momento todo lo demás será administrado por Hegemon, incluyendo la programación de actualizaciones, el diseño y la representación, así como el cálculo de estadísticas.
Los objetos de una Stream son administrados por StreamProviders lo cual permite que las secuencias se puedan determinar en tiempo de ejecución.
- Crear un StreamProvider
- Permitir que este retorne los objetos de Stream desde el método de flujos.
- Registrar el proveedor en proveedores /mod.rs.
En el siguiente enlace encontramos un ejemplo de GitHub sobre como añadir un nuevo Stream para Hegemon y así tener la posibilidad y la capacidad de desplegar mucha más información de la establecida por defecto:
Con Hegemon, disponemos de una utilidad práctica para acceder a información práctica para el monitoreo del sistema.