一.系統架構

二.組成部分
Loki 的日志堆疊由 3 個組件組成:promtail:用于采集日志、并給每條日志流打標簽,每個節點部署,k8s部署模式下使用daemonset管理,用于存盤采集的日志, 并根據標簽查詢日志流,單節點部署,一般和監控組件部署在同一節點,loki:- Grafana:提供界面,實作日志的可視化查詢,安裝監控組件會默認部署grafana,與監控組件共用grafana,
原始碼地址:https://github.com/grafana/loki
三.promtail日志收集原理
默認情況下,容器日志會存盤在 /var/log/pods 路徑下
$ ls /var/log/pods kube-system_kube-flannel-ds-amd64-9x66j_28e71490-d614-4cd8-9ea7-af23cc7b9bff lab_job-employee-cronjob-1615078800-n2rxh_134ce637-c2a7-47b8-896f-348931125acb kube-system_kube-proxy-lfzmx_90605182-ae56-4085-801e-fc4a83531945 ...
每個檔案夾對應一個 Pod,Pod 下級目錄為容器名,再下級即為容器日志,
$ tree kube-system_kube-flannel-ds-amd64-9x66j_28e71490-d614-4cd8-9ea7-af23cc7b9bff/
kube-system_kube-flannel-ds-amd64-9x66j_28e71490-d614-4cd8-9ea7-af23cc7b9bff/
├── install-cni
│ └── 3.log -> /data/docker/containers/6accaa2d6890df8ca05d1f40aaa9b8da69ea0a00a8e4b07a0949cdc067843e37/6accaa2d6890df8ca05d1f40aaa9b8da69ea0a00a8e4b07a0949cdc067843e37-json.log
└── kube-flannel
├── 2.log -> /data/docker/containers/9e8eea717cc3efd0804900a53244a32286d9e04767f76d9c8a8cc3701c83ece5/9e8eea717cc3efd0804900a53244a32286d9e04767f76d9c8a8cc3701c83ece5-json.log
└── 3.log -> /data/docker/containers/06389981d26cbe60328cd5a46af7b003c8d687d1c411704784aa12d4d82672b8/06389981d26cbe60328cd5a46af7b003c8d687d1c411704784aa12d4d82672b8-json.log
日志檔案 kube-flannel/3.log 只是對 /data/docker/containers/***/***.log 檔案的軟鏈接,本質上還是 Docker 維護日志, k8s 對其參考而已,
日志是 JSON 格式的,每一行包含如下三個資訊:
log:日志內容stream:stderr(例外輸出)、stdout(正常輸出)time:時間
注意:/data/docker/containers 并非 docker 默認的資料存盤路徑,是通過 /etc/docker/daemon.json 配置的,
注意:上述提到 /var/log/pods 下的日志只是對 /data/docker/containers 下日志的軟鏈接,所以 Promtail 部署時需要同時掛載這兩個目錄,

四.Loki
Loki是一個水平可擴展,高可用,多租戶的日志聚合系統,Loki只會對日志元資料標簽進行索引,而不會對原始的日志資料進行全文檢索,收集的日志資料本身會被壓縮,并以chunks(塊)的形式存放在存盤中,
4.1.組件

1.Distributor(分配器)
日志寫入第一站,一旦分配器接收到日志資料,他就會把日志分成若干批次,并將它們并行的傳送到采集器,
分配器采用gRPC與采集器進行通信,它們是無狀態的,所以我們需要根據實際狀況進行擴縮容,
2.Ingester(采集器)
采集器負責將日志資料寫入存盤,
3.Querier(查詢器)
查詢服務器,負載處理LOGQL查詢陳述句,
4.Chunk(塊)存盤
塊存盤是Loki的長期資料存盤,旨在支持互動式查詢和持續寫入,無需后臺維護任務,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/553597.html
標籤:其他
下一篇:返回列表
