Cómo instalar la solución de monitorización Sensu en Debian 11
Sensu es un sistema de supervisión de infraestructuras y aplicaciones de código abierto diseñado para la supervisión tanto de contenedores como de no contenedores y de infraestructuras multi-nube. Sensu es una solución de supervisión escalable, segura e integrada para tu infraestructura tecnológica y de servidores. Puede utilizarse para supervisar servidores, la salud de las aplicaciones y los servicios, y enviar notificaciones de alerta a múltiples objetivos con integración de terceros.
En este tutorial, aprenderás a instalar el software de monitorización Sensu en un servidor Debian 11. También aprenderás a configurar Sensu CLI para gestionar Sensu. Por último, aprenderás a configurar la monitorización del servidor con Sensu a través del Agente Sensu.
Requisitos previos
Para esta instalación de Sensu, necesitarás los siguientes requisitos:
- Un servidor Debian 11 con 4 GB de RAM y 2 CPUs. Este requisito depende mucho de tu entorno de infraestructura.
- Un usuario no root con privilegios sudo/administrador.
- Se utilizará una máquina Linux como objetivo a monitorizar.
Añadir el repositorio de Sensu
Para empezar con la instalación de Sensu, tendrás que añadir el repositorio de paquetes de Sensu a todos tus sistemas, tanto al Sensu Backend como a los servidores de destino.
El repositorio Sensu está disponible en packagecloud.io, y puedes añadirlo a tu sistema manualmente o mediante el script bash proporcionado por packagecloud.io.
Antes de añadir el repositorio de Sensu, ejecuta el siguiente comando apt para instalar las dependencias básicas de los paquetes. Pulsa Y y Enter cuando se te pida para confirmar la instalación.
sudo apt install debian-archive-keyring curl gnupg apt-transport-https
Ahora ejecuta el siguiente comando para añadir el repositorio de Sensu. Este script bash añadirá automáticamente el repositorio Sensu y la clave GPG a tus servidores Debian.
curl -s https://packagecloud.io/install/repositories/sensu/stable/script.deb.sh | sudo bash
Si quieres añadir manualmente el repositorio Sensu, sigue estos pasos:
Crea un directorio de llaveros para almacenar la clave GPG del repositorio Sensu.
mkdir -p /etc/apt/keyrings/ curl -fsSL https://packagecloud.io/sensu/stable/gpgkey | gpg --dearmor > /etc/apt/keyrings/sensu_stable-archive-keyring.gpg
Añade el repositorio Sensu utilizando el siguiente comando. Este repositorio es para Debian 11 Bullseye y la última versión estable de Sensu.
cat <<EOF | sudo tee /etc/apt/sources.list.d/sensu_stable.list deb [signed-by=/etc/apt/keyrings/sensu_stable-archive-keyring.gpg] https://packagecloud.io/sensu/stable/debian bullseye main deb-src [signed-by=/etc/apt/keyrings/sensu_stable-archive-keyring.gpg] https://packagecloud.io/sensu/stable/debian bullseye main EOF
Ahora puedes actualizar y refrescar el índice de paquetes de Debian utilizando el siguiente comando apt.
sudo apt update
Instalación del backend de Sensu
El corazón principal de la solución de monitorización Sensu es un «Sensu Backend», que proporciona una API HTTP que puede ser utilizada por un administrador a través de la línea de comandos «sensuctl». API WebSocket que utilizará el «Agente Sensu» para la monitorización, y también proporciona un panel de interfaz web para gestionar Sensu.
Además, Sensu utiliza«etcd» para almacenar datos, especialmente en grandes despliegues de Sensu Cluster.
Para instalar Sensu Backend, ejecuta el siguiente comando apt. La instalación comenzará automáticamente.
sudo apt install sensu-go-backend
Una vez finalizada la instalación, descarga la muestra de configuración del backend de Sensu en «/etc/sensu/backend.yml». A continuación, edita el archivo «/etc/sensu/backend.yml» utilizando el siguiente comando.
sudo curl -L https://docs.sensu.io/sensu-go/latest/files/backend.yml -o /etc/sensu/backend.yml sudo nano /etc/sensu/backend.yml
Descomenta la siguiente configuración.
cache-dir: "/var/cache/sensu/sensu-backend" config-file: "/etc/sensu/backend.yml"
log-level: «debug»
state-dir: «/var/lib/sensu/sensu-backend»
Cuando hayas terminado, guarda y cierra el archivo.
A continuación, ejecuta el siguiente comando systemctl para iniciar el servicio Sensu Backend y habilitarlo. El servicio Sensu Backend se ejecutará automáticamente al iniciar el sistema.
sudo systemctl start sensu-backend sudo systemctl enable sensu-backend
Comprueba y verifica el servicio Sensu Backend utilizando el siguiente comando. Deberías ver que el servicio Sensu Backend se está ejecutando y está habilitado.
sudo systemctl status sensu-backend
Una vez que el backend de Sensu esté en marcha, ahora deberás inicializar la instalación y configuración del backend de Sensu. Esto puede hacerse utilizando la línea de comandos «sensu-backend init», que proporciona el paquete Sensu Backend.
Además, durante la inicialización del Sensu Backend, configurarás el usuario administrador y la contraseña para tu Solución de Monitorización Sensu.
Ejecuta el siguiente comando para crear nuevas variables de entorno del sistema para el usuario admin y la contraseña de Sensu. En este ejemplo, crearás un nuevo usuario admin de Sensu«adminsensu» con la contraseña«SensuRocks«.
export SENSU_BACKEND_CLUSTER_ADMIN_USERNAME=adminsensu export SENSU_BACKEND_CLUSTER_ADMIN_PASSWORD=SensuRocks
Ahora empieza a inicializar el backend de Sensu utilizando el siguiente comando. Deberías ver el proceso de inicialización y Sensu almacenará los datos dentro del almacén de datos «etcd».
sensu-backend init
Para comprobar y verificar la instalación de tu backend Sensu, realizarás la comprobación de salud de Sensu mediante el comando curl a la API HTTP de Sensu que se ejecuta en el puerto predeterminado «8080».
Ejecuta el siguiente comando curl para comprobar el estado de tu instalación del backend de Sensu. Deberías ver el mensaje de salida en la pantalla de tu terminal como«salud: OK«.
curl http://127.0.0.1:8080/health
También puedes visitar el panel de control de la interfaz de usuario web de Sensu a través del puerto TCP«3000«. Abre tu navegador web y visita la dirección IP de tu servidor siguiendo el puerto 3000 (es decir: http://192.168.5.100:3000). Y deberías ver la página de inicio de sesión de Sensu.
Introduce el usuario administrador«adminsensu» con la contraseña«SensuRocks«. A continuación, haz clic en«INICIAR SESIÓN» para acceder al panel de control de la interfaz web de Sensu.
Ahora deberías ver el panel de administración web de Sensu.
Instalación de la línea de comandos Sensuctl
En Sensu, el administrador puede gestionar la Solución de Monitorización de Sensu a través del panel de administración de la interfaz web de Sensu y a través del terminal de línea de comandos utilizando«sensuctl».
El «sensuctl» es una herramienta de línea de comandos para gestionar los recursos de Sensu. Utiliza una API HTTP para comunicarse con el backend de Sensu, que te permite crear, leer y eliminar recursos, eventos y entidades.
El «sensuctl» puede instalarse en varios sistemas operativos, como Linux, Windows y macOS. La función de «sensuctl» es similar a la del panel de control de la interfaz de usuario web de Sensu, y puedes instalarlo en tu estación de trabajo local o en el servidor «bastión» seguro de tu infraestructura.
Para los sistemas basados en Debian/Ubuntu, ejecuta el siguiente comando apt para instalar la herramienta de línea de comandos «sensuctl«. La instalación comenzará automáticamente.
sudo apt install sensu-go-cli
Una vez finalizada la instalación, ejecuta el siguiente comando «sensuctl» para empezar a configurar y conectarte a la API del servidor Sensu Backend.
sensuctl configure
Se te pedirán las siguientes configuraciones:
- Para el método de autenticación, selecciona «nombre de usuario/contraseña».
- Introduce la URL de la API del Sensu Backend de tu servidor. En este ejemplo, configuraremos «sensuctl» en el mismo servidor, por lo que el host será localhost o «127.0.0.1». Y el puerto por defecto para la API HTTP de Sensu es «8080» – http://127.0.0.1:8080.
- Para la configuración del espacio de nombres, selecciona «por defecto».
- Para el formato de salida, puedes seleccionar el estilo «tabular» o utilizar el formato de salida «yaml».
- Por último, introduce el usuario administrador y la contraseña de tu Sensu Backend.
Ahora ya has completado la configuración básica «sensuctl» y te has conectado al servidor API del Sensu Backend.
Ejecuta el siguiente comando«sensuctl» para comprobar tu configuración. Deberías ver la configuración detallada de la API de «sensuctl«.
sensuctl config view
Además, el «sensuctl» también proporciona un autocompletado para tu shell. Si utilizas bash, tienes que instalar el paquete «bash-completion» y añadir alguna configuración al archivo de configuración«~/.bashrc«.
Ejecuta el siguiente comando apt para instalar el paquete «bash-completion».
sudo apt install bash-completion
Ahora eidt la configuración de «~/. bashrc » utilizando el siguiente comando.
sudo nano ~/.bashrc
Añade la siguiente configuración al archivo.
if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi
source <(sensuctl completion bash)
Cuando hayas terminado, guarda y cierra el archivo.
A continuación, recarga la sesión actual de tu shell utilizando el siguiente comando.
source ~/.bashrc
Por último, introduce el comando«sensuctl» y pulsa el botón TAB para obtener todas las opciones disponibles del comando. Deberías obtener todas las opciones disponibles del comando«sensuctl».
sensuctl TAB
Instalación del Agente Sensu
Para supervisar el host o la máquina utilizando Sensu, debes instalar el paquete Agente Sensu en todos tus hosts. El Agente Sensu está disponible para casi todas las distribuciones de Linux y Windows.
Para instalar el Agente Sensu en un sistema Linux, asegúrate de que está añadido el repositorio Sensu.
Para sistemas basados en Debian/Ubuntu, ejecuta el siguiente comando apt para instalar el paquete Agente Sensu. Ahora comenzará la instalación.
sudo apt install sensu-go-agent
Una vez finalizada la instalación, descarga la configuración del Agente Sensu en«/etc/sensu/agent.yml«. A continuación, edita la configuración «/etc/sensu/agent.yml» utilizando el siguiente comando.
sudo curl -L https://docs.sensu.io/sensu-go/latest/files/agent.yml -o /etc/sensu/agent.yml sudo nano /etc/sensu/agent.yml
Descomenta las siguientes configuraciones. asegúrate de cambiar aquí el «name» por el nombre de host del sistema y el«backend-url» por la dirección IP del servidor Sensu Backend.
En este ejemplo, añadiremos una máquina Debian con el nombre de host«linux-host1» y disponible en el espacio de nombres«por defecto«. El servidor de Sensu Backend aquí es«192.168.5.100» con el puerto WebSocket API por defecto de Sensu Backend«8081«.
name: "linux-host1" namespace: "default" ... backend-url: - "ws://192.168.5.100:8081" cache-dir: "/var/cache/sensu/sensu-agent" config-file: "/etc/sensu/agent.yml"
Cuando hayas terminado, guarda y cierra el archivo.
A continuación, ejecuta el siguiente comando para iniciar el servicio Agente Sensu y permitir que se ejecute automáticamente al arrancar el sistema.
sudo systemctl start sensu-agent sudo systemctl enable sensu-agent
Ahora ejecuta el siguiente comando para comprobar y verificar el servicio del Agente Sensu. Deberías ver que el Agente Sensu se está ejecutando y está habilitado.
sudo systemctl status sensu-agent
A continuación, vuelve a tu navegador web y selecciona el espacio de nombres«por defecto«. Y deberías ver que el nuevo host de entidad«linux-host1» está disponible.
También puedes comprobarlo desde la línea de comandos del terminal utilizando el comando«sensuctl» como se indica a continuación. Deberías ver el agente«linux-host1» añadido a la Solución de Monitorización Sensu.
sensuctl entity list --format tabular
Supervisar los recursos del servidor con comprobaciones
El Agente Sensu sólo proporciona una vía para que el nodo agente o el servidor de destino se comuniquen con el Backend de Sensu a través de la API WebSocket. Para supervisar los recursos del servidor, como el uso de la CPU, el ancho de banda y el disco, tendrás que configurar una «Suscripción» y crear una «Comprobación» sobre ella. Después, puedes añadir varias «Suscripciones» al Agente Sensu o al servidor de destino.
Para supervisar los recursos del servidor utilizando Sensu, tendrás que seguir los siguientes pasos:
- Crear Suscripción
- Registrar los Activos de Tiempo de Ejecución de Sensu
- Definir el comando Checks para comprobar los recursos del sistema
Antes de continuar, ejecuta el siguiente comando «sensuctl» para crear una nueva suscripción llamada«system» a la entidad«linux-host1«.
sensuctl entity update linux-host1
Se te plantearán las siguientes preguntas:
- Para la «Clase de entidad», deja por defecto«agente» y pulsa INTRO.
- Para las «Suscripciones», introduce el nombre de la suscripción«sistema» y pulsa INTRO.
En Sensu,«Comprobaciones» básicamente acaba de definir un comando que puede utilizarse para supervisar los recursos del servidor. «Comprobaciones» es la línea de comandos que puedes definir sobre los «Activos» y las «Suscripciones» de Sensu para todas tus necesidades de supervisión. Para crear «Checks«, configurarás activos dinámicos en tiempo de ejecución mediante el comando «sensuctl». Puedes encontrar todos los «Activos» de Sensu en https://bonsai.sensu.io/.
Ahora ejecuta el siguiente comando «sensuctl» para crear y registrar «Activos» de Sensu para supervisar el uso de la CPU. Deberías ver un mensaje de salida como «activo añadido: sensu/check-cpu-usage:0.2.2». En este ejemplo, también renombramos el nombre por defecto del activo a «check-cpu-usage» con la opción «-r».
sensuctl asset add sensu/check-cpu-usage:0.2.2 -r check-cpu-usage
Ahora ejecuta el siguiente comando para comprobar la lista de activos de Sensu. Deberías ver que el activo«check-cpu-usage» está disponible en Sensu.
sensuctl asset list
A continuación, ejecuta el siguiente comando para crear el comando «Comprobaciones» para controlar el uso de la CPU. En este ejemplo, crearás un nuevo comando de comprobación llamado«check_cpu» que estará disponible en la suscripción «sistema» y basado en el activo «check-cpu-usage«. También puedes cambiar aquí el parámetro en la opción «–command». Y deberías obtener un mensaje de salida como«Creado«.
sensuctl check create check_cpu \ --command 'check-cpu-usage -w 75 -c 90' \ --interval 60 \ --subscriptions system \ --runtime-assets check-cpu-usage
Ejecuta el siguiente comando«sensuctl» para comprobar y verificar el «check_cpu«. Deberías ver los detalles de «Comprobaciones» del «check_cpu» que acabas de crear.
sensuctl check info check_cpu --format yaml
Ahora puedes verificar la monitorización de eventos de «check_cpu» utilizando el siguiente comando. Deberías ver que la monitorización del uso de la CPU para«linux-host1» está configurada y finalizada.
sensuctl event list --format tabular
Ahora ve al panel de administración de Sensu y selecciona el espacio de nombres«por defecto«. En el menú«Entidad«, deberías ver el agente«linux-host1» añadido al Sistema de monitorización Sensu.
Ahora, si haces clic en los detalles del agente «linux-host1«, verás la monitorización«check_cpu» que acabas de crear.
A continuación, puedes añadir y crear más «Checks» para tu sistema de monitorización.
Conclusión
Ya has realizado la instalación de la Solución de Monitorización Sensu en el Servidor Debian 11. También has aprendido el uso básico del comando Sensuctl para gestionar el backend de Sensu. Además, has supervisado con éxito la máquina anfitriona Linux mediante el Agente Sensu y has configurado «comprobaciones» para supervisar tu servidor de destino.