Cómo instalar la solución de monitorización Sensu en Ubuntu 22.04
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 esta guía, configurarás la Solución de Monitorización Sensu en un servidor Ubuntu 22.04. También instalarás y configurarás el cliente Sensu-go que se utilizará para gestionar Sensu. Y, por último, instalarás el Agente Sensu en el host de destino para supervisar y configurar las comprobaciones de Sensu para la supervisión básica del sistema.
Requisitos previos
Para completar esta guía, necesitarás los siguientes requisitos:
- Dos servidores Ubuntu 22.04 – El primer servidor se utilizará para instalar la Solución de Monitorización Sensu, y el segundo servidor será el servidor de destino a monitorizar.
- Un usuario no root con privilegios de administrador sudo/root.
A continuación se detalla el servidor que se utilizará para esta guía:
Hostname IP Address Used as -------------------------------------------------- sensugo-server 192.168.5.100 Sensu Server machine1 192.168.5.120 Target Monitoring
Ahora pasemos a la instalación.
Añadir el repositorio de Sensu
Sensu es una solución de monitorización segura y escalable que puede instalarse en múltiples sistemas operativos como Linux, macOS, Windows y FreeBSD. Sensu proporciona su propio repositorio, especialmente para las distribuciones basadas en RHEL y Debian. Los paquetes de sensu se entregan a través del repositorio packagecloud.io.
En este primer paso, configurarás el repositorio de Sensu tanto en el servidor de Sensu como en el sistema de Monitorización de destino.
Para empezar, ejecuta el siguiente comando apt para actualizar el índice de paquetes e instalar algunos paquetes básicos en tu sistema.
sudo apt update sudo apt install wget curl gnupg2 apt-transport-https
Cuando se te solicite, introduce y para confirmar y pulsa INTRO.
A continuación, ejecuta el siguiente comando para añadir el repositorio estable de Sensu a tus sistemas. Esto descargará el script bash que instalará y configurará automáticamente el repositorio Sensu para tus sistemas Ubuntu.
curl -s https://packagecloud.io/install/repositories/sensu/stable/script.deb.sh | sudo bash
Recibirás una salida similar a ésta.
Una vez añadido el repositorio sensu, ya estarás listo para iniciar la instalación de Sensu Go en el Servidor Sensu y el Agente Sensu en la Monitorización de Destino.
Instalación y configuración de Sensu Go Backend
Sensu Go Backend es el componente principal de la Plataforma de Monitorización de Sensu. Proporciona un panel de administración web y una API HTTP que te permite gestionar Sensu a través de la línea de comandos, y también proporciona los WebSockets que se utilizarán para que se conecten las máquinas/agentes objetivo.
Antes de empezar, asegúrate de que ejecutas todos los comandos siguientes en el servidor Sensu. En este ejemplo, el nombre de host del servidor es ‘sensugo-server’.
Para empezar, ejecuta el siguiente comando apt para instalar el backend Sensu Go.
sudo apt install sensu-go-backend
Ahora debería comenzar la instalación.
Una vez instalado el backend Sensu Go, descarga la configuración de ejemplo mediante el comando wget que aparece a continuación en el archivo ‘/etc/sensu/backend.yml’. A continuación, abre el archivo utilizando el comando editor nano.
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 las siguientes líneas del archivo.
cache-dir: "/var/cache/sensu/sensu-backend" config-file: "/etc/sensu/backend.yml"
log-level: «debug»
state-dir: «/var/lib/sensu/sensu-backend»
Guarda el archivo y sal del editor cuando hayas terminado.
A continuación, ejecuta la siguiente utilidad de comandos systemctl para iniciar y activar el servicio Sensu Go Backend‘sensu-backend‘.
sudo systemctl start sensu-backend sudo systemctl enable sensu-backend
El servicio ‘sensu-backend‘ debería estar ahora ejecutándose y habilitado. Además, el servicio se ejecutará automáticamente al arrancar.
Comprueba el estado del servicio ‘sensu-backend’ mediante el siguiente comando systemctl.
sudo systemctl is-enabled sensu-backend sudo systemctl status sensu-backend
Recibirás una salida similar a ésta: El servicio «sensu-backend» está activado y en ejecución.
Con el Sensu Go Backend en funcionamiento, a continuación inicializarás el Sensu Go Backend estableciendo la contraseña de administrador y generando algunas configuraciones.
Para inicializar la instalación de Sensu Go Backend, ejecuta el siguiente comando para crear nuevas variables de entorno que se utilizarán para configurar el usuario y la contraseña de administrador de Sensu.
En este ejemplo se utilizará‘sensuadmin‘ como usuario y‘sensupassword‘ como contraseña. Por tanto, asegúrate de cambiar el usuario y la contraseña de administrador.
export SENSU_BACKEND_CLUSTER_ADMIN_USERNAME=sensuadmin export SENSU_BACKEND_CLUSTER_ADMIN_PASSWORD=sensupassword
Ahora ejecuta el siguiente comando ‘sensu-backend’ para inicializar la instalación de Sensu Go Backend.
sensu-backend init
Recibirás un resultado similar a éste: El Sensu Go Backend se ha inicializado y se está ejecutando en el puerto predeterminado«3000«.
Ahora abre el navegador web y visita la dirección IP del servidor seguida del puerto TCP 3000 (es decir: http://192.168.5.100:3000). Y deberías obtener la página de inicio de sesión de Sensu.
Inicia sesión con el nombre de usuario y la contraseña introducidos durante el proceso de inicialización y haz clic en«INICIAR SESIÓN«.
Después de iniciar sesión, deberías ver el panel de administración de Sensu. Ya has terminado la instalación de Sensu Go Backend.
Además, también puedes comprobar el estado de salud de tu servidor Sensu Go Backend a través de la API de Sensu.
Instala la utilidad del paquete‘jq‘ en tu sistema mediante el siguiente comando apt.
sudo apt install jq -y
Ahora ejecuta el siguiente comando curl para acceder a la API del servidor Sensu que se ejecuta en el puerto predeterminado‘8080‘. Este comando comprobará el estado de salud de tu servidor Sensu, y la salida se formateará como json, lo que hace que la salida sea legible.
curl -s http://127.0.0.1:8080/health | jq .
Salida – En la siguiente salida aparece ‘Saludable: true’ y ningún error.
Instalación y configuración de sensuctl
Con el backend Sensu Go instalado y configurado, a continuación instalarás el cliente Sensu Go en el servidor Sensu. El Cliente Sensu Go proporciona una utilidad de línea de comandos ‘sensuctl’ que te permite gestionar Sensu a través del servidor terminal.
La forma en que funciona ‘sensuctl’ es comunicándose con el Servidor Sensu a través de la API para crear, leer, actualizar y eliminar recursos, eventos y entidades en el Servidor Sensu.
Ejecuta el siguiente comando apt para instalar el cliente Sensu Go. Ahora debería comenzar la instalación.
sudo apt install sensu-go-cli
Una vez instalado‘sensu-go-cli ‘, abre el archivo ‘~/.bashrc‘ utilizando el siguiente comando del editor nano.
nano ~/.bashrc
Añade las siguientes líneas al final del mismo. Esta configuración habilitará el autocompletado para el comando ‘sensuctl’.
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)
Guarda el archivo y sal cuando hayas terminado.
A continuación, recarga tu sesión actual recargando el archivo‘~/.bashrc‘. A continuación, verifícalo utilizando el comando «sensuctl».
source ~/.bashrc sensuctl TAB
Si pulsas el botón TAB después del comando ‘sensuctl‘, deberías obtener la lista de opciones de ese comando.
Con el Cliente Sensu Go instalado, ahora empezarás a configurar la conexión con el Servidor Sensu.
Ejecuta el siguiente comando ‘sensuctlconfigure‘ para añadir el Servidor Sensu.
sudo sensuctl configure
Ahora se te preguntarán algunas configuraciones:
- ¿Método de autenticación? nombre de usuario/contraseña
- ¿URL de la API de Sensu? La API de Sensu se ejecuta por defecto en http://127.0.0.1:8080
- ¿Espacio de nombres? por defecto
- ¿Formato de salida preferido? Selecciona el formato de salida que desees – este ejemplo es tabular.
- ¿Nombre de usuario? usuario admin de sensu
- ¿Contraseña? contraseña para el usuario admin de sensu
Una vez finalizada la configuración de‘sensuctl‘, ejecuta el siguiente comando para verificar los detalles de la configuración actual.
sudo sensuctl config view
Recibirás una salida similar a ésta – El cliente Sensu Go está ahora conectado al servidor Sensu a través de la API HTTP que se ejecuta por defecto en localhost:8080.
En este punto, has terminado la configuración básica del Backend Sensu Go y del Cliente Sensu Go. En el siguiente paso, supervisarás la máquina objetivo mediante el Agente Sensu.
Instalación del Agente Sensu en la máquina objetivo
El Agente Sensu es un cliente ligero que se ejecuta en las máquinas objetivo que quieras monitorizar. Funciona comunicándose mediante WebSockets con el Servidor Sensu, con funciones como autorregistrarse, enviar mensajes keepalive y ejecutar comprobaciones de supervisión.
Antes de empezar, asegúrate de que el repositorio de Sensu está añadido. Asegúrate también de que ejecutas los siguientes comandos en la máquina de destino; en este ejemplo se utiliza el servidor con el nombre de host«máquina1«.
Ejecuta el siguiente comando apt para instalar el Agente Sensu en tu sistema. La instalación debería realizarse automáticamente.
sudo apt install sensu-go-agent
Una vez instalado el Agente Sensu, descarga el archivo de configuración del Agente Sensu en‘/etc/sensu/agent.yml‘ mediante el comando curl. A continuación, abre el archivo ‘/etc/sensu/agent.yml‘ mediante el comando editor nano.
sudo curl -L https://docs.sensu.io/sensu-go/latest/files/agent.yml -o /etc/sensu/agent.yml sudo nano /etc/sensu/agent.yml
Cambia la configuración por defecto con las siguientes líneas. Asegúrate de cambiar el ‘nombre’ por el nombre de host de la máquina de destino, y la URL del backend es la dirección WebSocket para el servidor Sensu que se ejecuta en el puerto predeterminado‘8081‘.
En este ejemplo, el nombre de host de la máquina de destino es«máquina1» y la dirección IP del servidor Sensu es«192.168.5.100«.
name: "machine1" namespace: "default" ... backend-url: - "ws://192.168.5.100:8081" cache-dir: "/var/cache/sensu/sensu-agent" config-file: "/etc/sensu/agent.yml"
Guarda el archivo y sal del editor cuando hayas terminado.
A continuación, ejecuta la siguiente utilidad de comandos systemctl para iniciar y habilitar el servicio‘sensu-agent ‘. El servicio debería estar ejecutándose y habilitado, lo que significa que se iniciará automáticamente al arrancar.
sudo systemctl start sensu-agent sudo systemctl enable sensu-agent
Ahora verifica el servicio «agente-sensu» mediante el siguiente comando para asegurarte de que se está ejecutando.
sudo systemctl is-enabled sensu-agent sudo systemctl status sensu-agent
Recibirás un resultado como el siguiente: El servicio «agente-sensu» está habilitado y el estado actual es en ejecución.
Por último, vuelve al terminal del Servidor Sensu y ejecuta el siguiente comando «sensuctl» para comprobar que la máquina de destino «máquina1» está disponible en el Servidor Sensu.
sensuctl entity list --format tabular
Recibirás un resultado similar a éste: La máquina de destino «máquina1» se ha añadido al servidor Sensu a través del agente Sensu.
Ahora que la máquina de destino «máquina1» está añadida al Servidor Sensu, vas a configurar las comprobaciones para la monitorización básica del sistema.
Configurar comprobaciones para la supervisión del sistema
En Sensu, las comprobaciones son el lugar donde defines qué cosas quieres monitorizar. Ejemplos de comprobaciones son la monitorización del uso de la CPU, el uso de la memoria, el uso del disco y muchos más. Las comprobaciones forman parte de los Activos, que son tiempos de ejecución dinámicos que se pueden compartir y reutilizar.
En este paso, crearás nuevas comprobaciones para supervisar el uso de la CPU, el uso de la memoria y el uso del disco. Estas comprobaciones se utilizarán para supervisar la máquina de destino«máquina1«.
Para empezar, ejecuta el siguiente comando sensuctl para actualizar la entidad o máquina de destino «máquina1«.
sensuctl entity update machine1
La clase debe ser‘agente‘ y la Suscripción debe ser‘Sistema‘.
Ahora ejecuta la utilidad del comando sensuctl siguiente para añadir activos a tu servidor Sensu. Puedes obtener otro activo de Sensu del centro de activos de Sensu https://bonsai.sensu.io.
sensuctl asset add sensu/check-cpu-usage sensuctl asset add sensu/check-memory-usage sensuctl asset add sensu/check-disk-usage
Recibirás una salida similar a ésta
Añadir activo en tiempo de ejecución ‘sensu/check-cpu-usage‘
Añadiendo el activo en tiempo de ejecución ‘sensu/check-memory-usage‘.
Añadir el activo en tiempo de ejecución «sensu/check-disk-usage«.
A continuación, comprueba la lista de activos en el servidor Sensu mediante el comando sensuctl que aparece a continuación. Deberías ver que estos activos en tiempo de ejecución se han añadido al Servidor Sensu.
sensuctl asset list
Una vez añadidos los activos Sensu, podrás crear comprobaciones basadas en el activo que has añadido.
Ejecuta el siguiente comando para crear una comprobación ‘check_cpu’ con la suscripción como‘system‘ y utiliza el activo en tiempo de ejecución‘sensu/check-cpu-usage‘. Puedes ajustar la configuración en la opción ‘comando‘.
sensuctl check create check_cpu \ --command 'check-cpu-usage -w 75 -c 90' \ --interval 60 \ --subscriptions system \ --runtime-assets sensu/check-cpu-usage
Ejecuta el siguiente comando para crear una comprobación«check_mem» con la suscripción «system» y utiliza el consentimiento en tiempo de ejecución«sensu/check-memory-usage«. Puedes ajustar la configuración en la opción«comando».
sensuctl check create check_mem \ --command 'check-memory-usage -w 80 -c 90' \ --interval 60 \ --subscriptions system \ --runtime-assets sensu/check-memory-usage
Ejecuta el siguiente comando para crear una comprobación «check_disk » con la suscripción como«system» y utiliza el consentimiento en tiempo de ejecución «sensu/check-disk-usage«. Puedes ajustar la configuración en la opción ‘comando‘.
sensuctl check create check_disk \ --command 'check-disk-usage --include-fs-type "xfs,ext4" --exclude-fs-path "/boot" --warning 90 --critical 95' \ --interval 60 \ --subscriptions system \ --runtime-assets sensu/check-disk-usage
Ahora comprueba la lista de comprobaciones en el servidor Sensu mediante la utilidad de comandos ‘sensuctl’ que aparece a continuación. Verás entonces las tres comprobaciones que has creado: check_cpu, check_mem y check_disk.
sensuctl check list
Ahora vuelve al navegador web y visita el panel de administración de Sensu. Asegúrate de que estás en el espacio de nombres«por defecto» y, a continuación, haz clic en«Entidades«.
Deberías ver que la máquina de destino‘máquina1‘ está añadida con el estado OK.
Haz clic en ‘máquina1‘ para obtener la monitorización de los detalles. Y deberías obtener una página como la siguiente: todas las comprobaciones que has creado se han ejecutado y están en marcha.
Ya has creado y configurado activos y comprobaciones para la supervisión del sistema en el servidor Sensu.
Conclusión
Ya has instalado la Solución de Monitorización Sensu en el Servidor Ubuntu 22.04. También has aprendido el uso básico del comando Sensuctl para gestionar el backend de Sensu. Además, has monitorizado con éxito la máquina anfitriona Linux mediante el Agente Sensu y has configurado «activos» y «comprobaciones» para monitorizar servidores de destino.