Integrar Telegraf con scripts personalizados para crear monitoreo y gráficos

Hola!

Algo que me parece super interesante de Telegraf es la facilidad con la que se pueden integrar scripts custom para la recolección de métricas a través del plugin exec.

Recientemente me vi en la tarea de generar gráficos en Grafana en los que pueda visualizar la cantidad de conexiones activas de los usuarios conectados a una base de datos MySQL (o MaríaDB). Con Telegraf es muy simple (y sin usar un cron que corra cada minuto que ejecute el script y escriba los datos en una db). Si bien al script lo tuve que escribir yo, únicamente me tuve que preocupar que el STDOUT del script sea el que espera Telegraf. Dado que mi motor de base de datos en InfluxDB, el formato de dicha salida del script tiene que ser influx.

Mi script se ejecutaba de la siguiente manera y devolvía un output:

$ ./users_connections.py
active_connections,host=mydb.example.net user=user1,active_conns=1234

active_connections,host=mydb.example.net user=user2,active_conns=1235
active_connections,host=mydb.example.net user=user3,active_conns=1236
active_connections,host=mydb.example.net user=user4,active_conns=1237   

El archivo de configuración de Telegraf /etc/telegraf/telegraf.conf tendrá una sección para este script:

[[inputs.exec]]
  ## Commands array
  commands = [
    "/scripts/users_connections.py",
  ]
  timeout = "5s"
  name_suffix = "_activeconns"
  data_format = "influx"

Si agregan otros scripts a esta misma sección automáticamente Telegraf los ejecutará sin necesidad de reiniciar el servicio.

¡Espero que sea de utilidad!


Comentarios

Entradas más populares de este blog

Zabbix en dos días (día 1)

OpenVPN para todos :D

Sincronizar con rsync