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:
El archivo de configuración de Telegraf /etc/telegraf/telegraf.conf tendrá una sección para este script:
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!
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
Publicar un comentario