文章目錄
Grafana Loki 搭配 Fluent Bit
之前筆記 使用 Docker Compose 啟動 Grafana Loki 紀錄如何使用 docker compose 快速啟動 Grafana Loki 環境,其中使用的 log 蒐集器是 Grafana 預設的 Promtail,不過 Promtail 功能上只專注在把 log 打到 Loki 不擔負清洗的工作,所以還是得讓 Fluent Bit 上場
基本環境說明
- macOS Ventura 13.4
- OrbStack 0.15.0(2284)
container images
- grafana/loki:2.8.0
- grafana/grafana:10.0.3
- fluent/fluent-bit:2.1.8
fluent/fluent-bit:2.1.8-debug
- debug 版包含 shell 跟工具可以除錯
測試 log
2023-08-15 09:00:38.192 [188][ERR][Yowko.DomainService.Test.Application.Utilities.ExceptionInterceptor]UserId:TW001|Name:Yowko|DepartmentId:D01 2023-08-15 09:02:38.192 [198][ERR][Yowko.DomainService.Test.Application.Utilities.ExceptionInterceptor]UserId:TW002|Name:Tsai|DepartmentId:D01
設定方式
Loki config:
loki-config.yaml
這個內容與之前筆記 使用 Docker Compose 啟動 Grafana Loki 相同
Fluent Bit 設定
Parser config:
parser 相關設定需要額外放在其他檔案,不允許放在 fluent bit 主要 config 檔案中
- 可以先使用 Rubular 測試 Fluent Bit 用的 regex 是否正確
如果 log 時區不是 UTC ,需要額外指定
Time_Offset
錯誤訊息
[2023/08/15 01:25:23] [error] [output:loki:loki.1] loki:3100, HTTP status=400 Not retrying. entry for stream '{department_id="D01", log_level="ERR", name="Tsai", sender="Yowko.DomainService.Test.Application.Utilities.ExceptionInterceptor", user_id="TW002"}' has timestamp too new: 2023-08-15T09:02:38Z
錯誤截圖
Fluent Bit config:
docker compose:
docker-compose-fluentbit.yml
大致內容與之前筆記 使用 Docker Compose 啟動 Grafana Loki 差不別,就是把 Promtail 換成 Fluent Bit
實際效果
心得
GrafanaLabs 官網上的文件 Fluent Bit 使用 grafana/fluent-bit-plugin-loki:latest
但上次更新時間已是兩年前,除此之外也只有 amd64 的版本, arm 版本需要使用其他 tag,而 Fluent Bit: Official Manual:Loki 可以直接使用官方 images:fluent/fluent-bit
不用額外安裝 output 的 plugin
除此之外,GrafanaLabs 官網上的文件 Fluent Bit 用的參數也是舊的,新版並不相容
參考資訊
文章作者 Yowko Tsai
上次更新 2023-08-15
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。