Chuyển đến nội dung chính

第 33 課:LOKI — 集中式日誌記錄

部署 Grafana Loki 以實現集中式日誌聚合、Promtail/Alloy 日誌收集、LogQL 查詢、結構化日誌記錄、基於日誌的警報和保留策略。

🔒 DevSecOps — 第 33 課 第 33 課:LOKI — 集中式日誌記錄

使用 Kubernetes HA 在本地部署微服務

第 8 部分:可觀察性 — Prometheus、Loki、Tempo

xdev.asia

🎯 課程目標__HTMLTAG_66___
  • ✅ Grafana Loki 架構(與 ELK 堆疊相比)
  • ✅ 在 K8s 上部署 Loki 分散式模式
  • ✅ Promtail/Grafana 合金日誌集合
  • ✅ LogQL 查詢語言__HTMLTAG_75___
  • ✅ 結構化日誌記錄最佳實務
  • ✅ 基於日誌的警報

第 1 部分:LOKI 架構

程式碼區塊_0

___HTMLTAG_87__HTMLTAG_88___功能___HTMLTAG_89__HTMLTAG_90___Loki___HTMLTAG_91__HTMLTAG_92___ELK (Elasticsearch)___HTMLTAG_93__HTMLTAG_94___ ___HTMLTAG_97__HTMLTAG_98___索引___HTMLTAG_99__HTMLTAG_100___僅標籤(元資料)___HTMLTAG_101__HTMLTAG_102___全文索引(所有內容)___HTMLTAG_103__HTMLTAG_104___ ___HTMLTAG_105__HTMLTAG_106___儲存成本___HTMLTAG_107__HTMLTAG_108___低(壓縮區塊)___HTMLTAG_109__HTMLTAG_110___高(倒排索引)___HTMLTAG_111__HTMLTAG_112____HTMLTAG_112____HTMLTAG_112__ ___HTMLTAG_113__HTMLTAG_114___資源使用___HTMLTAG_115__HTMLTAG_116___低___HTMLTAG_117__HTMLTAG_118___高(RAM、CPU)___HTMLTAG_119__HTMLTAG_120___ ___HTMLTAG_121__HTMLTAG_122___查詢速度___HTMLTAG_123__HTMLTAG_124___全文較慢____HTMLTAG_125__HTMLTAG_126___全文快速____HTMLTAG_127__HTMLTAG_128___ ___HTMLTAG_129__HTMLTAG_130___最適合___HTMLTAG_131__HTMLTAG_132___K8s日誌,經濟高效___HTMLTAG_133__HTMLTAG_134___複雜日誌分析____HTMLTAG_135__HTMLTAG_136___ ___HTMLTAG_137__HTMLTAG_138___查詢語言___HTMLTAG_139__HTMLTAG_140___LogQL___HTMLTAG_141__HTMLTAG_142___KQL/Lucene___HTMLTAG_143__HTMLTAG_144___ ___HTMLTAG_145__HTMLTAG_146___整合___HTMLTAG_147__HTMLTAG_148___Grafana 原生___HTMLTAG_149__HTMLTAG_150___Kibana___HTMLTAG_151__HTMLTAG_152___

第 2 部分:部署 LOKI

程式碼區塊_1

程式碼區塊_2


第 3 部分:使用 PROMTAIL 進行日誌收集

程式碼區塊_3

程式碼區塊_4


第 4 部分:LOGQL 查詢

程式碼區塊_5


第 5 部分:結構化日誌記錄最佳實務

程式碼區塊_6

程式碼區塊_7


第 6 部分:基於日誌的警報

程式碼區塊_8


💡 重點

    ___HTMLTAG_175__HTMLTAG_176___Loki:僅標籤 → 經濟高效,Grafana 原生 ___HTMLTAG_179__HTMLTAG_180___Promtail:DaemonSet,自動收集K8s pod日誌 ___HTMLTAG_183__HTMLTAG_184___LogQL:強大的查詢語言,日誌到指標的轉換 ___HTMLTAG_187__HTMLTAG_188___結構化日誌:JSON格式,包含trace_id/span_id ___HTMLTAG_191__HTMLTAG_192___管道階段:解析、標籤、時間戳提取 ___HTMLTAG_195__HTMLTAG_196___保留:為每個租戶配置,預設 30 天

🎯 練習__HTMLTAG_202___

練習 1:Loki 設定

  • 部署 Loki + Promtail
  • 在 Grafana 中加入 Loki 資料來源
  • 編寫 LogQL 查詢以尋找錯誤__HTMLTAG_211___

練習 2:結構化日誌記錄

  • 在範例應用程式中實作 JSON 日誌記錄
  • 設定 Promtail 管道以提取等級、trace_id
  • 建立基於日誌的警報規則

📚 下一篇文章

在 第 34 課:節奏 — 分散式追蹤中,我們將為微服務設定分散式追蹤。