Monitoreo: Cómo instalar Sensu en el servidor Ubuntu 16.04
Introducción – Monitoreo Sensu
Sensu es una herramienta gratuita y de código abierto para componer un sistema de seguimiento. Está completamente escrito en Ruby. Utiliza RabbitMQ para manejar mensajes y Redis para almacenar sus datos.
Sensu se centra en la componibilidad y la extensibilidad, permitiendo reutilizar comprobaciones de monitoreo y complementos de herramientas como Nagios y Zabbix.
Este marco fue diseñado para funcionar con software como Puppet, Chef y Ansible, y no requiere un flujo de trabajo adicional.
Como se indica en la documentación, “todas las versiones de Sensu (incluido Sensu Enterprise) se basan en los mismos componentes principales y funcionalidades, que son proporcionados por el proyecto de software de código abierto Sensu y denominados colectivamente Sensu Core. Sensu Core proporciona múltiples procesos, incluido el servidor Sensu (sensu-server), Sensu API (sensu-api) y el cliente Sensu (sensu-client).
Los paquetes de instalación están disponibles para la mayoría de los sistemas operativos modernos a través de paquetes de instalación nativos (por ejemplo, .deb, .rpm, .msi, .pkg, etc.) que están disponibles para descargar desde el sitio web de Sensu, y desde los repositorios del administrador de paquetes para APT (para sistemas Ubuntu/Debian) y YUM (para RHEL/CentOS)”.
En este tutorial mostraremos cómo instalar Sensu en un servidor Ubuntu 16.04.
Instalar RabbitMQ
RabbitMQ se ejecuta sobre Erlang, por lo que, antes que nada, instalaremos Erlang en nuestro servidor.
Erlang no está disponible en los repositorios de Ubuntu, pero proporciona el suyo propio. Agreguémosla y la clave pública de Erlang a la lista de claves confiables ejecutando el siguiente comando:
wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
dpkg -i erlang-solutions_1.0_all.deb
wget -O- https://packages.erlang-solutions.com/ubuntuerlang_solutions.asc | sudo apt-key add -
A continuación, actualice la lista de repositorios con lo siguiente
apt
dominio :
apt-get update -y
Una vez
apt
ha actualizado su lista, es posible instalar Erlang ejecutando el siguiente comando:
apt-get install socat erlang-nox
En este punto, podemos descargar e instalar RabbitMQ. Como hemos hecho con Erlang, primero que nada es necesario agregar el repositorio RabbitMQ:
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server_3.6.10-1_all.deb
dpkg -i rabbitmq-server_3.6.10-1_all.deb
Actualice la lista de repositorios con el siguiente comando:
apt-get update
Finalmente, podemos instalar el servidor RabbitMQ con lo siguiente
apt
dominio :
apt-get install rabbitmq-server
Una vez que se complete la instalación, inicie RabbitMQ y habilítelo para que se inicie en el momento del arranque. Ejecute los comandos:
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
Crear vhost y usuario para Sensu
A continuación, necesitamos crear un RabbitMQ.
vhost
y usuario de Sensu. Puedes hacer esto ejecutando el siguiente comando:
rabbitmqctl add_vhost /sensu
rabbitmqctl add_user sensu your-password
rabbitmqctl set_permissions -p /sensu sensu ".*" ".*" ".*"
En este punto, podemos instalar el servidor Redis.
Instalar el servidor Redis
Como se anticipó en la introducción, Sensu utiliza el servidor Redis para almacenar datos.
Por defecto Redis está disponible en el repositorio de Ubuntu, por lo que podemos instalarlo ejecutando el siguiente comando:
apt-get install redis-server apt-transport-https -y
Una vez que se completa la instalación, podemos iniciar Redis y habilitarlo para que se inicie en el momento del arranque:
systemctl start redis-server
systemctl enable redis-server
Instalar y configurar Sensu
El siguiente paso es instalar Sensu. No está disponible en los repositorios de Ubuntu, pero, como dijimos en la introducción, el proyecto proporciona su propio repositorio para Ubuntu. Agregue la clave pública y el repositorio de Sensu a
apt
lista de repositorios.
En primer lugar, agregue la clave, ejecutando lo siguiente
gpg
dominio :
wget -q https://sensu.global.ssl.fastly.net/apt/pubkey.gpg -O- | sudo apt-key add -
A continuación, debemos agregar el repositorio Sensu. Crear un
sensu.list
presentar en
/etc/apt/sources.list.d
directorio:
$EDITOR /etc/apt/sources.list.d/sensu.list
En este archivo, pegue el siguiente contenido:
deb https://sensu.global.ssl.fastly.net/apt xenial main
Guardar y Salir. Actualiza la lista de repositorios:
apt-get update
Finalmente, instale Sensu:
apt-get install sensu
Configurar Sensu
Una vez finalizada la instalación, necesitamos configurar Sensu para usarlo con RabbitMQ y Redis. De forma predeterminada, Sensu cargará la configuración desde
/etc/sensu/conf.d/
directorio. Aquí es donde crearemos los archivos de configuración de RabbitMQ, Redis y Api.
Para la parte RabbitMQ, cree un
rabbitmq.json
presentar en
/etc/sensu/conf.d
:
$EDITOR /etc/sensu/conf.d/rabbitmq.json
Para conectar Sensu a RabbitMQ, pegue el siguiente contenido en el archivo abierto:
{
"rabbitmq": {
"host": "127.0.0.1",
"port": 5672,
"vhost": "/sensu",
"user": "sensu",
"password": "your-password"
}
}
Guardar y Salir.
A continuación, de la misma manera, cree el
redis.json
archivo :
$EDITOR /etc/sensu/conf.d/redis.json
Allí pega el siguiente contenido:
{
"redis": {
"host": "127.0.0.1",
"port": 6379
}
}
Guardar y Salir
A continuación, cree el
api.json
archivo :
nano /etc/sensu/conf.d/api.json
Pegue las siguientes líneas:
{
"api": {
"host": "localhost",
"bind": "0.0.0.0",
"port": 4567
}
}
Guardar y Salir.
Instalar y configurar el panel Uchiwa
De forma predeterminada, después de la instalación, Sensu no proporciona el Panel para monitorear Sensu a través de una interfaz web fácil de usar.
El marco se diseñó originalmente como una solución de monitoreo basada en API, lo que permite a los equipos de operaciones crear soluciones de monitoreo donde Sensu proporciona la instrumentación de monitoreo, la recopilación de datos de telemetría, el procesamiento de eventos escalable, API integrales y complementos para enviar datos a soluciones de panel dedicadas. Sin embargo, a medida que el proyecto maduró, resultó natural trabajar en una interfaz de seguimiento. Como resultado, hoy en día existen dos paneles: Uchiwa (para usuarios de Sensu Core) y Sensu Enterprise Dashboard (para clientes de Sensu Enterprise).
En este tutorial, instalaremos Uchiwa Dashboard.
Primero, agregue la clave pública ejecutando el siguiente comando:
wget -q https://sensu.global.ssl.fastly.net/apt/pubkey.gpg -O- | sudo apt-key add -
A continuación, agregue un repositorio Uchiwa creando el
uchiwa.list
archivo dentro del
/etc/apt/sources.list.d
directorio:
$EDITOR /etc/apt/sources.list.d/uchiwa.list
Aquí pega:
deb https://sensu.global.ssl.fastly.net/apt xenial main
Guardar y salir.
A continuación, actualice la lista de repositorios con el siguiente comando:
apt-get update
Una vez
apt
ha actualizado su lista de repositorios, podemos instalar Uchiwa ejecutando el siguiente comando:
apt-get install uchiwa
Configurar Uchiwa
Una vez finalizada la instalación, crea un archivo de configuración para Uchiwa:
nano /etc/sensu/conf.d/uchiwa.json
Aquí, pega el siguiente contenido:
{"sensu": [
{ "name": "Sensu",
"host": "localhost",
"port": 4567, "timeout": 10
}
],
"uchiwa": {
"host": "0.0.0.0",
"port": 3000,
"refresh": 10
}
}
Guardar y Salir.
Finalmente, reinicie Sensu y Uchiwa y habilítelos para que se inicien en el momento del arranque:
systemctl start sensu-server
systemctl enable sensu-server
systemctl start sensu-api
systemctl enable sensu-api
systemctl start sensu-client
systemctl enable sensu-client
systemctl start uchiwa
systemctl enable uchiwa
Configurar el cortafuegos UFW
Uchiwa escucha en el puerto 3000, por lo que debemos permitirle atravesar el firewall UFW. Ejecute el siguiente comando:
ufw allow 3000
Conclusión
Esto concluye el tutorial. Hemos visto cómo instalar y configurar Sensu y Uchiwa Dashboard en un servidor que ejecuta Ubuntu 16.04.