• Tentang Milvus
  • Memulai
  • Konsep
  • Panduan Pengguna
  • Impor Data
  • Alat AI
  • Panduan Administrasi
  • Peralatan
  • Integrasi
  • Tutorial
  • Pertanyaan Umum
  • API Reference

Mengkonfigurasi Grafana Loki

Panduan ini menyediakan instruksi tentang cara mengonfigurasi Loki untuk mengumpulkan log dan Grafana untuk menanyakan dan menampilkan log untuk cluster Milvus.

Dalam panduan ini, Anda akan mempelajari cara:

  • Menerapkan Loki dan Alloy pada cluster Milvus menggunakan Helm.
  • Mengonfigurasi penyimpanan objek untuk Loki.
  • Melakukan kueri log menggunakan Grafana.

Sebagai referensi, Promtail akan ditinggalkan. Jadi, kami memperkenalkan Alloy, yang secara resmi disarankan oleh Grafana Labs sebagai agen baru untuk mengumpulkan log Kubernetes dan meneruskannya ke Loki.

Prasyarat

Menerapkan Loki

Loki adalah sistem agregasi log yang terinspirasi oleh Prometheus. Terapkan Loki menggunakan Helm untuk mengumpulkan log dari cluster Milvus Anda.

1. Menambahkan Repositori Bagan Helm Grafana

Tambahkan repositori bagan Grafana ke Helm dan perbarui:

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

2. Mengonfigurasi Penyimpanan Objek untuk Loki

Pilih salah satu opsi penyimpanan berikut dan buat file konfigurasi loki.yaml:

  • Opsi 1: Menggunakan MinIO untuk penyimpanan

    loki:
      commonConfig:
        replication_factor: 1
      auth_enabled: false
    
    minio:
      enabled: true
    
  • Opsi 2: Menggunakan AWS S3 untuk penyimpanan

    Pada contoh berikut, ganti <accessKey> dan <keyId> dengan kunci akses dan ID S3 Anda sendiri, s3.endpoint dengan titik akhir S3, dan s3.region dengan wilayah 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. Menginstal Loki

Jalankan perintah berikut untuk menginstal Loki:

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

Menyebarkan Paduan

Kami akan menunjukkan kepada Anda Konfigurasi Paduan.

1. Membuat Konfigurasi Paduan

Kita akan menggunakan alloy.yaml berikut ini untuk mengumpulkan log dari semua pod Kubernetes & mengirimkannya ke Loki melalui 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. Instal Alloy

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

Menanyakan Log dengan Grafana

Terapkan Grafana dan konfigurasikan agar terhubung ke Loki untuk log kueri.

1. Menyebarkan Grafana

Instal Grafana menggunakan perintah berikut:

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

Sebelum Anda dapat mengakses Grafana, Anda perlu mengambil kata sandi admin:

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

Kemudian, teruskan porta Grafana ke mesin lokal Anda:

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. Menambahkan Loki sebagai Sumber Data di Grafana

Setelah Grafana berjalan, Anda perlu menambahkan Loki sebagai sumber data untuk menanyakan log.

  1. Buka peramban web dan arahkan ke 127.0.0.1:3000. Masuk menggunakan nama pengguna admin dan kata sandi yang telah Anda dapatkan sebelumnya.
  2. Pada menu sebelah kiri, pilih Sambungan > Tambah sambungan baru.
  3. Pada halaman yang muncul, pilih Loki sebagai tipe sumber data. Anda dapat memasukkan loki pada kolom pencarian untuk menemukan sumber data.
  4. Di pengaturan sumber data Loki, tentukan Nama dan URL, lalu klik Simpan & uji.

DataSource Sumber Data

3. Menanyakan Log Milvus

Setelah menambahkan Loki sebagai sumber data, lakukan kueri log Milvus di Grafana:

  1. Pada menu sebelah kiri, klik Jelajahi.
  2. Di sudut kiri atas halaman, pilih sumber data Loki.
  3. Gunakan browser Label untuk memilih label dan menanyakan log.

Query Kueri