TIG: Graficar métricas de hosts y docker con Telegraf, InfluxDB y Grafana

Aloha a tod@s, en este post voy a explicar como graficar las métricas tanto de hosts, como de contenedores de docker de una forma muy sencilla con las herramientas que están ahora de moda. En este caso va a ser un stack de TIG (Telegraf, InfluxDB, Grafana). Telegraf e InfluxDB son de influxdata, empresa que se dedica a la analítica de datos. Telegraf sería el agente que recoge los datos y se los manda a influxDB, una base de datos orientada a time series escrita en Go muy potente y escalable a la hora de realizar estas operaciones. Por último, entraría en el juego Grafana que es la herramienta para graficar por excelencia de estos tiempos. Muy fácil de configurar y que soporta varios data sources.

Para los que sepan un poco de estas cosas, se preguntarán porque no utilizar prometheus que es la otra herramienta que está pegando fuerte. Prometheus a diferencia de influxDB hace pull de los datos, por lo que si se está detrás de un Firewall, hay que abrir puertos por cada cliente y es mas engorroso. Por eso optamos por esta otra solución.

Resultado de imagen de grafana influxdb

Despliegue

Montaremos todo el stack sobre docker y lo desplegaremos con docker-compose (as always). Y como proxy web utilizaremos traefik.

Configurar Telegraf

Ahora hay que crear la conf te telegraf. Para esto, crear una carpeta que se llama conf

Y crear un fichero que sea telegraf.conf. En el caso de que se quiera utilizar la conf por defecto, se puede generar con el siguiente comando. Pero aquí la vamos a personalizar.

Opcional:

Y añadir la configuración

Una vez configurado telegraf, solo queda levantar el stack. Para ello:

Configurar Grafana

Con esto, ya estará todo levantado y funcionando. El siguiente paso es acceder a grafana y añadirle InfluxDB como data source. Para eso:

Ahora queda configurar el data source. Para ello, hay que ir a: Configuration –> data sources y add data source

Y con esto ya podrá realizar las consultas contra InfluxDB.

Dashboards

Para terminar y dejar todo ya perfecto, hay que añadir los dashboards. Esto se puede hacer manualmente creando uno y añadiendo uno a uno los gráficos y estadísticas que queramos, o se puede importar uno desde la web de grafana. Vamos a utilizar el segundo método ya que es mucho mas rápido. Para ello, hay que ir a Create –> Import y pegar el numero de dashboard que queramos. Para la los hosts utilizaremos: 1443 y para docker utilizaremos: 1150

Y automáticamente detectará el dashboard. Seleccionar el data source e importar

Y ya se podrá ver ya el dashboard con las métricas recolectadas.

Y con esto ya estaría. En el caso de que se quiera desplegar telegraf en hosts que no estén en el mismo stack, hay que desplegar solo el contenedor de telegraf y cambiar en la conf la dirección de InfluxDB.

One comment

Leave a Reply

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