Búsqueda de sitios web

Instale Sensu Monitoring en Rocky Linux 9|AlmaLinux 9 |


El monitoreo del sistema proporciona observaciones e informes que ayudan a administrar aplicaciones y servidores en una infraestructura. Implica un análisis continuo de la CPU, la memoria, el ancho de banda, el rendimiento de las aplicaciones, los conmutadores y otros componentes de la red. Hoy en día, la supervisión se realiza en casi todas partes, ya que la mayoría de las empresas dependen de aplicaciones para ejecutarse. Principalmente ayuda a identificar errores a tiempo y actuar en consecuencia. Existen varias pilas de monitoreo en el mercado hoy en día, algunas de estas pilas son Elastic Stack, Dynatrace, Zenoss, Prometheus, New Relic, N-able RMM, Datadog Infrastructure Monitoring, PRTG Network Monitor, Nagios, Zabbix, etc.

Sensu es una solución de código abierto que proporciona observabilidad a escala. Es capaz de monitorear infraestructura privada, pública, de nube híbrida y basada en contenedores, eliminando así los desafíos asociados con la combinación de estas infraestructuras. Tiene un diseño simple, escalable y maleable para una fácil personalización y monitoreo.

Sensu funciona utilizando el modelo cliente-servidor. El servidor programa y publica las comprobaciones que deben realizar las suscripciones del cliente. Las suscripciones son una lista de tareas que se ejecutarán en el cliente sense. RabbitMQ se utiliza en Sensu como bus de mensajes para enviar solicitudes de verificación y resultados. Luego, los datos obtenidos se almacenan en un almacenamiento persistente, la base de datos de Redis. La máquina cliente tiene el software Cliente Sensu que es responsable del registro del cliente, las suscripciones y la verificación de horarios desde el servidor.

A continuación se muestra una ilustración de la arquitectura de Sensu Monitoring.

Características de la pila de monitoreo Sensu

Sensu Monitoring Stack ofrece muchas funciones, algunas de ellas son:

  • Soporte de complementos: con su arquitectura abierta, Sensu se integra con varias herramientas y servicios que ayudan a ampliar su funcionalidad.
  • API intuitiva: la API Sensu con interfaces web y la herramienta de línea de comandos sensuctl permite crear comprobaciones, registrar entidades y administrar configuraciones. La WebUI proporciona una vista de utilidades y comprobaciones.
  • Soporte comercial: Sensu es un producto comercial, basado en un núcleo de código abierto que está disponible gratuitamente bajo la licencia MIT.
  • Soporte integrado para herramientas estándar de la industria: Otras herramientas como el protocolo de texto plano Graphite, el protocolo de línea InfluxDB, los datos de rendimiento de Nagios, las métricas StatsD, el formato de texto de exposición Prometheus y la especificación de datos OpenTSDB son compatibles con Sensu.
  • Alertas y notificaciones: proporciona alertas filtradas y ricas en contexto que mejoran la respuesta a incidentes.
  • Alta-baja automática de agentes: esto ayuda a reducir las alertas sobrecargadas. Las suscripciones de cheques también se pueden automatizar.

Esta guía proporciona una demostración detallada de cómo instalar Sensu Monitoring en Rocky Linux 9|AlmaLinux 9. La instalación de Sensu Monitoring Stack se divide en 3 secciones principales. Estos 3 segmentos principales se ilustran en el siguiente diagrama.

¡Así que comenzaremos!

#1. Instale Sensu Backend en Rocky Linux 9|AlmaLinux 9

Para instalar el backend de Sensu, comience agregando los repositorios de Sensu en el sistema Rocky Linux 9|AlmaLinux 9.

curl -s https://packagecloud.io/install/repositories/sensu/stable/script.rpm.sh | sudo bash

Confirmado que el repositorio se agregó usando los comandos:

$ cat /etc/yum.repos.d/sensu_stable.repo
[sensu_stable]
name=sensu_stable
baseurl=https://packagecloud.io/sensu/stable/el/9/$basearch
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/sensu/stable/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[sensu_stable-source]
name=sensu_stable-source
baseurl=https://packagecloud.io/sensu/stable/el/9/SRPMS
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/sensu/stable/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

Una vez que se haya agregado el repositorio, instale el backend de Sensu Go.

sudo dnf install vim sensu-go-backend

Árbol de Dependencia;

Transaction Summary
================================================================================
Install  1 Package

Total download size: 14 M
Installed size: 40 M
Is this ok [y/N]: y

#2. Configurar e iniciar el backend de Sensu

Descargaremos el archivo de configuración principal a /etc/sensu/backend.yml con el comando:

sudo curl -L https://docs.sensu.io/sensu-go/latest/files/backend.yml -o /etc/sensu/backend.yml

Puede abrir el archivo para editarlo usando los siguientes comandos:

sudo vim /etc/sensu/backend.yml

Ahora inicie y habilite el servicio backend de Sensu:

sudo systemctl start sensu-backend
sudo systemctl enable sensu-backend

Confirme si el servicio se está ejecutando;

$ systemctl status sensu-backend
● sensu-backend.service - The Sensu Backend service.
     Loaded: loaded (/usr/lib/systemd/system/sensu-backend.service; enabled; vendor preset: disabled)
     Active: active (running) since Wed 2022-08-31 07:58:03 CEST; 7s ago
   Main PID: 146533 (sensu-backend)
      Tasks: 7 (limit: 23441)
     Memory: 32.5M
        CPU: 142ms
     CGroup: /system.slice/sensu-backend.service
             └─146533 /usr/sbin/sensu-backend start -c /etc/sensu/backend.yml

Luego crearemos el usuario administrador y la contraseña exportando las credenciales como se muestra a continuación:

export SENSU_BACKEND_CLUSTER_ADMIN_USERNAME=admin
export SENSU_BACKEND_CLUSTER_ADMIN_PASSWORD=StrongPassword

En el comando anterior, reemplace el nombre de usuario y la contraseña como prefiera. Para que se apliquen los cambios, inicialice el backend;

sensu-backend init

#3. Acceda a la interfaz de usuario web de Sensu

La interfaz de usuario web de Sensu se ejecuta en el puerto 3000 de forma predeterminada. Permite a los usuarios ver eventos y alertas en Sensu. Entonces permitiremos que los puertos requeridos pasen a través del firewall;

sudo firewall-cmd --add-port=3000/tcp --permanent
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --add-port=8081/tcp --permanent
sudo firewall-cmd --reload

Para verificar si el backend se está ejecutando como desea, use el comando de culto a continuación para verificar su estado.

$ curl http://127.0.0.1:8080/health
{"Alarms":null,"ClusterHealth":[{"MemberID":13195394291058371180,"MemberIDHex":"b71f75320dc06a6c","Name":"default","Err":"","Healthy":true}],"Header":{"cluster_id":2037210783374497686,"member_id":13195394291058371180,"raft_term":2}}

Acceda a la interfaz de usuario web de Sensu utilizando la URL http://IP_address:3000

Inicie sesión con las credenciales creadas para acceder al panel de Sensu a continuación.

Ahora puede ver los paneles y eventos en el espacio de nombres preferido.

Actualmente, no tenemos ningún evento en el espacio de nombres predeterminado. Entonces los configuraremos como se muestra a continuación.

#4. Instale sensuctl en Rocky Linux 9|AlmaLinux 9

sensuctles una utilidad de línea de comandos que permite a los usuarios administrar los recursos de Sensu. Llama a la API HTTP al crear, leer, actualizar y eliminar eventos, recursos, entidades, etc.

Este paquete reside en los repositorios Sensu agregados anteriormente al sistema. Para instalarlo simplemente ejecutaremos el comando:

sudo yum install sensu-go-cli

Una vez realizada la instalación, debemos configurar la herramienta para llamar a la API HTTP. Esto se puede hacer con el comando que tiene la siguiente sintaxis:

sensuctl configure -n \
--username 'admin' \
--password 'StrongPassword' \
--namespace default \
--url 'http://127.0.0.1:8080'

En el comando, reemplace el nombre de usuario, la contraseña y la URL HTTP para conectarse al Sensu Backend.

Ahora use la herramienta para realizar las operaciones deseadas. Por ejemplo, para cambiar la contraseña del usuario administrador, utilice el comando:

sensuctl user change-password --interactive

Configure la finalización de Bash y Zsh:

# Bash
echo 'source <(sensuctl completion bash)' | tee -a ~/.bashrc
source  ~/.bashrc

# Zsh
echo 'source <(sensuctl completion zsh)' | tee -a ~/.zshrc
source  ~/.zshrc

#5. Instalar y configurar agentes Sensu Go

El agente Sensu Go es el software instalado en las máquinas cliente. El paquete está disponible para sistemas basados en Debian, RHEL/CentOS y Windows.

El agente Sensu Go se puede instalar con los siguientes comandos

  • En Debian/Ubuntu
# Add the Sensu repository
curl -s https://packagecloud.io/install/repositories/sensu/stable/script.deb.sh | sudo bash

# Install the sensu-go-agent package
sudo apt-get install sensu-go-agent
  • En Rhel/CentOS/Rocky Linux/Alma Linux
# Add the Sensu repository
curl -s https://packagecloud.io/install/repositories/sensu/stable/script.rpm.sh | sudo bash

# Install the sensu-go-agent package
sudo yum -y install sensu-go-agent
  • En Windows
#via Chocolatey - https://chocolatey.org/install
choco install sensu-agent

Antes de comenzar y habilitar el servicio, debemos descargar el archivo de configuración.

  • En sistemas Linux
# Copy the config template from the docs
sudo curl -L https://docs.sensu.io/sensu-go/latest/files/agent.yml -o /etc/sensu/agent.yml

# Start sensu-agent using a service manager
sudo systemctl enable --now sensu-agent
  • En sistemas Windows
# Copy the example agent config file from %ALLUSERSPROFILE%\sensu\config\agent.yml.example
# (default: C:\ProgramData\sensu\config\agent.yml.example) to C:\ProgramData\sensu\config\agent.yml
cp C:\ProgramData\sensu\config\agent.yml.example C:\ProgramData\sensu\config\agent.yml

# Change to the sensu\sensu-agent\bin directory where you installed Sensu
cd 'C:\Program Files\sensu\sensu-agent\bin'

# Run the sensu-agent executable
./sensu-agent.exe

# Install and start the agent
./sensu-agent service install

Si tiene el agente Sensu ejecutándose en un host remoto, proporcione la URL del backend de Sensu en el archivo de configuración.

sudo vim /etc/sensu/agent.yml

Proporcione la URL del backend de Sensu:

name: "node1.computingforgeeks.com"
namespace: "default"
backend-url:
  - "ws://192.168.205.13:8081"

Guarde el archivo y reinicie el servicio:

sudo systemctl restart sensu-agent

#6. Verificar eventos keepalive

Los keepalives se pueden definir como los mecanismos proporcionados para garantizar que los agentes agregados lleguen al backend de Sensu.

Para verificar los agentes agregados, use Sensu CLI

$ sensuctl entity list
              ID                Class    OS               Subscriptions                        Last Seen             
────────────────────────────── ─────── ─────── ──────────────────────────────────── ─────────────────────────────────
  localhost.localdomain         agent   linux   entity:localhost.localdomain         2022-08-31 08:32:40 +0200 CEST  
  node1.computingforgeeks.com   agent   linux   entity:node1.computingforgeeks.com   2022-08-31 08:32:30 +0200 CEST 

También es posible ver los agentes agregados desde la WebUI navegando a la pestaña Entidades en el espacio de nombres predeterminado.

Ahora enviaremos un evento de muestra desde el agente Sensu al backend de Sensu.

curl -X POST \
-H 'Content-Type: application/json' \
-d '{
  "check": {
    "metadata": {
      "name": "check-mysql-status"
    },
    "status": 1,
    "output": "could not connect to mysql"
  }
}' \
http://127.0.0.1:3031/events

La solicitud anterior debería crear una advertencia en la pestaña de eventos. Para verificar esto, consulte la pestaña Eventos.

Obtén información detallada sobre el evento haciendo clic en él.

Ahora el panel de Sensu aparecerá como se muestra a continuación.

Pensamientos finales

Esta guía ha proporcionado el conocimiento necesario sobre cómo instalar Sensu Monitoring en Rocky Linux 9|AlmaLinux 9. También hemos aprendido cómo agregar entidades y configurar eventos en Sensu. Espero que esto haya sido útil.

Relacionado :

  • Instale Grafana con Prometheus en Rocky Linux 9 | AlmaLinux 9
  • Instalar el servidor de monitoreo Cacti en Debian
  • Instale Grafana en Kubernetes para la supervisión de clústeres
  • Cómo instalar Zabbix en RHEL 8 | CentOS corriente 8

Artículos relacionados: