Cách push logs lên Bizfly Cloud Observability

Bizfly Cloud Observability dùng service Loki để quản lý logs nên bạn có thể push logs bằng bất cứ agent nào có khả năng tương thích với Loki, chẳng hạn như Promtail, Grafana Alloy, fluentbit, …
Dưới đây là các bước và ví dụ cấu hình của một số agent để thu thập log từ file /log/gdnsd.log rồi push logs lên Bizfly Cloud Observability.

Bước 1. Chuẩn bị

Để push logs lên service Loki của Bizfly Cloud Observability bạn cần có endpoint và bearer token để authen khi push logs.

Bước 2. Cấu hình agent push logs

Grafana agent(Flow mode)

Install

Tham khảo các cách install Grafana agent tại đây

Cấu hình

Tạo file config.river và paste nội dung config sau:

   local.file_match "local_files" {
      path_targets = [{"__path__" = "/log/gdnsd.log"}]
      sync_period = "5s"
  }
  loki.source.file "log_scrape" {
      targets    = local.file_match.local_files.targets
      forward_to = [loki.write.grafana_loki.receiver]
      tail_from_end = true
  }
  loki.write "grafana_loki" {
    endpoint {
      url = "https://obs-xxxxxxxx-xxxx-xxxx-xxxx.obs.bfcplatform.vn/loki/api/v1/push"
      bearer_token = "YOUR_LOGS_TOKEN"
    }

Run (Standalone)

Grafana-agent run config.river
Grafana Alloy

Install

Tham khảo các cách install Grafana Alloy tại đây

Cấu hình

Tạo file config.alloy và paste nội dung config sau:

   local.file_match "local_files" {
      path_targets = [{"__path__" = "/log/gdnsd.log"}]
      sync_period = "5s"
  }
  loki.source.file "log_scrape" {
      targets    = local.file_match.local_files.targets
      forward_to = [loki.write.grafana_loki.receiver]
      tail_from_end = true
  }
  loki.write "grafana_loki" {
    endpoint {
      url = "https://obs-xxxxxxxx-xxxx-xxxx-xxxx.obs.bfcplatform.vn/loki/api/v1/push"
      bearer_token = "YOUR_LOGS_TOKEN"
    }

Run (Standalone)

alloy run config.alloy
Promtail

Cấu hình

Tạo file promtail-config.yaml và paste nội dung config sau:

  positions:
      filename: /tmp/positions.yaml

  clients:
      - url: https://obs-xxxxxxxx-xxxx-xxxx-xxxx.obs.bfcplatform.vn/loki/api/v1/push
      bearer_token: YOUR_LOGS_TOKEN

  scrape_configs:
      - job_name: system
          static_configs:
          - targets:
              - localhost
              labels:
              job: gdnsdlogs
              __path__: /log/gdnsd.log

Run

docker run -d -v $YOUR_FOLDER/:/mnt/config -v /var/log:/var/log -v /log/gdnsd.log:/log/gdnsd.log --name promtail Grafana/promtail:3.0.0 --config.file=/mnt/config/promtail-config.yaml
Vector

Cấu hình

Tạo file vector.yaml và paste nội dung config sau:

  sources:
      source_gdnsd_log:
          type: file
          include:
              - /log/gdnsd.log
  sinks:
      loki_sink:
          type: loki
          inputs:
              - source_gdnsd_log
          endpoint: https://obs-xxxxxxxx-xxxx-xxxx-xxxx.obs.bfcplatform.vn
          path: /loki/api/v1/push
          auth:
          strategy: "bearer"
          token: "YOUR_LOGS_TOKEN"
          encoding:
          codec: "text"
          labels:
          filename: "gdnsd.log"
          healthcheck:
          enabled: false

Run

  docker run -d -v $PWD/vector.yaml:/etc/vector/vector.yaml:ro  -v /log/gdnsd.log:/log/gdnsd.log -p 8686:8686 --name vector --network host timberio/vector:0.39.0-debian
Fluentbit

Cấu hình

Tạo file config.conf và paste nội dung config sau:

  [INPUT]
      name tail
      path /log/gdnsd.log
      tag  gdnsd.log
  [OUTPUT]
      name  loki
      match *
      host   obs-xxxxxxxx-xxxx-xxxx-xxxx.obs.bfcplatform.vn
      uri     /loki/api/v1/push
      tls     on
      port    443
      bearer_token    YOUR_LOGS_TOKEN
      Labels job=fluentbit

Run

  docker run -d -v $YOUR_FOLDER/:/config -v /log/gdnsd.log:/log/gdnsd.log --name fluentbit --network host cr.fluentbit.io/fluent/fluent-bit --config=/config/fluentbit-config.conf

Bước 3. Xem kết quả trên Grafana dashboard

Truy cập dashboard rồi chọn Explore, nếu chưa biết cách truy cập dashboard bạn có thể tham khảo hướng dẫn này

Chọn loki datasource

Nhập filters rồi click Run query

Kết quả đã thấy logs được push lên loki