【.NET 6+Loki+Grafana】實現輕量級紀錄檔視覺化服務功能

2022-10-07 15:00:08

前言:紀錄檔功能是幾乎所有程式或系統都必備的一個功能。該文章通過使用Loki+Grafana來實現紀錄檔記錄與視覺化查詢,歡迎圍觀。

有關環境:

作業系統:WIN 10

.NET環境:.NET 6

開發環境:VS 2022

1、首先下載Grafana安裝包,此處下載最新的企業版,當前最新的版本是9.1.7。大佬們可以根據自己需要選擇有關版本

下載地址:https://grafana.com/grafana/download?platform=windows

 

 

2、然後下載Loki環境。我選擇的2.6.0版本(最新版是2.6.1,但是還沒有提供Windows安裝版本。大佬們感興趣也可以下載Loki原始碼自行編譯為安裝包)

下載地址:https://github.com/grafana/loki/releases

 

3、安裝grafana

 

4、安裝完畢以後,瀏覽器輸入 http://localhost:3000 即可跳轉到登陸頁面。初始使用者名稱和密碼都是admin

 

5、登陸以後,就可以看到grafana的主頁面了。

 

6、可選部分:下載promtail環境。該組建用於紀錄檔的中轉使用,以下文章內容沒有使用到該組建,可以自行選擇使用。如果要做強大一點的,建議使用。

如果以上三個工具都不好下載,可以進入文章原文:【https://www.cnblogs.com/weskynet/p/16759677.html】,通過公眾號回覆關鍵字進行領取我本地下載好的安裝包等內容,包括該文章的原始碼。

 

7、把下載好的Loki解壓出來備用

 

8、進入到解壓後的Loki資料夾下,可以看到Loki的執行程式,此處我們在該目錄下,新家一個組態檔。大概內容,如圖所示。

備註:retention_period如果是小時數,必須是24小時的整數倍。

詳情有關Loki組態檔的設定內容,可以參考Loki的官方檔案:https://grafana.com/docs/loki/latest/configuration/

 

9、啟動Loki服務。建議在控制檯下進行啟動,否則可能一閃而過。啟動命令: xxx.exe --config.file=組態檔.yaml

如果啟動都沒有問題,也可以掛載到Windows服務。如何掛載到Windows服務(.bat檔案、exe檔案、帶有服務啟動資訊的dll等都可以掛載為Windows服務),可以參考另一篇文章,關於掛載Elasticsearch等到Windows服務的方法:https://www.cnblogs.com/weskynet/p/14961565.html

 

10、接下來建立一個簡單的測試案例,來試一下Loki紀錄檔的效果。建立一個基於.NET6的webapi服務。

 

11、參照serilog包,有關參照的包詳情,可以參考下圖所示。

 

12、然後在appsetrtings組態檔內,新增有關設定資訊。此處把紀錄檔分別輸出到控制檯和Loki上。並且在Loki上,設定對應紀錄檔標籤,標籤用於做查詢和紀錄檔一些規則匹配使用.

 

13、在啟動項內,新增對serilog紀錄檔的服務註冊,註冊服務的有關設定,通過獲取組態檔自動關聯。

如果需要了解serilog紀錄檔開發的其他方面的教學,可以參考我以前寫的專題文章:https://www.cnblogs.com/weskynet/p/14829299.html

 

14、新增一個控制器,用來做紀錄檔寫入測試。建構函式注入紀錄檔服務,並進行輸出三個不同型別的紀錄檔。

 

15、執行程式,在swagger內呼叫一下。存取成功以後,可以看到控制檯已有紀錄檔輸出。

 

16、開啟grafana,左下角選擇 資料來源(Data sources)

 

17、選擇Loki資料來源,並輸入Loki部署的地址(此處是本地地址,如果需要修改部署地址和埠,可以Loki組態檔內修改)。

 

18、設定地址完畢以後,選擇保持和測試,提示成功即可。

 

19、然後轉到Explore選單欄,可以對查詢功能進行預設。區間如圖所示。

 

20、在搜尋欄裡面,選擇標籤資訊。

 

21、然後選擇標籤值資訊

 

22、根據選擇時間區間查詢,即可查到對應紀錄檔。

 

23、也可以通過Json形式進行檢視。

 

24、也可以做關鍵字查詢。具體查詢套路,也可以參考grafana的有關檔案進行了解。

 

25、如果需要文章內配套的安裝包以及原始碼,可以微信掃描下方二維條碼,或者搜尋公眾號【Dotnet Dancer】,在公眾號聊天視窗回覆【Loki】即可獲取以上所有內容:包括grafana安裝包、Loki程式以及對應組態檔、promtail程式以及預設組態檔、LokiDemo原始碼。

 

以上就是該文章的全部內容,如果有幫助,歡迎轉發、點贊和評論。謝謝大家圍觀~如果對.NET開發感興趣,也可以轉到原文【https://www.cnblogs.com/weskynet/p/16759677.html】,到最下方點選QQ群連結,即可申請入群。再次感謝大佬們圍觀~~