Monitorizando latencias con Telegraf

Algo muy sencillito y muy útil puede ser y conocer la latencia a distintas direcciones IP, podemos visualizar en tiempo real, con refresco de 1 segundo, los tiempos que tarda en responder las direcciones IP, podrán ser privadas o públicas; por ejemplo, para conocer si tenemos problemas con Internet y donde están, por ejemplo 🙂

 

Ya veréis qué rápido y sencillo! Supongo que todos tendremos ya instalado Influxdb y Grafana, cualquier duda tenemos este post inicial. Bueno, pues desde cualquier máquina que tengra Telegraf instalado lo haremos en un minuto. Tendremos que decidir desde donde haremos los Ping para conocer su latencia, si tenemos dudas, la propia máquina de Influxdb puede tener el agente de Telegraf instalado y desde ahí haremos los Ping.

Editamos el fichero de Telegraf y en la sección de los Inputs bastará con añadir algo como esto, donde en el ejemplo vemos un Ping al DNS de Google y otro a una IP local de mi red, un router:

...
[[inputs.ping]]
  urls = ["8.8.8.8"] # required
  count = 1
  interface = "ens32"
  name_override = "ping_google"
  interval = "1s"


[[inputs.ping]]
  urls = ["192.168.0.1"] # required
  count = 1
  interface = "ens32"
  name_override = "ping_router_movistar"
  interval = "1s"
...

 

Recordar que si queremos con refresco de 1 segundo, deberemos indicarlo en los parámetros ‘interval’ y ‘flush_interval’. Como siempre, tras tocar fichero de configuración, reiniciamos el servicio de Telegraf y que lea la nueva config:

sudo systemctl restart telegraf

 

Y con esto y un bizcocho… tendremos ya los datos en Influxdb, así que lo siguiente será ir a Grafana! Allí ya tendremos configurado el Data Source contra este Influxdb, y lo siguiente será añadir un Panel en un Dashboard, contra dicho Data Source de Influxdb de tipo Flux y con esta query lo tendremos:

from(bucket: "Monitor")
  |> range(start: v.timeRangeStart)
  |> filter(fn: (r) => r._measurement == "ping_google" and r._field == "average_response_ms")
|> aggregateWindow(every: v.windowPeriod, fn: mean)

 

 

¡Y zas! ¡lo tenemos! ¿Qué en un minuto? Precioso! ya tenemos un ejemplo de cómo visualizar en tiempo real latencias a distintas direcciones IP. Podrás dibujar dashboards con trazas, rutas y conocer donde está el cuello de botella, de manera inmediata o a modo de consulta histórica por supuesto.

Abrazos a todes, que así semos modernos… en fin, ahora en serio, cuidaros, agradeceros vuestras lecturas, ratitos, cuando le dais a los likes o compartir en las RRSS… en fin, gracias!

 

Héctor Herrero