Búsqueda de sitios web

Instale la herramienta de monitoreo Sensu en Ubuntu 22.04|20.04|18.04


Bienvenido a nuestra guía sobre Cómo instalar la herramienta de monitoreo Sensu en Ubuntu 22.04/20.04/18.04. Sensu es una herramienta de monitoreo de pila completa de código abierto adecuada para cualquier tipo de entorno operativo dinámico. Es un marco simple, escalable y maleable que le ayuda a componer el sistema de seguimiento que necesita.

Sensu es capaz de monitorear entornos basados en contenedores y en la nube pública, privada e híbrida. Está escrito en Ruby y utiliza RabbitMQ para poner en cola eventos y solicitudes de verificación. Los datos que necesitan almacenamiento persistente, como la información del cliente, se almacenan en Redis. Sensu viene con una gran cantidad de complementos para monitorear servicios comunes.

Cómo funciona Sensu

Sensu utiliza un modelo cliente-servidor en el que todos los sistemas a monitorear ejecutan un software cliente sensu. Esta aplicación cliente es responsable de ejecutar comprobaciones locales, gestionar la suscripción y el registro del cliente y cumplir con las comprobaciones solicitadas por Sensu Server. El agente informa los resultados de una verificación y el servidor tomará medidas en función de los resultados, por ejemplo, enviando un mensaje de notificación al usuario si el servicio no funciona.

Instale la herramienta de monitoreo Sensu en Ubuntu 22.04/20.04/18.04

En esta sección, le mostraré los pasos para instalar la herramienta de monitoreo Sensu en Ubuntu 20.04/18.04 LTS. Supongo que ya tiene un servidor Ubuntu en ejecución, puede ser una máquina virtual local, en la nube o un servidor dedicado.

Paso 1: configurar el nombre de host del servidor, ntp y actualizar

Comience siempre sus instalaciones actualizando el paquete del sistema a la última versión.

sudo apt update && sudo apt -y full-upgrade
[ -f /var/run/reboot-required ] && sudo reboot -f

Espere a que aparezca el servidor y luego configure el nombre de host:

sudo hostnamectl set-hostname sensu.example.com

Configurar NTP y zona horaria

Es bueno tener NTP configurado tanto en el servidor Sensu como en los agentes para que la marca de tiempo sea correcta en todos los datos.

Establecer zona horaria correcta:

sudo timedatectl set-timezone Africa/Nairobi

Instalar el paquete ntp:

sudo apt -y install ntp

Mostrar estado ntp:

$ sudo ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 0.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000   +0.000   0.000
 1.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000   +0.000   0.000
 2.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000   +0.000   0.000
 3.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000   +0.000   0.000
 ntp.ubuntu.com  .POOL.          16 p    -   64    0    0.000   +0.000   0.000
*time.netzwerge. 31.209.85.242    2 u    1   64    1    9.574  +14.850   0.056
 mail.kpprs.de   192.53.103.104   2 u    1   64    1    2.907   -1.920   0.016
 sismox.com      187.182.182.166  3 u    2   64    1    0.675   -1.970   0.000
 mail.klausen.dk 193.79.237.14    2 u    1   64    1    0.553   -2.043   0.005
 2a01:4f8:c2c:3d 213.239.239.165  3 u    2   64    1    0.578   -1.960   0.002
 node-1.infogral 17.253.14.123    2 u    1   64    1    0.529   -1.829   0.000
 h2993508.strato 208.90.67.116    3 u    2   64    1   13.500   -2.122   0.009
 alpha.rueckgr.a 205.46.178.169   2 u    1   64    1    2.897   -2.795   0.088
 formularfetisch 185.248.188.98   2 u    2   64    1    2.850   -2.026   0.000
 2620:2d:4000:1: 86.23.195.30     2 u    2   64    1   22.770   +2.248   0.000
 ns1.idfnet.net  131.188.3.220    2 u    1   64    1   12.705   -0.005   0.000

Paso 2: Instale los paquetes backend de Sensu

El paquete backend Sensu está disponible para Ubuntu/Debian, RHEL/CentOS y Docker. Ejecute los comandos proporcionados para configurar el repositorio requerido que contiene los paquetes.

$ curl -s https://packagecloud.io/install/repositories/sensu/stable/script.deb.sh | sudo bash
Detected operating system as Ubuntu/jammy.
Checking for curl...
Detected curl...
Checking for gpg...
Detected gpg...
Detected apt version as 2.4.9
Running apt-get update... done.
Installing apt-transport-https... done.
Installing /etc/apt/sources.list.d/sensu_stable.list...done.
Importing packagecloud gpg key... Packagecloud gpg key imported to /etc/apt/keyrings/sensu_stable-archive-keyring.gpg
done.
Running apt-get update... done.

The repository is setup! You can now install packages.

Una vez que el repositorio esté agregado y funcional, podemos instalar el paquete backend:

sudo apt update
sudo apt install sensu-go-backend

Paso 3: Configurar Sensu e iniciar los servicios

Hay dos métodos que se pueden utilizar para configurar el backend de Sensu. Uno es usar las banderas sensu-backend start o el archivo /etc/sensu/backend.yml.

Descargue la plantilla de configuración de los documentos:

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

Luego inicie sensu-backend usando un administrador de servicios systemd

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

Verifique el estado del servicio backend:

$ systemctl status sensu-backend
 sensu-backend.service - The Sensu Backend service.
     Loaded: loaded (/lib/systemd/system/sensu-backend.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2023-08-16 12:45:55 EAT; 23s ago
   Main PID: 6281 (sensu-backend)
      Tasks: 7 (limit: 4523)
     Memory: 29.1M
        CPU: 466ms
     CGroup: /system.slice/sensu-backend.service
             └─6281 /usr/sbin/sensu-backend start -c /etc/sensu/backend.yml

Aug 16 12:46:15 jammy sensu-backend[6281]: {"cache_version":"v2","component":"cache","level":"debug","msg":"rebuilding the cache for resource type *v3.EntityConfig","time":"2023-08-16T12:46:15+03:0>
Aug 16 12:46:15 jammy sensu-backend[6281]: {"component":"etcd","level":"debug","caller":"v3rpc/interceptor.go:182","msg":"request stats","start time":"2023-08-16T12:46:15+03:00","time spent":"121.9>
Aug 16 12:46:15 jammy sensu-backend[6281]: {"component":"etcd","level":"debug","caller":"v3rpc/interceptor.go:182","msg":"request stats","start time":"2023-08-16T12:46:15+03:00","time spent":"242.3>
Aug 16 12:46:15 jammy sensu-backend[6281]: {"component":"tessend","level":"debug","metric_name":"check_count","metric_value":0,"msg":"collected a metric for tessen","time":"2023-08-16T12:46:15+03:0>
Aug 16 12:46:15 jammy sensu-backend[6281]: {"backend_id":"9d66f68d-9b30-4ead-81ce-4eb17adc65a6","component":"metricsd","level":"debug","msg":"metricsd heartbeat","name":"entity_metrics","time":"202>
Aug 16 12:46:15 jammy sensu-backend[6281]: {"component":"etcd","level":"debug","caller":"v3rpc/interceptor.go:182","msg":"request stats","start time":"2023-08-16T12:46:15+03:00","time spent":"313.0>
Aug 16 12:46:16 jammy sensu-backend[6281]: {"backend_id":"9d66f68d-9b30-4ead-81ce-4eb17adc65a6","component":"metricsd","level":"debug","msg":"metricsd heartbeat","name":"event_metrics","time":"2023>
Aug 16 12:46:16 jammy sensu-backend[6281]: {"component":"etcd","level":"debug","caller":"v3rpc/interceptor.go:182","msg":"request stats","start time":"2023-08-16T12:46:16+03:00","time spent":"262.3>
Aug 16 12:46:17 jammy sensu-backend[6281]: {"backend_id":"9d66f68d-9b30-4ead-81ce-4eb17adc65a6","component":"metricsd","level":"debug","msg":"metricsd heartbeat","name":"cluster_metrics","time":"20>
Aug 16 12:46:17 jammy sensu-backend[6281]: {"component":"etcd","level":"debug","caller":"v3rpc/interceptor.go:182","msg":"request stats","start time":"2023-08-16T12:46:17+03:00","time spent":"211.0>

Para obtener detalles sobre cómo inicializar el backend de Sensu, lea la referencia del backend.

Paso 4: Inicialice Sensu configurando el nombre de usuario y la contraseña

Con el backend en ejecución, necesitamos ejecutar sensu-backend init para configurar el nombre de usuario y la contraseña del administrador de Sensu.

Para ello se necesitan variables de entorno con una cadena de nombre de usuario y contraseña.

sudo su -
export SENSU_BACKEND_CLUSTER_ADMIN_USERNAME=admin
export SENSU_BACKEND_CLUSTER_ADMIN_PASSWORD=StrongAdminPassw0rd

Con el nombre de usuario y la contraseña proporcionados, inicialice Sensu:

# sensu-backend init
{"component":"cmd","level":"info","msg":"attempting to connect to etcd server: http://localhost:2379","time":"2023-08-16T12:47:36+03:00"}
{"component":"backend.seeds","level":"info","msg":"seeding etcd store with initial data","time":"2023-08-16T12:47:36+03:00"}
{"component":"store","level":"warning","msg":"migrating etcd database to a new version","time":"2023-08-16T12:47:36+03:00"}
{"component":"store","database_version":1,"level":"info","msg":"successfully upgraded database","time":"2023-08-16T12:47:36+03:00"}
{"component":"store","database_version":2,"level":"info","msg":"successfully upgraded database","time":"2023-08-16T12:47:36+03:00"}
{"component":"store","level":"warning","msg":"migrating enterprise etcd database to a new version","time":"2023-08-16T12:47:36+03:00"}
{"component":"store","database_version":1,"level":"info","msg":"successfully upgraded database","time":"2023-08-16T12:47:36+03:00"}
{"component":"store","database_version":2,"level":"info","msg":"successfully upgraded database","time":"2023-08-16T12:47:36+03:00"}

Verifique que el backend esté en funcionamiento utilizando la API Sensu /health para verificar el estado del backend. Debería recibir una respuesta que incluya “Saludable”: verdadero.

# 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}}

Paso 5: acceda a la interfaz de usuario web de Sensu

El servicio de interfaz de usuario web está escuchando en el puerto 3000

# ss -tunelp | grep 3000
tcp   LISTEN 0      4096                                 *:3000            *:*    users:(("sensu-backend",pid=6281,fd=20)) uid:998 ino:61297 sk:13 cgroup:/system.slice/sensu-backend.service v6only:0 <->

La interfaz de usuario web proporciona una vista unificada de sus eventos de observabilidad y herramientas fáciles de usar para reducir la fatiga de las alertas. Abra la interfaz de usuario web visitando http://serverIP:3000.

Inicie sesión con el nombre de usuario y la contraseña establecidos en el Paso 4. Para nosotros, el nombre de usuario era admin y la contraseña es StrongAdminPassw0rd

Paso 6: Instalar sensuctl

Sensuctl es una utilidad de línea de comandos que le permite administrar recursos dentro de Sensu. Llama a la API HTTP de Sensu para crear, leer, actualizar y eliminar recursos, eventos y entidades. Esta herramienta se puede instalar en Linux, Windows y macOS.

apt install sensu-go-cli

Ejecute sensuctl configure e inicie sesión con sus credenciales de usuario, espacio de nombres y URL backend de Sensu.

# Syntax
sensuctl configure -n \
--username 'YOUR_USERNAME' \
--password 'YOUR_PASSWORD' \
--namespace default \
--url 'http://127.0.0.1:8080'

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

Para ver su perfil ejecute los siguientes comandos:

# sensuctl config view
=== Active Configuration
API URL:                  http://127.0.0.1:8080
Namespace:                default
Format:                   tabular
Timeout:                  15s
Username:                 admin
JWT Expiration Timestamp: 1665750798

Más guías:

  • Instalar y configurar Nagios en Ubuntu
  • Instalar Zabbix 5 en Ubuntu
  • Instalar LibreNMS en Ubuntu
  • Instalar Grafana en Debian
  • Instalar Prometheus en Ubuntu

Artículos relacionados: