Ir al contenido

Dashboard de Grafana

Se incluye un dashboard de Grafana preconfigurado para monitorizar el bouncer y la salud del router.

Tema oscuro:

Dashboard de Grafana con tema oscuro

Tema claro:

Dashboard de Grafana con tema claro

Antes de importar el dashboard, necesitas:

  1. Una instancia de Grafana en ejecución (se recomienda v9.0+)
  2. Una instancia de Prometheus en ejecución que haga scraping del bouncer
  3. El bouncer en ejecución con metrics.enabled: true

1. Configura el bouncer para exponer métricas

Sección titulada «1. Configura el bouncer para exponer métricas»

Habilita las métricas de Prometheus en la configuración de tu bouncer:

config.yaml
metrics:
enabled: true
listen_addr: "0.0.0.0"
listen_port: 2112
routeros_poll_interval: 30s # Habilita las métricas del sistema RouterOS

Comprueba que el endpoint de métricas funciona:

Ventana de terminal
curl -s http://<bouncer-host>:2112/metrics | head -20

2. Configura Prometheus para hacer scraping del bouncer

Sección titulada «2. Configura Prometheus para hacer scraping del bouncer»

Añade un trabajo de scraping a tu configuración de Prometheus:

prometheus.yml
scrape_configs:
- job_name: "cs-routeros-bouncer"
static_configs:
- targets: ["<bouncer-host>:2112"]
scrape_interval: 15s

Sustituye <bouncer-host> por la IP o el nombre de host donde se ejecuta el bouncer.

Después de añadir la configuración de scraping, recarga Prometheus:

Ventana de terminal
# Recargar mediante HTTP (si --web.enable-lifecycle está activado)
curl -X POST http://localhost:9090/-/reload
# O reiniciar Prometheus
systemctl restart prometheus

Comprueba que el target está sano en la interfaz de Prometheus: Status → Targets — el target cs-routeros-bouncer debería mostrar UP.

3. Añade Prometheus como fuente de datos en Grafana

Sección titulada «3. Añade Prometheus como fuente de datos en Grafana»
  1. Abre las fuentes de datos

    En Grafana, ve a ConnectionsData sourcesAdd data source.

  2. Selecciona Prometheus

    Elige Prometheus en la lista.

  3. Configura la conexión

    Establece la Prometheus server URL con tu instancia de Prometheus (p. ej., http://localhost:9090 o http://prometheus:9090 en Docker).

  4. Save & Test

    Haz clic en Save & Test — deberías ver “Successfully queried the Prometheus API.”

  1. Abre la importación en Grafana

    Ve a DashboardsNewImport.

  2. Sube el JSON del dashboard

    Sube grafana/dashboard.json desde el repositorio.

  3. Selecciona la fuente de datos de Prometheus

    Elige la fuente de datos de Prometheus que configuraste en el paso 3.

  4. Haz clic en Import

    El dashboard se creará y mostrará datos de inmediato.

El dashboard contiene 41 paneles organizados en 9 filas:

FilaPaneles
OverviewRouterOS Connected, Active Decisions (IPv4/IPv6/Total), IPv4/IPv6 Ratio, Uptime, Bouncer Info
RouterOS SystemRouterOS System, CPU Load Over Time, Memory Usage Over Time, CPU Temperature Over Time, RouterOS Uptime, RouterOS Info
DecisionsActive Decisions Over Time, Cumulative Decisions, Decisions Processed (Rate)
Decisions by OriginActive Decisions by Origin, Decisions by Origin (Rate), Cumulative Decisions by Origin
Firewall TrafficProcessed Bytes, Processed Packets, Dropped Bytes, Dropped Packets, Drop Rate, Processed/Dropped Traffic Rate, Processed/Dropped Traffic by Protocol (Rate), Processed Traffic (Cumulative), Drop Rate Over Time
Errors & ReconciliationError Rate, RouterOS Connection, Reconciliation Duration, Last Reconciliation, Total Errors
Performance & OperationsOperation Latency (p50/p95/p99), Operation Rate
Process ResourcesMemory Usage, CPU Usage, Goroutines & File Descriptors
ConfigurationBouncer Configuration