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.

instalar dependencias

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.

configurar repositorio

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.

instalar sensu go

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»

configuración de sensu go

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.

setup sensu start sensu

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.

verificar el servicio sensu-backend

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«.

sensu inicializar

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«.

nombre de usuario

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.

salpicadero sensu

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.

chequeo sensu

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

instalar sensuctl

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.

finalización del sensuctl

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.

config sensuctl

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

instalar sensu-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"

configuración del agente sensu

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

configuración e inicio del agente sensu

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.

verificar sensu agente

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.

lista de entidades

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‘.

actualizar entidades

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

comprobación de activos cpu

Añadiendo el activo en tiempo de ejecución ‘sensu/check-memory-usage‘.

memoria de comprobación de activos

Añadir el activo en tiempo de ejecución «sensu/check-disk-usage«.

descargar disco de comprobación

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

lista de activos

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

caja comprobar cpu

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

comprobar mem

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

crear disco de comprobación

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

lista de comprobaciones

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.

entidades de estatus

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.

detalles supervisión

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.

También te podría gustar...