• Sobre Milvus
  • Começar a trabalhar
  • Conceitos
  • Guia do utilizador
  • Importação de dados
  • Ferramentas de IA
  • Guia de Administração
  • Ferramentas
  • Integrações
  • Tutoriais
  • FAQs
  • API Reference

Configurar o Grafana Loki

Este guia fornece instruções sobre como configurar o Loki para coletar logs e o Grafana para consultar e exibir logs para um cluster Milvus.

Neste guia, você aprenderá como:

  • Implantar o Loki e o Alloy em um cluster Milvus usando o Helm.
  • Configurar o armazenamento de objetos para o Loki.
  • Consultar logs usando o Grafana.

Para referência, o Promtail será descontinuado. Portanto, apresentamos o Alloy, que foi oficialmente sugerido pelo Grafana Labs como o novo agente para coletar logs do Kubernetes e encaminhá-los para o Loki.

Pré-requisitos

Implantar o Loki

O Loki é um sistema de agregação de logs inspirado no Prometheus. Implante o Loki usando o Helm para coletar logs do seu cluster Milvus.

1. Adicionar o repositório de gráficos do Helm do Grafana

Adicione o repositório de gráficos do Grafana ao Helm e atualize-o:

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

2. Configurar o armazenamento de objetos para o Loki

Escolha uma das seguintes opções de armazenamento e crie um arquivo de configuração loki.yaml:

  • Opção 1: Usando o MinIO para armazenamento

    loki:
      commonConfig:
        replication_factor: 1
      auth_enabled: false
    
    minio:
      enabled: true
    
  • Opção 2: usar o AWS S3 para armazenamento

    No exemplo a seguir, substitua <accessKey> e <keyId> por sua própria chave de acesso e ID do S3, s3.endpoint pelo ponto de extremidade do S3 e s3.region pela região do 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. Instalar o Loki

Execute os seguintes comandos para instalar o Loki:

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

Implantar o Alloy

Mostraremos a configuração do Alloy.

1. Criar a configuração do Alloy

Usaremos o seguinte alloy.yaml para coletar logs de todos os pods do Kubernetes e enviá-los para o Loki via 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 o Alloy

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

Consultar logs com o Grafana

Implante o Grafana e configure-o para se conectar ao Loki para consultar os logs.

1. Implantar o Grafana

Instale o Grafana usando os seguintes comandos:

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

Antes de poder acessar o Grafana, é necessário recuperar a senha admin:

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

Em seguida, encaminhe a porta do Grafana para sua 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. Adicionar o Loki como uma fonte de dados no Grafana

Quando o Grafana estiver em execução, você precisará adicionar o Loki como uma fonte de dados para consultar os logs.

  1. Abra um navegador da Web e navegue até 127.0.0.1:3000. Faça login usando o nome de usuário admin e a senha obtida anteriormente.
  2. No menu do lado esquerdo, escolha Conexões > Adicionar nova conexão.
  3. Na página que aparece, escolha Loki como o tipo de fonte de dados. Pode introduzir loki na barra de pesquisa para encontrar a fonte de dados.
  4. Nas definições da fonte de dados Loki, especifique o Nome e o URL e, em seguida, clique em Guardar e testar.

DataSource Fonte de dados

3. Consultar registos do Milvus

Depois de adicionar o Loki como uma fonte de dados, consulte os logs do Milvus no Grafana:

  1. No menu do lado esquerdo, clique em Explore (Explorar).
  2. No canto superior esquerdo da página, escolha a fonte de dados loki.
  3. Use o navegador de rótulos para selecionar rótulos e consultar logs.

Query Consultar