Grafana Alloy con OAuth2 Client Credentials

Fecha publicación
Dificultad
Avanzado
#
10
3 more properties
Publicado
tags
IoT, Gateways, logs, métricas, plataforma, Grafana, Alloy, Docker, sistema, Mimir, Loki, MinIO, almacenamiento, AWS, S3, visualización, monitoreo, captura, servidores, integración, DB, BBDD, servers, integration, metrics, systems, logs, keycloak, oauth2, oauth2-client-credentials
Local:

Descripción

Es momento de aplicar lo explicado en el vídeo anterior (NPM con OAuth2 Client Credentials). Configuraremos Grafana Alloy para autenticarse mediante OAuth2 Client Credential a través de Nginx Proxy Manager, lo que nos permitirá inyectar datos en Grafana Mimir y Grafana Loki de forma segura.

Configuración Grafana Alloy

Para la configuración no se ha usado el típico fichero /etc/alloy/config.alloy ; se ha partido este fichero en muchos otros más pequeños y fáciles de debugar. Así pues, nos centraremos solo en los que se refieren a la configuración de los writers de Mimir y Loki.
/etc/alloy/metrics_writer.alloy
Bash
prometheus.remote_write "mimir" {
  endpoint {
    url = "https://metrics.i40sys.com/api/v1/push"
    oauth2 {
      client_id = "mimir"
      client_secret = "3A8pJULZFEnIo2tJe3AbuBHxqFKDqAQ5"
      token_url = "https://iam.i40sys.com/realms/observability/protocol/openid-connect/token"
      scopes =  ["openid"]
    }
  }
}
/etc/alloy/logs_writer.alloy
Bash
loki.write "logs_default" {
  endpoint {
    url = "https://logs.i40sys.com/loki/api/v1/push"
    min_backoff_period = "1s"
    max_backoff_period = "1m"
    max_backoff_retries = 10
    oauth2 {
      client_id = "loki"
      client_secret = "YNiN0SUhrIBZZmUqNG6nP78vR9Uk8GSd"
      token_url = "https://iam.i40sys.com/realms/observability/protocol/openid-connect/token"
      scopes =  ["openid", "profile", "email"]
    }
  }
  external_labels = {}
  wal {
    enabled = true
    max_segment_age = "1h"
  }
}