文章目錄
使用 Docker Compose 啟動 Grafana Loki
過去幾年時間都是透過 Elastic Stack 來處理 log 集中化,從一開始使用 ELK (Elasticsearch, Logstash , Kibana) 到後來使用 EFK (Elasticsearch , Fluentd , Kibana) 到目前的 EFK (Elasticsearch, Fluent Bit , Kibana),其中改變的部份是 log 處理工具:Logstash –> Fluentd –> Fluent Bit,這個改變主要是工具處理的效率與資源的耗用量
最近正在評估團隊下一代產品的 technical stack,所以將 Loki 納入評估的一部份,其中包含三個組件:
- Promtail 負責 log 蒐集並將 log 發送給 Loki,對應 Logstash、fluentd、fluent-bit
- Loki 負責 log 儲存與處理查詢,對應 Elasticsearch
- Grafana 用來查詢與顯示 log,對應 Kibana
基本環境說明
- macOS Ventura 13.4
- OrbStack 0.13.0(1910)
- container images
- grafana/loki:2.8.0
- grafana/promtail:2.8.0
- grafana/grafana:10.0.3
設定方式
Loki config:
loki-config.yaml
Promtail config:
promtail-local-config.yml
docker-compose:
docker-compose.yml
實際使用
我還不知道有沒有其他更便利的方式來查詢 log,先紀錄一下知道的用法供參考
Home –> Explore
選擇
Label browser
如果知道 label filter 該下什麼條件,當然也可以直接輸入
選擇
filename
或是job
的 label 當做條件實際效果
- 時間序列的 log 數量統計
- 每筆 log 內容
心得
- 預設呈現 log 時間以 paring 的時間非 log 實際發生時間
- Promtail 在蒐集 log 時沒有做欄位或是型別處理
- Loki 不像是 Elasticsearch 會針對內容做全文檢索
- 官網上的 Loki dashboard 都要求同時設定 Loki 與 Prometheus
參考資訊
文章作者 Yowko Tsai
上次更新 2023-08-08
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。