前言:紀錄檔功能是幾乎所有程式或系統都必備的一個功能。該文章通過使用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群連結,即可申請入群。再次感謝大佬們圍觀~~