MinBox Logging
是一款分散式、零侵入式的鏈路日誌分析框架,支持 SpringCloud
微服務架構下配置使用,內部封裝了 RestTemplate
、 OpenFeign
兩種方式透傳鏈路信息。
OpenFeign
、 RestTemplate
透傳鏈路信息時日誌列印出即將訪問的請求地址MinBoxLogging
無需使用註解配置採集鏈路日誌,只需要添加 依賴
后簡單配置 MinboxLogginAdmin
的相關 地址
或 服務名稱
即可,每次在收到請求時就會把請求對應的鏈路日誌詳細信息自動上報到 MinBoxLoggingAdmin
進行後續分析、告警通知等。
鏈路日誌
的採集端,也就是具體的業務服務,只需要添加 minbox-logging-client
客戶端進行簡單的配置就可以實現日誌的採集以及日誌的非同步上報。
對外提供 安全的日誌上報
功能,通過整合 SpringSecurity
來完成 BasicAuth
基礎認證,管理端接收到採集端上報的日誌後會自動將日誌存儲到資料庫,考慮到擴展方便,同樣也提供監聽 日誌上報事件(ReportLogEvent)
的方式來自定義存儲日誌到 消息隊列
、 logstash
、 文件
等存儲介質。
MinBoxLoggingAdmin
提供了界面管理應用程序,通過 VUE
前端框架進行編寫界面與管理端的介面通訊,實時展示 鏈路日誌
、 日誌採集服務列表
等信息,可查看每條鏈路日誌的詳細信息(包含:請求頭、請求參數、響應內容、響應頭、狀態碼、異常堆棧信息等)。
可以直接整合 SpringSecurity
來完成 Basic
安全認證。
請求日誌的採集服務在第一次上報時,會自動創建一條服務記錄,服務的唯一性是根據: 服務ID
+ 服務IP
+ 服務端Port
來進行定義。
在每次上報日誌成功後會修改服務的最後一次上報時間。
鏈路日誌是我們訪問的入口服務生成,比如: bff-user
-> user-service
,鏈路日誌產生的位置則是 bff-user
服務,鏈路日誌是介面 請求的入口
也是做出 響應的結束位置
,因此我們可以在頁面上查看介面的請求 參數詳情
、 頭信息
以及 響應的內容
,至於鏈路日誌內的 日誌單元
目前界面還未做展示,可以根據 traceId
鏈路日誌編號自行去資料庫查詢。
每一個請求的鏈路日誌都會包含上圖中的全部欄位,從請求開始 -> 響應結束一條鏈路閉合記錄。
MinBoxLoggingAdminUI
內部提供了 login.html
登錄頁面,可以整合 SpringSecurity
通過配置 loginPageUrl
登錄跳轉地址來使用內置的登錄頁面,當然也可以自定義登錄頁面。
可與 MinBoxLoggingAdmin
共同使用 SpringSecurity
的相同配置提升安全性。
當前版本的文檔,請訪問Wikis
請訪問快速開始的 wikis
文檔來查看並快速接入 MinBoxLogging
,快速接入文檔
MinBoxLogging
使用 Maven
進行構建項目。
源碼拉取需使用 Git
,具體使用方式詳見安裝 Git
源碼採用 JDK1.8
版本進行編寫,請注意修改使用項目的 JDK
版本,JDK 1.8下載地址
需本地安裝 Maven
環境,Maven 下載地址
因 logging-admin-ui
所需 vue-cli-service
命令支持,本地需要安裝 vue-cli
。
git clone git@gitee.com:minbox-projects/minbox-logging.git
mvn install
mvn clean package
MinBoxLogging
內的模塊都已經上傳到 ApacheMavenCenter
中央倉庫,添加對應的依賴到 pom.xml
會自動下載到本地。
MinBoxLogging
歡迎廣大開發者創建 PullRequest
來貢獻代碼,代碼通過審核後會被合併到 master
主分支。
MinBoxLogging
採用 Apache2
開源許可。
[admin
]