Cómo instalar Sensu Monitoring en Ubuntu 20.04

Herramienta de monitoreo Sensu

Sensu es una herramienta gratuita y de código abierto que se utiliza para monitorear la infraestructura y el estado de las aplicaciones. Está escrito en Ruby, usa RabbitMQ para manejar mensajes y Redis para almacenar datos. Se puede instalar en la mayoría de los sistemas operativos, incluidos 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 próxima generación que reemplaza a otros sistemas de monitoreo como Zabbix, Icinga y Nagios. Sensu utiliza un modelo cliente-servidor. Solo necesitará instalar un cliente sensu en cada sistema que desee monitorear.

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

requisitos previos

  • Un servidor con Ubuntu 20.04.
  • Se configura una contrase√Īa de root en el servidor.

Empezando

Primero, deber√° actualizar su sistema a la √ļltima versi√≥n estable. Puede hacer esto actualizando todos los paquetes del sistema usando el siguiente comando:

apt-get update -y

Una vez que su sistema esté actualizado, instale otras dependencias usando el siguiente comando:

apt-get install gnupg2 curl wget unzip -y

Una vez que todos los paquetes estén instalados, puede continuar con el siguiente paso.

Instalar Redis y RabbitMQ

Sensu usa RabbitMQ para manejar mensajes y Redis para almacenar datos. Así que ambos paquetes deben estar instalados en su sistema. De forma predeterminada, RabbitMQ no está disponible en el repositorio predeterminado de Ubuntu 20.04. Por lo tanto, deberá agregar el repositorio RabbitMQ en su sistema.

Primero, importe la clave GPG con el siguiente comando:

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

A continuación, agregue 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, actualice el repositorio e instale el paquete RabbitMQ con el siguiente comando:

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

Una vez instalado, deber√° crear un vhost de RabbitMQ para Sensu. Puedes crearlo con el siguiente comando:

rabbitmqctl add_vhost /sensu

Debería ver el siguiente resultado:

Adding vhost "/sensu" ...

A continuación, cree un usuario para administrar el host virtual con el siguiente comando:

rabbitmqctl add_user sensu password

Debería ver el siguiente resultado:

Adding user "sensu" ...

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

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

Deberías obtener el siguiente resultado:

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

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

apt-get install redis-server -y

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

systemctl start redis-server
systemctl enable redis-server

Una vez que haya terminado, puede continuar con el siguiente paso.

Instalar el servidor Sensu

De forma predeterminada, Sensu no est√° disponible en el repositorio oficial de Ubuntu. Por lo tanto, deber√° agregar el repositorio Sensu en su sistema.

Primero, importe 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, agregue 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 que se agrega el repositorio, actualice el repositorio e instale Sensu con el siguiente comando:

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

Una vez que Sensu esté instalado, puede continuar con el siguiente paso.

Configurar Sensu

A continuación, deberá crear archivos de configuración para RabbitMQ, Redis y Api. Primero, cree un archivo api.json con el siguiente comando:

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

Agregue las siguientes líneas: Publicidad

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

Guarde y cierre el archivo, luego cree un archivo redis.json con el siguiente comando:

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

Agregue las siguientes líneas:

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

Guarde y cierre el archivo, luego cree un archivo de configuración de RabbitMQ con el siguiente comando:

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

Agregue las siguientes líneas:

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

Guarde y cierre el archivo cuando haya terminado.

Instalar y configurar el panel Sensu

A continuación, deberá instalar el panel de Uchiwa en su sistema. Uchiwa es un panel de control de código abierto para monitorear Sensu a través de la interfaz web.

Puede instalar el Uchiwa con el siguiente comando:

apt-get install uchiwa -y

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

nano /etc/sensu/uchiwa.json

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

Guarde y cierre el archivo cuando haya terminado.

A continuación, deberá crear un archivo client.json para monitorear el propio servidor Sensu. Puedes crearlo con el siguiente comando:

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

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

Guarde y cierre el archivo cuando haya terminado.

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

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

Una vez que se inician todos los servicios, puede verificar el estado de todos los servicios con el siguiente comando:

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

Deberías obtener el siguiente resultado:

? 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 haya terminado, puede continuar con el siguiente paso.

Acceder al panel Sensu

Ahora, abra su navegador web y escriba la URL http://your-server-ip:3000. Debería ver el panel Sensu en la siguiente pantalla:

Herramienta de monitoreo Sensu

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

Tablero Sensu

Conclusión

¡Felicidades! Ha instalado y configurado con éxito Sensu y Uchiwa en el servidor Ubuntu 20.04. Ahora puede agregar más clientes y comenzar a monitorear desde el tablero de Uchiwa. No dude en preguntarme si tiene alguna pregunta.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *