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

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

1
2
3
firewall-cmd --permanent --add-port=8086/tcp
firewall-cmd --permanent --add-port=8083/tcp
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
2
3
4
5
CREATE DATABASE testdb
#Y le asignamos un usuario y contraseña:
CREATE USER david WITH PASSWORD 'yategustaria'
#Asignamos el usuario a la base de datos
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
2
systemctl enable telegraf
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

3 Respuestas

  1. victorhck dice:

    justo hoy compartí esta web en mi blog:
    https://metrics.opensuse.org/?orgId=1
    que con el software que mencionas (Grafana) hace interesantes gráficos sobre datos de openSUSE!
    Saludos!

    • Sí! lo he visto. Ahora está muy en boga en el sector IT. Tiene un sin fin de posibilidades y se puede integrar facilmente con diferentes servicios, protocolos, datasources…..

      Gracias por pasarte y comentar, colega!!

  2. Stefano Viacava dice:

    Hola realicé todos los pasos y me funcionó perfecto, pero el único problema es que no recopila la información en tiemo real, no sé que me faltaría por que me capta los GB de memoria, el uptime, cuantos procesos pero no se meuve nada en memorias usadas o los gráficos de cargas.

    Saludos !

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies