Al gestionar ambientes basados en Linux es importante conocer las diversas aplicaciones que nos permiten llevar un nivel de administración mucho más simple y con un alcance de gestión muy superior. Sensu se constituye en una solución vital para el análisis y monitoreo del sistema.
Hoy en Solvetic analizaremos qué es y cómo configurar Sensu en Ubuntu 17.04.
Sensu está escrito en Ruby el cual usa RabbitMQ para el manejo de mensajes y Redis para almacenar datos.
Sensu ofrece un marco simple para monitorear la infraestructura y la salud de las aplicaciones y servicios disponibles.
Sensu soporta varias plataformas como IBM AIX, Ubuntu, Debian, RedHat, CentOS, FreeBSD, Mac OS, Solaris, Windows y muchas más.
- Recopilación de métricas ya que el formato de comprobación de Sensu está compuesto por un código de estado de salida y una carga útil arbitraria.
- Envío de notificaciones usando servicios de correo electrónico, PagerDuty, Slack, HipChat, IRC y más.
- Ejecuta comprobaciones de servicio ya que puede monitorizar la aplicación y los servicios del sistema, detectando aquellos en un estado poco saludable.
- API documentada, ya que la API de Sensu proporciona acceso a datos de eventos y clientes, y cuenta con la capacidad de solicitar ejecuciones de verificación y resolver eventos.
- Registro de cliente dinámico.
- Monitoreo de autoservicio, y de esta forma Sensu proporciona soporte para el monitoreo centralizado y descentralizado (o distribuido), permitiendo a los equipos de operaciones mantener un nivel de servicio estándar para toda la organización.
- Entrada externa debido a que el agente de monitoreo Sensu (sensu-client) proporciona un socket TCP y UDP que puede aceptar datos JSON externos.
- Conectividad segura al aprovechar los transportes que ofrecen cifrado SSL, autenticación y ACLs granulares.
1. Actualizar del sistema operativo Ubuntu 17
El primer paso a realizar consiste en la actualización del sistema y para ello ejecutaremos los siguientes comandos:
sudo apt-get update -y sudo apt-get upgrade -y
Una vez actualizado procedemos a su reinicio ejecutando
sudo reboot
2. Instalar y configurar RabbitMQ en Ubuntu 17
RabbitMQ funciona en Erlang, de modo que será necesario instalar Erlang en el sistema.
Primero, agregaremos el repositorio Erlang y la clave pública Erlang a la lista de claves de confianza ejecutando siguiente comando:
wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
A continuación extraeremos el contenido ejecutando:
sudo dpkg -i erlang-solutions_1.0_all.deb
Ahora descargaremos la clave pública ejecutando lo siguiente:
wget -O- https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | sudo apt-key add -
Procedemos a actualizar los repositorios usando el siguiente comando:
sudo apt-get update -y
Con los repositorios actualizados procedemos a la instalación de Erlang ejecutando lo siguiente:
sudo apt-get install socat erlang-nox -y
Ahora será necesario descargar e instalar la última versión del repositorio RabbitMQ en su sistema ejecutando lo siguiente:
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server_3.6.10-1_all.deb
Extraemos el contenido descargado ejecutando lo siguiente:
sudo dpkg -i rabbitmq-server_3.6.10-1_all.deb
Nuevamente actualizamos los repositorios instalados ejecutando:
sudo apt-get update -y
Ahora podremos proceder a instalar RabbitMQ ejecutando lo siguiente:
sudo apt-get install rabbitmq-server -y
Una vez instalado iniciaremos el servicio y lo habilitaremos para que sea ejecutado en el arranque de Ubuntu 17.04:
sudo systemctl start rabbitmq-server sudo systemctl enable rabbitmq-server
3. Crear el vhost y usuario para Sensu en Ubuntu 17
El siguiente paso consiste en ejecutar los siguientes comandos:
sudo rabbitmqctl add_vhost /sensu (Creación del vhost) sudo rabbitmqctl add_user sensu (Contraseña) (Creación del usuario) sudo rabbitmqctl set_permissions -p /sensu ".*" ".*" ".*" (Asignacion de permisos)
4. Instalar el servidor Redis en Ubuntu 17
Sensu hace uso del servidor Redis para el almacenamiento de los datos, por defecto, Sensu está disponible en el repositorio de Ubuntu.
Podemos instalar el servidor Redis ejecutando el siguiente comando:
sudo apt-get install redis-server apt-transport-https -y
Una vez instalado procedemos a iniciarlo y habilitarlo al inicio de sesión:
sudo systemctl start redis-server sudo systemctl enable redis-server
5. Instalar y configurar Sensu en Ubuntu 17
Por defecto Sensu no está disponible en el repositorio de Ubuntu y por ello será necesario agregar la clave pública y repositorio a Ubuntu.
Primero, agregaremos la clave GPG con el siguiente comando:
wget -O- https://sensu.global.ssl.fastly.net/apt/pubkey.gpg | sudo apt-key add –
Ahora agregaremos el repositorio Sensu creando el archivo sensu.list dentro del directorio /etc/apt/sources.list.d ejecutando lo siguiente:
sudo nano /etc/apt/sources.list.d/sensu.list
En este archivo añadiremos la siguiente línea:
deb https://sensu.global.ssl.fastly.net/apt sensu main
Guardamos los cambios usando la combinación de teclas siguiente:
Ctrl +O
Salimos del editor usando:
Ctrl + X
Actualizamos el repositorio usando la siguiente línea:
sudo apt-get update -y
Ahora instalaremos Sensu ejecutando lo siguiente:
sudo apt-get install sensu -y
Después de la instalación de Sensu, será necesario configurar Sensu para RabbitMQ y Redis.
De forma predeterminada, Sensu cargará la configuración desde el directorio /etc/sensu/conf.d/, es por ello que debemos crear archivos de configuración para RabbitMQ, Redi y Api.
En primer lugar crearemos un archivo rabbitmq.json dentro del directorio /etc/sensu/conf.d ejecutando lo siguiente:
sudo nano /etc/sensu/conf.d/rabbitmq.json
Allí añadiremos lo siguiente:
{ "rabbitmq": { "host": "127.0.0.1", "port": 5672, "vhost": "/sensu", "user": "sensu", "password": "Contraseña" } }
Guardamos los cambios usando la combinación de teclas siguiente:
Ctrl +O
Salimos del editor usando:
Ctrl + X
Ahora crearemos el archivo redis.json ejecutando lo siguiente:
sudo nano /etc/sensu/conf.d/redis.json
Allí añadiremos lo siguiente:
{ "redis": { "host": "127.0.0.1", "port": 6379 } }
Guardamos los cambios. Ahora crearemos el archivo api.json:
sudo nano /etc/sensu/conf.d/api.json
Allí añadiremos lo siguiente. Guardamos los cambios y salimos del archivo.
{ "api": { "host": "localhost", "bind": "0.0.0.0", "port": 4567 } }
6. Instalar y configurar el dashboard de Sensu Sensu en Ubuntu 17
Por defecto el dashboard en Sensu no viene predefinido por lo cual será necesario instalar un Uchiwa Dashboard de código abierto en Ubuntu para este fin.
Para esto en primer lugar añadiremos un repositorio Uchiwa en Ubuntu ejecutando lo siguiente:
wget -O- https://sensu.global.ssl.fastly.net/apt/pubkey.gpg | sudo apt-key add –
Ahora añadiremos el repositorio Uchiwa creando el archivo uchiwa.list dentro del directorio /etc/apt/sources.list.d :
sudo nano /etc/apt/sources.list.d/uchiwa.list
En este archivo añadiremos lo siguiente:
deb https://sensu.global.ssl.fastly.net/apt sensu main
Guardamos los cambios usando la combinación de teclas siguiente:
Ctrl +O
Salimos del editor usando:
Ctrl + X
Actualizamos los repositorios usando
sudo apt-get update -y
Ahora instalaremos Uchiwa ejecutando lo siguiente:
sudo apt-get install uchiwa -y
A continuación crearemos el archivo de configuración de Uchiwa ejecutando lo siguiente:
sudo nano /etc/sensu/conf.d/uchiwa.json
Pegaremos las siguientes líneas dentro de este archivo:
{ "sensu": [ { "name": "Sensu", "host": "localhost", "port": 4567, "timeout": 10 } ], "uchiwa": { "host": "0.0.0.0", "port": 3000, "refresh": 10 } }
Guardamos los cambios usando la combinación de teclas siguiente:
Ctrl +O
Ahora ejecutaremos los siguientes comandos en su orden para iniciar Uchiwa y habilitarlo desde el inicio, y del mismo modo reiniciar Sensu:
sudo systemctl start sensu-server sudo systemctl enable sensu-server sudo systemctl start sensu-api sudo systemctl enable sensu-api sudo systemctl start sensu-client sudo systemctl enable sensu-client sudo systemctl start uchiwa sudo systemctl enable uchiwa
7. Acceder al dashboard de Sensu Sensu en Ubuntu 17
El siguiente paso consiste en ejecutar los siguientes comandos para la instalación y habilitación del puerto que usara Sensu:
sudo apt-get install ufw -y (Instalación de UFW) sudo ufw enable (Habilitación del firewall) sudo ufw allow 3000 (Permiso al puerto 3000)
Con estos permisos nos dirigimos a un navegador y ejecutamos alguna de las siguientes opciones:
http:IP_Equipo:3000 o http://localhost:3000
De esta forma podremos configurar Sensu para monitorear aplicaciones y servicios en Ubuntu 17.04.