Cómo instalar Sensu Monitoring en Ubuntu 20.04

Sensu es una herramienta gratuita y de código abierto que se utiliza para monitorizar la salud de la infraestructura y las aplicaciones. Está escrita en Ruby, utiliza RabbitMQ para gestionar los mensajes y Redis para almacenar los datos. Se puede instalar en la mayoría de los sistemas operativos, como Ubuntu, Debian, RHEL, CentOS, IBM, AIX, FreeBSD, Mac OS, Solaris, Windows y muchos más. Es una de las plataformas más populares y de última generación que sustituye a otros sistemas de monitorización como Zabbix, Icinga y Nagios. Sensu utiliza un modelo cliente-servidor. Sólo tendrás que instalar un cliente sensu en cada sistema que quieras monitorizar.

En este tutorial, mostraremos cómo instalar el servidor de monitorización Sensu en un servidor Ubuntu 20.04.

Requisitos previos

  • Un servidor con Ubuntu 20.04.
  • Una contraseña de root configurada el servidor.

Cómo empezar

En primer lugar, tendrás que actualizar tu sistema a la última versión estable. Puedes hacerlo actualizando todos los paquetes del sistema mediante el siguiente comando:

apt-get update -y

Una vez actualizado tu sistema, instala otras dependencias utilizando el siguiente comando:

apt-get install gnupg2 curl wget unzip -y

Una vez instalados todos los paquetes, puedes pasar al siguiente paso.

Instalar Redis y RabbitMQ

Sensu utiliza RabbitMQ para gestionar los mensajes y Redis para almacenar los datos. Así que ambos paquetes deben estar instalados en tu sistema. Por defecto, RabbitMQ no está disponible en el repositorio por defecto de Ubuntu 20.04. Así que tendrás que añadir el repositorio de RabbitMQ en tu sistema.

Primero, importa la clave GPG con el siguiente comando:

wget -O- https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | apt-key add -

A continuación, añade el repositorio ejecutando el siguiente comando:

echo "deb http://binaries.erlang-solutions.com/debian $(lsb_release -cs) contrib" | tee /etc/apt/sources.list.d/erlang-solutions.list

A continuación, actualiza el repositorio e instala el paquete RabbitMQ con el siguiente comando

apt-get update -y
apt-get install rabbitmq-server -y

Una vez instalado, tendrás que crear un vhost de RabbitMQ para Sensu. Puedes crearlo con el siguiente comando:

rabbitmqctl add_vhost /sensu

Deberías ver la siguiente salida:

Adding vhost "/sensu" ...

A continuación, crea un usuario para gestionar el vhost con el siguiente comando:

rabbitmqctl add_user sensu password

Deberías ver la siguiente salida:

Adding user "sensu" ...

A continuación, deberás asignar permisos completos para el vhost /sensu.

rabbitmqctl set_permissions -p /sensu sensu ".*" ".*" ".*"

Deberías obtener la siguiente salida:

Setting permissions for user "sensu" in vhost "/sensu" ...

A continuación, instala el servidor Redis con el siguiente comando:

apt-get install redis-server -y

Una vez completada la instalación, inicia el servicio Redis y habilítalo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start redis-server
systemctl enable redis-server

Una vez que hayas terminado, puedes pasar al siguiente paso.

Instalar el servidor Sensu

Por defecto, Sensu no está disponible en el repositorio oficial de Ubuntu. Así que tendrás que añadir el repositorio de Sensu en tu sistema.

Primero, importa la clave GPG del repositorio con el siguiente comando:

wget -O- https://sensu.global.ssl.fastly.net/apt/pubkey.gpg | apt-key add -

A continuación, añade el repositorio con el siguiente comando:

echo "deb https://sensu.global.ssl.fastly.net/apt bionic main" | tee /etc/apt/sources.list.d/sensu.list

Una vez añadido el repositorio, actualiza el repositorio e instala el Sensu con el siguiente comando:

apt-get update -y
apt-get install sensu -y

Una vez instalado el Sensu, puedes pasar al siguiente paso.

Configurar el Sensu

A continuación, tendrás que crear archivos de configuración para RabbitMQ, Redis y Api. Primero, crea un archivo api.json con el siguiente comando

nano /etc/sensu/conf.d/api.json

Añade las siguientes líneas:

{
  "api": {
    "host": "localhost",
    "bind": "0.0.0.0",
    "port": 4567
  }
}

Guarda y cierra el archivo y luego crea un archivo redis.json con el siguiente comando

nano /etc/sensu/conf.d/redis.json

Añade las siguientes líneas:

{
  "redis": {
    "host": "127.0.0.1",
    "port": 6379
  }
}

Guarda y cierra el archivo y luego crea un archivo de configuración de RabbitMQ con el siguiente comando:

nano /etc/sensu/conf.d/rabbitmq.json

Añade las siguientes líneas:

{
  "rabbitmq": {
    "host": "127.0.0.1",
    "port": 5672,
    "vhost": "/sensu",
    "user": "sensu",
    "password": "password"
  }
}

Guarda y cierra el archivo cuando hayas terminado.

Instalar y configurar Sensu Dashboard

A continuación, tendrás que instalar el tablero de mandos Uchiwa en tu sistema. Uchiwa es un panel de control de código abierto para supervisar Sensu a través de la interfaz web.

Puedes instalar Uchiwa con el siguiente comando:

apt-get install uchiwa -y

Después de instalar Uchiwa, crea un archivo de configuración para Uchiwa con el siguiente comando:

nano /etc/sensu/uchiwa.json

Añade las siguientes líneas:

{
  "sensu": [
    {
      "name": "Sensu",
      "host": "127.0.0.1",
      "port": 4567,
      "timeout": 10
    }
  ],
  "uchiwa": {
    "host": "0.0.0.0",
    "port": 3000,
    "refresh": 10
  }
}

Guarda y cierra el archivo cuando hayas terminado.

A continuación, tendrás que crear un archivo client.json para controlar el propio servidor de Sensu. Puedes crearlo con el siguiente comando:

nano /etc/sensu/conf.d/client.json

Añade las siguientes líneas:

{
  "client": {
    "name": "sensu-server",
    "address": "127.0.0.1",
    "environment": "management",
    "subscriptions": [
      "dev",
      "ubuntu"
   ],
    "socket": {
      "bind": "127.0.0.1",
      "port": 3030
    }
  }
}

Guarda y cierra el archivo cuando hayas terminado.

A continuación, inicia el servidor Sensu, la Api, Uchiwa y el servicio cliente Sensu con el siguiente comando:

systemctl start sensu-server
systemctl start sensu-api
systemctl start uchiwa
systemctl start sensu-client

Una vez iniciados todos los servicios, puedes verificar el estado de todos ellos con el siguiente comando:

systemctl status sensu-server sensu-api sensu-client uchiwa

Deberías obtener la siguiente salida:

? sensu-server.service - sensu server
     Loaded: loaded (/lib/systemd/system/sensu-server.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-08-23 09:04:43 UTC; 4min 18s ago
   Main PID: 10031 (sensu-server)
      Tasks: 24 (limit: 2353)
     Memory: 20.6M
     CGroup: /system.slice/sensu-server.service
             ??10031 /opt/sensu/embedded/bin/ruby /opt/sensu/bin/sensu-server -c /etc/sensu/config.json -d /etc/sensu/conf.d -e /etc/sensu/ext>

Aug 23 09:04:43 ubuntu2004 systemd[1]: Started sensu server.

? sensu-api.service - sensu api
     Loaded: loaded (/lib/systemd/system/sensu-api.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-08-23 09:04:42 UTC; 4min 19s ago
   Main PID: 10023 (sensu-api)
      Tasks: 2 (limit: 2353)
     Memory: 18.9M
     CGroup: /system.slice/sensu-api.service
             ??10023 /opt/sensu/embedded/bin/ruby /opt/sensu/bin/sensu-api -c /etc/sensu/config.json -d /etc/sensu/conf.d -e /etc/sensu/extens>

Aug 23 09:04:42 ubuntu2004 systemd[1]: Started sensu api.

? sensu-client.service - sensu client
     Loaded: loaded (/lib/systemd/system/sensu-client.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-08-23 09:04:42 UTC; 4min 18s ago
   Main PID: 10027 (sensu-client)
      Tasks: 2 (limit: 2353)
     Memory: 17.0M
     CGroup: /system.slice/sensu-client.service
             ??10027 /opt/sensu/embedded/bin/ruby /opt/sensu/bin/sensu-client -c /etc/sensu/config.json -d /etc/sensu/conf.d -e /etc/sensu/ext>

Aug 23 09:04:42 ubuntu2004 systemd[1]: sensu-client.service: Succeeded.
Aug 23 09:04:42 ubuntu2004 systemd[1]: Stopped sensu client.
Aug 23 09:04:42 ubuntu2004 systemd[1]: Started sensu client.

? uchiwa.service - LSB: Uchiwa, a Sensu dashboard.
     Loaded: loaded (/etc/init.d/uchiwa; generated)
     Active: active (exited) since Sun 2020-08-23 09:04:41 UTC; 4min 19s ago

Una vez que hayas terminado, puedes pasar al siguiente paso.

Acceder al panel de control de Sensu

Ahora, abre tu navegador web y escribe la URL http://your-server-ip:3000. Deberías ver el salpicadero de Sensu en la siguiente pantalla:

Herramienta de monitorización Sensu

Ahora, haz clic en el icono del cliente en el panel izquierdo. Deberías ver el estado del cliente Sensu en la siguiente pantalla:

Tablero de mandos Sensu

Conclusión

Enhorabuena! has instalado y configurado con éxito Sensu y Uchiwa en el servidor Ubuntu 20.04. Ahora puedes añadir más clientes y empezar a monitorizar desde el panel de control de Uchiwa. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...