• Acerca de Milvus
  • Comenzar
  • Conceptos
  • Guía del usuario
  • Importación de datos
  • Herramientas de IA
  • Guía de administración
  • Herramientas
  • Integraciones
  • Tutoriales
  • Preguntas frecuentes
  • API Reference

Configurar Grafana Loki

Esta guía proporciona instrucciones sobre cómo configurar Loki para recopilar registros y Grafana para consultar y mostrar registros para un clúster Milvus.

En esta guía, aprenderá a:

  • Implementar Loki y Alloy en un clúster Milvus utilizando Helm.
  • Configurar el almacenamiento de objetos para Loki.
  • Consultar registros utilizando Grafana.

Como referencia, Promtail será obsoleto, por lo que introducimos Alloy, que ha sido sugerido oficialmente por Grafana Labs como el nuevo agente para recopilar registros de Kubernetes y reenviarlos a Loki.

Requisitos previos

Despliegue de Loki

Loki es un sistema de agregación de registros inspirado en Prometheus. Despliegue Loki utilizando Helm para recopilar registros de su cluster Milvus.

1. Añade el repositorio de gráficos Helm de Grafana

Añade el repositorio de gráficos de Grafana a Helm y actualízalo:

helm repo add grafana https://grafana.github.io/helm-charts
helm repo update

2. Configurar Almacenamiento de Objetos para Loki

Elige una de las siguientes opciones de almacenamiento y crea un archivo de configuración loki.yaml:

  • Opción 1: Usar MinIO para almacenamiento

    loki:
      commonConfig:
        replication_factor: 1
      auth_enabled: false
    
    minio:
      enabled: true
    
  • Opción 2: Usar AWS S3 para almacenamiento

    En el siguiente ejemplo, sustituye <accessKey> y <keyId> por tu propia clave de acceso e ID de S3, s3.endpoint por el endpoint de S3 y s3.region por la región de S3.

    loki:
      commonConfig:
        replication_factor: 1
      auth_enabled: false
      storage:
        bucketNames:
          chunks: loki-chunks
          ruler: loki-ruler
          admin: loki-admin
        type: 's3'
        s3:
          endpoint: s3.us-west-2.amazonaws.com
          region: us-west-2
          secretAccessKey: <accessKey>
          accessKeyId: <keyId>
    

3. Instala Loki

Ejecuta los siguientes comandos para instalar Loki:

kubectl create ns loki
helm install --values loki.yaml loki grafana/loki -n loki

Desplegar Alloy

Te mostraremos la configuración de Alloy.

1. Crear configuración de Alloy

Utilizaremos el siguiente alloy.yaml para recoger logs de todos los pods de Kubernetes y enviarlos a Loki a través de loki-gateway:

alloy:
  enableReporting: false
  resources: {}
  configMap:
    create: true
    content: |-
      loki.write "default" {
        endpoint {
          url = "http://loki-gateway/loki/api/v1/push"
        }
      }

      discovery.kubernetes "pod" {
        role = "pod"
      }

      loki.source.kubernetes "pod_logs" {
        targets    = discovery.relabel.pod_logs.output
        forward_to = [loki.write.default.receiver]
      }

      // Rewrite the label set to make log query easier
      discovery.relabel "pod_logs" {
        targets = discovery.kubernetes.pod.targets
        rule {
          source_labels = ["__meta_kubernetes_namespace"]
          action = "replace"
          target_label = "namespace"
        }

        // "pod" <- "__meta_kubernetes_pod_name"
        rule {
          source_labels = ["__meta_kubernetes_pod_name"]
          action = "replace"
          target_label = "pod"
        }

        // "container" <- "__meta_kubernetes_pod_container_name"
        rule {
          source_labels = ["__meta_kubernetes_pod_container_name"]
          action = "replace"
          target_label = "container"
        }

        // "app" <- "__meta_kubernetes_pod_label_app_kubernetes_io_name"
        rule {
          source_labels = ["__meta_kubernetes_pod_label_app_kubernetes_io_name"]
          action = "replace"
          target_label = "app"
        }

        // "job" <- "__meta_kubernetes_namespace", "__meta_kubernetes_pod_container_name"
        rule {
          source_labels = ["__meta_kubernetes_namespace", "__meta_kubernetes_pod_container_name"]
          action = "replace"
          target_label = "job"
          separator = "/"
          replacement = "$1"
        }

        // L"__path__" <- "__meta_kubernetes_pod_uid", "__meta_kubernetes_pod_container_name"
        rule {
          source_labels = ["__meta_kubernetes_pod_uid", "__meta_kubernetes_pod_container_name"]
          action = "replace"
          target_label = "__path__"
          separator = "/"
          replacement = "/var/log/pods/*$1/*.log"
        }

        // "container_runtime" <- "__meta_kubernetes_pod_container_id"
        rule {
          source_labels = ["__meta_kubernetes_pod_container_id"]
          action = "replace"
          target_label = "container_runtime"
          regex = "^(\\S+):\\/\\/.+$"
          replacement = "$1"
        }
      }

2. Instalar Alloy

helm install --values alloy.yaml alloy grafana/alloy -n loki

Consulta de Logs con Grafana

Desplegar Grafana y configurarlo para conectarse a Loki para consultar los registros.

1. Despliega Grafana

Instala Grafana usando los siguientes comandos:

kubectl create ns monitoring
helm install my-grafana grafana/grafana --namespace monitoring

Antes de poder acceder a Grafana, necesitas recuperar la contraseña de admin:

kubectl get secret --namespace monitoring my-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo

Luego, reenvía el puerto de Grafana a tu máquina local:

export POD_NAME=$(kubectl get pods --namespace monitoring -l "app.kubernetes.io/name=grafana,app.kubernetes.io/instance=my-grafana" -o jsonpath="{.items[0].metadata.name}")
kubectl --namespace monitoring port-forward $POD_NAME 3000

2. Añade Loki como fuente de datos en Grafana

Una vez que Grafana se está ejecutando, es necesario agregar Loki como una fuente de datos para consultar los registros.

  1. Abre un navegador web y navega a 127.0.0.1:3000. Inicia sesión con el nombre de usuario admin y la contraseña obtenida anteriormente.
  2. En el menú de la izquierda, selecciona Conexiones > Añadir nueva conexión.
  3. En la página que aparece, seleccione Loki como tipo de fuente de datos. Puede introducir loki en la barra de búsqueda para encontrar la fuente de datos.
  4. En la configuración de la fuente de datos Loki, especifique el Nombre y la URL y, a continuación, haga clic en Guardar y probar.

DataSource Fuente de datos

3. Consulta de registros Milvus

Después de añadir Loki como fuente de datos, consulte los registros de Milvus en Grafana:

  1. En el menú de la izquierda, haz clic en Explorar.
  2. En la esquina superior izquierda de la página, seleccione la fuente de datos loki.
  3. Utilice el explorador de etiquetas para seleccionar las etiquetas y consultar los registros.

Query Consulta