Una de las tareas más frecuentes e importantes que debemos desempeñar dentro del área de soporte y gestión de sistemas es velar por el óptimo rendimiento del sistema tanto a nivel de aplicaciones, usuarios, hardware y software.
Cuando gestionamos sistemas Ubuntu existen muchas herramientas que nos ofrecen la posibilidad de llevar un control y una gestión directa sobre muchos parámetros de este y hoy hablaremos de una en particular que será de gran ayuda para gestionar adecuadamente entornos Ubuntu: TICK.
Para este caso usaremos Ubuntu Server 16.10.
TICK es licenciado bajo MIT.TICK.
TICK está compuesta por los siguientes elementos:
Cuenta con complementos para obtener diversos tipos de métricas directamente del sistema actual o extraer métricas de API de terceros.
Incluye plugins para Graphite, OpenTSDB, Datadog, Librato, Kafka, MQTT, NSQ.
Kapacitor puede ser integrado con aplicaciones como HipChat, OpsGenie, Alerta, Sensu, PagerDuty, Slack para generar alertas asociadas a cualquier anomalía, estadística o nuevos patrones en el sistema.
1. Cómo instalar repositorio TICK en Ubuntu Server
Para poder realizar la instalación necesitaremos unos requisitos mínimos:
- Ubuntu Server 16.04 o 16.10 el cual puede ser descargado en el siguiente enlace: Ubuntu Server 16.
- Contar con un servidor SMTP para el envío de las alertas de Kapacitor, podemos instalar sendmail usando el siguiente comando:
sudo apt-get install sendmail
- Como opcional podemos crear una cuenta gratuita de GitHub para proteger la interfaz de usuario al ejecutar Chronograf. Para crearla podemos ir al siguiente enlace:
Con esto en mente procedemos a instalar y configurar TICK en Ubuntu Server 16.1º.
Este repositorio nos dará la posibilidad de ejecutar con total seguridad y de forma efectiva TICK en Ubuntu 16.10, para ello ejecutaremos los siguientes comandos en su orden:
curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add – source /etc/lsb-release echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
Ahora actualizaremos los paquetes usando el comando:
sudo apt-get update
2. Cómo instalar InfluxDB y configurar la autenticación Ubuntu Server
A continuación procedemos a instalar InfluxDB en Ubuntu 16.10 ejecutando el siguiente comando:
sudo apt-get install influxdb
Una vez finalice el proceso de instalación de InfluxDB procedemos a iniciar el servicio ejecutando el siguiente comando:
sudo systemctl start influxdb
Para verificar el estado actual de InfluxDB ejecutamos el siguiente comando en Ubuntu:
sudo systemctl status influxdb
Podemos ver que su estado es activo.
El siguiente paso consiste en crear un usuario administrador para restringir el acceso a la base de datos manteniendo su integridad y disponibilidad. Para esto debemos iniciar InfluxDB usando el siguiente valor:
Influx
Ahora crearemos el usuario indicando la respectiva contraseña usando la siguiente sintaxis:
CREATE USER "solvetic" WITH PASSWORD Solvetic123' WITH ALL PRIVILEGES
Podemos comprobar el usuario creado usando el siguiente comando. Salimos de la base de datos ingresando la palabra
exit show users
Ahora accederemos al archivo de configuración de InfluxDB el cual está alojado en la ruta /etc/influxdb/influxdb.conf, usaremos el editor preferido:
sudo nano /etc/influxdb/influxdb.conf
Allí ubicaremos la sección HTTP y realizaremos el siguiente ajuste en la línea auth-enabled. La descomentamos borrando el símbolo # al inicio. Cambiamos su valor de false a true.
Guardamos los cambios usando la combinación de teclas
Ctrl + O
y salimos del editor usando
Ctrl + X
Reiniciamos el servicio ejecutando el siguiente comando:
sudo systemctl restart influxdb
3. Cómo instalar InfluxDB y configurar Telegraf en Ubuntu Server
Recordemos que Telegraf es el agente que recopila información de las métricas del sistema en tiempo real, para su instalación ejecutaremos el siguiente comando:
sudo apt-get install telegraf
El servicio de Telegraf será iniciado de forma automática.
Ahora será necesario acceder al archivo de configuración de Telegraf para añadir el usuario y contraseña que hemos creado anteriormente, para esto ejecutaremos lo siguiente:
sudo nano /etc/telegraf/telegraf.conf
Allí ubicaremos la línea outputs.influxdb para adicionar el usuario y contraseña:
Guardamos el archivo usando Ctrl + O. Reiniciamos el servicio de Telegraf ejecutando el siguiente comando:
sudo systemctl restart telegraf
Comprobamos el estado actual de Telegraf usando el siguiente comando:
systemctl status telegraf
Podemos comprobar que su estado es activo. De este modo Telegraf ya se encuentra recopilando información de las métricas del sistema, para comprobarlo accederemos a InfluxDB con nuestras credenciales:
influx -username solvetic -password Solvetic123
Una vez accedamos usaremos el comando show databases para listar las bases de datos actuales. Allí veremos las respectivas bases de datos.
Vemos que se ha creado la base de datos de Telegraf, ahora ejecutamos el siguiente comando para usar dicha base de datos:
use telegraf
Ahora usaremos el comando show measurements para listar su contenido:
Como podemos ver Telegraf ya ha recopilado múltiples métricas, recordemos que Telegraf tiene la capacidad de recopilar métricas de muchos servicios y bases de datos como:
- Apache
- Cassandra
- Docker
- IPtables
- MySQL
- PostgreSQL
- Redis
Para conocer cada instrucción en específico debemos usar la siguiente sintaxis en la terminal:
telegraf -usage (Plugin)
4. Cómo instalar Kapacitor en Ubuntu Server
El siguiente paso consiste en instalar Kapacitor en Ubuntu 16.10 usando el siguiente comando:
sudo apt-get install kapacitor
A continuación accederemos al archivo de configuración de Kapacitor ejecutando el siguiente comando:
sudo nano /etc/kapacitor/kapacitor.conf
Allí ubicaremos la línea influxdb para agregar el usuario y la contraseña creada:
Guardamos los cambios usando las teclas:
Ctrl + O
y salimos del editor usando las teclas
Ctrl + X
Iniciamos el servicio de Kapacitor ejecutando el siguiente comando:
sudo systemctl start kapacitor
Para verificar que Kapacitor está siendo ejecutado de forma correcta usaremos el siguiente comando para listar sus tareas:
kapacitor list tasks
5. Cómo instalar y configurar Chronograf en Ubuntu Server
Para su instalación en Ubuntu Server 16.10 ejecutaremos los siguientes comandos en su orden:
wget https://dl.influxdata.com/chronograf/releases/chronograf_1.2.0~beta5_amd64.deb sudo dpkg -i chronograf_1.2.0~beta5_amd64.deb
Iniciamos el servicio de Chronograf usando el siguiente comando:
sudo systemctl start chronograf
Si por algún motivo usamos UFW en Ubuntu Server es aconsejable que agreguemos esta conexión como permitida ejecutando el siguiente comando:
sudo ufw allow 8888/tcp
Ahora vamos a cualquier navegador y en la barra de dirección ingresaremos la siguiente sintaxis:
http://Direccion IP:8888
Allí ingresamos el usuario y contraseña que hemos creado en InfluxDB y pulsamos en el botón Connect New Source y tendremos acceso a toda la información del sistema en tiempo real:
Allí será posible definir la forma cómo será desplegada la información, en la parte superior podremos editar dichos valores. Desde esta ventana configuraremos Kapacitor para la gestión y envío de alarmas, para ello pulsamos en el icono de Piñón en el costado izquierdo y veremos lo siguiente:
Seleccionamos Kapacitor y se desplegará la siguiente ventana:
Como no hemos creado un usuario para Kapacitor podremos pulsar en la opción Connect Kapacitor y se activará la ventana Configure Alert Endpoint.
Kapacitor es compatible con múltiples gestores de alertas como: HipChat, OpsGenie, PagerDuty, Sensu, Slack, SMTP, Talk, Telegram. Podemos usar un servidor SMTP y configurar sus valores o si hemos instalado sendmail simplemente pulsamos en Save para guardar los cambios.
6. Cómo configurar alertas en Kapacitor en Ubuntu Server
El proceso para configurar una alerta y recibirla por correo electrónico es simple.
Para esto pulsamos en el icono de Exclamación en el costado izquierdo y seleccionamos la opción Kapacitor Rules:
En la ventana desplegada seleccionamos la opción Create New Rule.
En las opciones desplegadas pulsamos sobre telegraf.autogen
Posteriormente seleccionamos la opción System / Load1 y veremos el siguiente gráfico:
En el campo Send Alert where load1 is Greater Than estableceremos la condición para que la alerta sea creada, en este caso hemos ingresado 0.2:
A continuación pegaremos la siguiente línea en el campo Alert Message:
{{ .ID }} is {{ .Level }} value: {{ index .Fields "value" }}
Podemos pasar el mouse sobre cada uno de las líneas en el campo Templates para obtener una descripción de cada acción. Elegimos SMTP en el campo Send this alert to:
En el campo Add email address ingresaremos el correo electrónico donde se enviará la alerta. Finalmente pulsamos en la opción Save Rule para guardar los cambios. La alerta será enviada en formato JSON.
Como podemos comprender TICK proporción una ayuda bastante útil para gestiona todos los parámetros del sistema de una forma sencilla y clara permitiendo que las tareas de administración sean lo más prácticas y dinámicas posibles. Te sugerimos otra alternativa para monitorizar el sistema pero con Sysdig en Ubuntu de Linux.