需求
公司項目采用微服務的架構,服務很多,每個服務都有自己的日志,分別存放在不同的服務器上。當查找日志時需要分別登錄不同的服務器,有大量的請求的情況下,在日志文件中查找信息十分困難。想要搭建一個日志系統,ELK分布式日志系統對於中小型公司來說開發維護成本太高,經過調研,選擇Loki輕量級日志系統。
Loki簡介
Loki 是一個水平可擴展,高可用性,多租戶日志聚合系統,靈感來自 Prometheus ,其設計非常經濟高效,易於操作。它不索引日志的內容,而是為每個日志流設置一組標簽。
Loki與其他日志聚合系統差別:
- 不對日志進行全文本索引。通過存儲壓縮的,非結構化的日志以及僅索引元數據,Loki更加易於操作且運行成本更低。
- 使用與Prometheus相同的標簽對日志流進行索引和分組,從而使您能夠使用與Prometheus相同的標簽在指標和日志之間無縫切換。
- 特別適合存儲Kubernetes Pod日志。諸如Pod標簽之類的元數據會自動被抓取並建立索引。
- 在Grafana中原生支持(需要Grafana v6.0及以上)。
Loki的日志系統的組件:
- Promtail是代理,負責收集日志並將其發送給Loki。
- Loki是主服務器,負責存儲日志和處理查詢。
- Grafana用於查詢和顯示日志。
搭建步驟
本文采用的搭建方式是分別下載各個組件並安裝。也可以參考官方的文檔進行搭建安裝。
Loki的GitHub地址:https://github.com/grafana/loki
配置文件官網地址:https://grafana.com/docs/loki/latest/installation/local/
Grafana下載官網:https://grafana.com/grafana/download
1.下載安裝啟動Grafana
官網提供了下圖中幾種方式,本文采用的是CentOS系統,yum安裝的方式。
2.下載啟動Loki和Promtail
官方文檔地址:https://grafana.com/docs/loki/latest/installation/local/
因為采用本地安裝的方式,參考文檔(下圖箭頭指向的位置),分別下載執行文件和啟動的配置文件。
下載Promtail:https://github.com/grafana/loki/releases/download/v2.0.0/promtail-linux-amd64.zip
啟動Loki,本文采用的Loki默認配置,服務端口為3100
到收集日志的服務器上配置Promtail並啟動,傳輸文件到收集日志的服務器。
修改配置文件
啟動Promtail
3.添加數據源
訪問web頁面:http://localhost:3000/ 進行登錄(賬號密碼都是admin),點擊下圖中的位置,找到Loki,配置數據源。
填寫數據源的訪問地址並保存。
配置好數據源之后就可以點擊下圖中的位置,進行日志查看了。
日志查看效果如下圖。
希望本文對你有幫助。