type
status
date
slug
summary
tags
category
icon
password

前言

常見的日誌收集架構一般是採用 Elastic Stack 架構,由 Elasticsearch + Logstash + Kibana + Beats 組合而成:
notion image
Elastic Stack 功能強大,可以為每個對象建立全文索引便於查詢與聚合,並且有許多複雜的查詢功能,但是相應的其所需要的在機器資源更多。
然而,有時也許我們只需要簡單的功能,例如針對時間範圍或是針對某個 Host 簡易的查詢 Log 紀錄,這時候使用 ELK 就顯得略為笨重且需要更多的成本,這時候就能選擇 Grafana Loki 作為替代方案。

簡介

Loki 是一個受 Prometheus 啟發的水平可擴展 (horizontally-scalable)、高可用 (highly-available)、多租戶 (multi-tenant) 日誌聚合系統。它的設計非常經濟高效且易於操作。它不索引日誌的內容,而是為每個日誌流建立一組標籤。
Loki is like Prometheus, but for logs:基於多維標籤 (label) 來索引,並且易於操作的系統。
Loki 具有以下特性:
  • 不對日誌進行全文索引。 通過存儲壓縮的非結構化日誌並且僅索引元數據,Loki 的操作更簡單且運行成本更低。
  • 特別適合存儲 Kubernetes Pod 日誌。 Pod 標籤等元數據會自動抓取並建立索引。
  • 使用與 Prometheus 已使用的相同標籤對日誌流進行索引和分組,使您能夠使用與 Prometheus 已使用的相同標籤在指標和日誌之間無縫切換。
  • 受 Grafana 原生支持,避免 Kibana 和 Grafana 來回切換

Loki 架構

notion image
  • Loki:數據庫,相當於 ELK 中的 ElasticSearch角色。
  • Promtail:日誌採集,相當於 ELK 中的 Logstash 角色。
  • Grafana:數據可視化,相當於 ELK 中的 Kibana 角色。

參考