«Me lo contaron y lo olvidé; lo vi y lo entendí; lo hice y lo aprendí».

— Confucio

Modificar el intervalo de recopilación de datos en Prometheus – WISP/ISP desde cero

La frecuencia de actualización de los datos es un aspecto importante para conseguir una monitorización fluida de las interfaces de red.

Aunque Grafana tenga configurada una actualización automática cada cinco segundos, los datos solo cambiarán cuando Prometheus realice una nueva recopilación.

Por defecto, podemos tener configurado un intervalo global de 15 segundos, pero cada trabajo de monitorización puede establecer su propio intervalo.

Comprobar la configuración actual

Accedemos al servidor Debian donde tenemos instalado Prometheus y ejecutamos:

nano /etc/prometheus/prometheus.yml

En nuestro caso, el trabajo de monitorización de MikroTik estaba configurado de la siguiente manera:

- job_name: 'mikrotik_snmp'
  scrape_interval: 60s
  scrape_timeout: 30s

Esto significa que Prometheus solicitaba los datos SNMP del MikroTik cada 60 segundos, provocando que los cambios de tráfico tardasen en reflejarse en Grafana.

Reducir el intervalo de monitorización

Para obtener mediciones más frecuentes, modificamos la configuración del trabajo mikrotik_snmp:

- job_name: 'mikrotik_snmp'
  scrape_interval: 15s
  scrape_timeout: 10s

Con esta modificación:

  • scrape_interval: 15s: Prometheus realizará una nueva consulta SNMP cada 15 segundos.
  • scrape_timeout: 10s: establece un máximo de 10 segundos para completar cada recopilación.

Debemos conservar el resto de la configuración del trabajo, incluyendo los módulos SNMP, la autenticación y las direcciones de los dispositivos.

Aplicar la nueva configuración

Guardamos el archivo y comprobamos que no existen errores:

promtool check config /etc/prometheus/prometheus.yml

Si la validación es correcta, reiniciamos Prometheus:

systemctl restart prometheus

Comprobamos que el servicio está funcionando:

systemctl status prometheus

Finalmente, accedemos a:

http://IP_SERVIDOR:9090/targets

Verificamos que el trabajo mikrotik_snmp aparece en estado UP y que su intervalo de recopilación es de 15 segundos.

También podemos comprobar el tiempo que tarda en obtener las métricas mediante esta consulta PromQL:

scrape_duration_seconds{job="mikrotik_snmp"}

Si el tiempo de recopilación se aproxima al timeout configurado, será necesario revisar el rendimiento de las consultas SNMP.

Consideraciones para redes ISP con múltiples clientes PPPoE

En routers MikroTik que gestionan cientos de conexiones PPPoE, consultar todas las interfaces mediante SNMP puede generar una carga considerable.

Por este motivo, es recomendable comprobar el tiempo de respuesta de SNMP Exporter antes de reducir excesivamente el intervalo de recopilación.

Si la carga es elevada, podemos separar la monitorización de las interfaces WAN de la monitorización general de interfaces y sensores, utilizando trabajos y módulos específicos.

Con un intervalo de recopilación de 15 segundos en Prometheus, una ventana de cálculo de 1 minuto en PromQL y una actualización de 5 segundos en Grafana, conseguiremos una monitorización del tráfico WAN mucho más ágil, adecuada para detectar variaciones de consumo y analizar el comportamiento de los enlaces de Internet.

La actualización del gráfico no significa que se obtengan nuevas mediciones cada cinco segundos: los datos nuevos seguirán llegando aproximadamente cada 15 segundos.