【.NET 6+Loki+Grafana】實現輕量級日誌可視化服務功能

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

有關環境:

操作系統:WIN 10

.NET環境:.NET 6

開發環境:VS 2022

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

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

 

 

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

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

 

3、安裝grafana

 

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

 

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

 

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

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

 

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

 

8、進入到解壓後的Loki文件夾下,可以看到Loki的運行程序,此處我們在該目錄下,新家一個配置文件。大概內容,如圖所示。

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

詳情有關Loki配置文件的配置內容,可以參考Loki的官方文檔://grafana.com/docs/loki/latest/configuration/

 

9、啟動Loki服務。建議在控制台下進行啟動,否則可能一閃而過。啟動命令: xxx.exe –config.file=配置文件.yaml

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

 

10、接下來創建一個簡單的測試案例,來試一下Loki日誌的效果。創建一個基於.NET6的webapi服務。

 

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

 

12、然後在appsetrtings配置文件內,添加有關配置信息。此處把日誌分別輸出到控制台和Loki上。並且在Loki上,配置對應日誌標籤,標籤用於做查詢和日誌一些規則匹配使用.

 

13、在啟動項內,添加對serilog日誌的服務註冊,註冊服務的有關配置,通過獲取配置文件自動關聯。

如果需要了解serilog日誌開發的其他方面的教程,可以參考我以前寫的專題文章://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開發感興趣,也可以轉到原文【//www.cnblogs.com/weskynet/p/16759677.html】,到最下方點擊QQ群鏈接,即可申請入群。再次感謝大佬們圍觀~~