Monitorización gratuita con InfluxDB, Telegraf y Grafana

En esta serie de monitorización que hoy empiezo, vamos a ver a lo largo de varias entradas como crear un sistema de monitorización gratuito, muy completo y totalmente interactivo.
La primera entrada va a tratar sobre una de las tareas más importantes, que es la configuración e instalación de Telegraf para recoger los datos de los contadores que se enviarán a nuestra base de datos InfluxDB para después mostrarlos usando Grafana.
¿Qué es Telegraf, InfluxDB y Grafana?
Telegraf es un agente muy liviano que se encarga de recolectar, procesar y enviar las métricas de una máquina que queremos monitorizar a nuestra base de datos, Influxdb.
InfluxDB es la base de datos en la que almacenaremos las métricas enviadas desde el agente. Esta base de datos está diseñada para soportar altas cargas de escritura y lectura. Por aquí os dejamos algo mas de información.
Grafana es una plataforma de análisis de datos que permite visualizarlos utilizando consultas. Es decir, podemos crear paneles que muestren sólo X datos.
Requisitos previos
Antes de empezar con el post debemos de tener un escenario previo para poder utilizar este agente. Utilizaremos dos servidores a los que llamaremos Servidor1 y Servidor2:
- Servidor1 con InfluxDB y Grafana instalados. Nosotros hemos utilizado un servidor Linux. Aquí podéis ver como instalar InfluxDB y Grafana.
En este servidor debemos abrir el puerto de salida 3000, es el que utiliza Grafana y habilitar el puerto de entrada que utiliza influxDB. El puerto por defecto es el 8086
- Servidor2: Una máquina que queramos monitorizar,en nuestro caso será Windows. Con el puerto de salida que hemos habilitado para Influxdb abierto. 8086 si es el puerto por defecto.
Una vez tengamos estos pasos pasaremos a explicar la instalación y configuración del fichero de telegraf y su funcionamiento.
La creación de la monitorización del servidor se divide en dos pasos:
- Crear Base de Datos en InfluxDB
- Configurar e Instalar Telegraf
Crear Base de Datos en InfluxDB
Antes de empezar con la configuración necesitamos crear una base de datos para almacenar las métricas del servidor que queremos monitorizar, por lo que el primer paso será acceder a Servidor1 donde tenemos instalado InfluxDB.
Dentro de la máquina accedemos a InfluxDB utilizando el siguiente comando:
influx -host localhost -port 8086
-port: Aquí pondremos el puerto por el que tengamos configurada nuestra base de datos. 8086 es el puerto por defecto.
Ahora crearemos la nueva base de datos donde se conectará Telegraf:
CREATE DATABASE AlesonITC WITH DURATION 30d
DURATION: Tiempo que queremos almacenar los datos del servidor monitorizado. En este caso serán 30 días
Para mostrar todas las bases de datos lanzaremos:
SHOW ALL DATABASES
Ya tenemos la base de datos creada, ahora podemos pasar a configurar e instalar Telegraf.
Configurar e Instalar Telegraf
Entramos en Servidor2, máquina Windows. Abrimos el navegador y descargamos los ficheros de Telegraf para InfluxDB desde Github.
Una vez descargados, descomprimimos los ficheros que contiene. Copiamos el fichero telegraf.conf.sample y lo renombramos a telegraf.conf. Cuando lo hayamos renombrado, lo abrimos y pasamos a configurar el fichero.
Primero debemos configurar el tiempo que tarda en recolectar los datos y enviarlos:


Por defecto está en 10 segundos, pero dependiendo de la cantidad de servidores esto puede ser un problema por lo que lo hemos aumentado a 1 minuto.
El siguiente paso será configurar la IP del Servidor1, nuestro servidor InfluxDB, con su respectivo puerto:

Añadimos la base de datos que acabamos de crear:

A continuación, podemos elegir las métricas que queremos que se recolecten y envíen. Nosotros hemos seleccionado solamente Windows, pero hay muchos plugins que podéis ver en el siguiente link, Plugins.
Para añadir el plugin simplemente debemos copiar el código y pegarlo al final del fichero telegraf.conf.
Una vez hecha la configuración del fichero pasamos con la instalación del agente.
Abrimos un explorador de archivos, accedemos a “C:\Program files” y creamos una carpeta llamada telegraf para almacenar los ficheros telegraf.exe y telegraf.conf
Movemos los ficheros telegraf.exe y telegraf.conf a esta carpeta y abrimos una línea de comandos como administrador.
Nos situamos en la carpeta que acabamos de crear:
cd “c:\program files\telegraf”
Instalamos el agente:
telegraf.exe --service install
Arrancamos el servicio:
net start telegraf

Para ver si hay algún error de configuración ejecutaremos simplemente telegraf.exe desde la consola:

Volvemos al Servidor1 accedemos de nuevo a InfluxDB para comprobar que están llegando los datos:
influx -host localhost -port 8086
A continuación seleccionamos la base de datos que queremos utilizar, AlesonITC en nuestro caso:
use AlesonITC

Y para comprobar que está recibiendo datos lanzaremos una consulta con los datos que está enviando el Agente Telegraf:
select Percent_User_Time from win_cpu
Como podemos ver la consulta nos muestra los datos que está almacenando dentro de esta base de datos.

Visita este post para saber más:
Monitorización Gratuita con Influxdb, Telegraf y Grafana – Parte II
Si quieres que ayudemos a tu empresa con nuestras soluciones, contacta con nosotros.

Database Administrator. Centrado en la monitorización y el rendimiento de las bases de datos.