Métricas fáciles con InfluxDB, Telegraf y Grafana

Aquí estamos de vuelta. Hoy os voy hablar de una excelente combinación de productos, que nos ayudarán a monitorizar, a nivel gráfico, nuestro servidores. Los productos en cuestión son InfluxDB, un motor de base de datos, de serie de tiempo, ideal para almacenar los resultados de diferentes colectores, entre ellos Telegraf. Este último se encarga de recopilar e informar diferentes series de métricas. Por último Grafana, una plataforma abierta, que tiene en su centro e intención, ser amigable en la gestión de las gráficas y el monitoreo.

Otra de las ventajas de esta combinación de herramientas, es que a posteriori podemos añadir clientes (utilizando Telegraf), ya sean GNU Linux u otros sistemas operativos. De esta manera podemos tener una plataforma centralizada para el control de nuestros hosts. Pero vamos paso a paso. Veamos la instalación de cada una de las partes.

Para la ocasión he creado una máquina virtual, con Centos 7. Si os interesa realizar la instalación con otra distribución, hay muchas guías al respecto en la web. Aún así la entrada os puede servir de manera orientativa.

El servidor está ubicado en la llamada nube, en este caso en un VPS de la empresa clouding.io, empresa ubicada en mi ciudad, Barcelona. Por si os interesa. Yo de momento estoy bastante contento, ya realicé un artículo al respecto en su día. Desde en entonces han incorporado nuevas ventajas y funcionalidades, entre las que se encuentran, sistemas operativos GNU Linux, concretamente CentOS, Debian y Ubuntu, en diferentes versiones, por un precio, desde mi punto de vista, bastante competitivo. Permite instantáneas (snapshots), opciones de clonar un servidor y utilizar como plantilla para crear nuevos; atención al cliente las 24 horas, de manera gratuita, una vez tenemos nuestro primer servidor creado.  Otras de las ventajas que más me gustan y no me alargo más, es la posibilidad de aumentar y disminuir los recursos, esto es la CPU, la memoria y el disco. Y por último y super importante: se guardan tres copias de nuestro servidor, para así poder evitar desastres. Tiene muchas más características, os invito a visitar su web e informaos. ¡Podéis decir que venís de mi parte! 🙂

Instalación de InfluxDB

Tanto InfluxDB como Telegraf, son dos patas del mismo proyecto, por lo que el repositorio que debemos añadir al sistema, nos servirá para ambos.

Vamos al lío:

  1. vi /etc/yum.repos.d/influxdb.repo
  2. #Y añadimos la siguiente información:
  3. [influxdb]
  4. name = InfluxDB Repository - RHEL \$releasever
  5. baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
  6. enabled = 1
  7. gpgcheck = 1
  8. gpgkey = https://repos.influxdata.com/influxdb.key

Una vez añadido, ya podemos instalar el paquete que nos interesa:

  1. yum install influxdb

Añadimos el servicio al inicio y lo arrancamos:

  1. systemctl enable influxdb
  2. systemctl start influxdb

El motor de base de datos utiliza el puerto 8086, por lo que lo habilitamos en el cortafuegos:

  1. firewall-cmd --permanent --add-port=8086/tcp
  2. firewall-cmd --permanent --add-port=8083/tcp
  3. firewall-cmd --reload

Para trabajar con él sólo debemos escribir influx, y de esta manera ya estaremos dentro de la consola de administración. El funcionamiento es similar a otros motores de base de datos SQL.

Para crear un «datasource» de prueba sólo debemos de escribir:

  1. CREATE DATABASE testdb
  2. #Y le asignamos un usuario y contraseña:
  3. CREATE USER david WITH PASSWORD 'yategustaria'
  4. #Asignamos el usuario a la base de datos
  5. GRANT ALL ON testdb TO david

Sí queréis ampliar información al respecto, podéis consultar este enlace.

Instalación de Telegraf

Su instalación es bien sencilla, además ya tenemos los repositorios añadidos:

  1. yum install -y telegraf

Añadimos el servicio al inicio y lo encendemos:

  1. systemctl enable telegraf
  2. systemctl start telegraf

Una vez encendido creará un «data source» en InfluxDB, llamado «telegraf». Por lo que accederemos con influx Le asignaremos el mismo usuario que hemos utilizado antes, aunque aquí para gustos colores.

  1. GRANT ALL ON telegraf TO david

Ahora nos tocará modificar el fichero de configuración llamado /etc/telegraf/telegraf.conf, y en el apartado de InfluxDB, asignamos la información de la base de datos. Una vez modificado, reiniciamos:

  1. systemctl restart telegraf

Para más información al respecto sobre la instalación de Telegraf, aquí os dejo un enlace a la documentación oficial.

Instalación de Grafana

De esta plataforma ya he hablado en la web, ahí podéis consultar su instalación.

Manos a la obra

Una vez lo tenemos todo instalado, nos vamos a la web de Grafana. Recuerda que es por el puerto 3000

Primero de todo añadiremos el «datasource» de InfluxDB llamado «telegraf»

Tras este paso debemos importar un «dashboard«, en la web de Grafana tenemos diversos proyectos que utilizan tanto Telegraf como InfluxDB. En mi caso he escogido el llamado «Telegraf Host Metrics» Lo descargamos y lo importamos desde «Dashboard» -> «Import»

Al importarlos debemos seleccionar nuestro DB, en este caso «Telegraf» como recurso de datos. Es importante leer las notas del «dashboard» para que funcione correctamente.

Si todo va bien ya pododrás ver la poca memoria que dispones en tu servidor, en mi caso por lo menos  🙂

Lo dejamos aquí, espero que os haya parecido interesante. Ya tenía ganas de escribir un artículo en la web!! Nos vamos leyendo ^.^

La imagen ha sido extraída de Flickr | Derechos Creative Commons