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ạn có thể có token bằng cách tạo hoặc reset token.
- Để lấy endpoint cho việc push logs, bạn có thể tham khảo hướng dẫn sau.
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