新版日誌聚類
當業務出現故障或版本發布後,營運和開發人員面臨著從海量、無序的日誌中快速發現異常模式的挑戰。傳統的關鍵詞搜尋效率低下,難以洞察全域變化。Log Service的新版日誌聚類功能,通過智能演算法自動將相似的日誌彙總為結構化的日誌模板,並分析其中的變數。它能協助您在無需編寫複雜查詢的情況下,迅速掌握日誌全貌,識別新增異常、定位問題根因,尤其適用於故障排查、版本迴歸測試和安全審計等情境。
功能概述
新版日誌聚類提供以下核心能力:
-
記錄模式提取:從海量日誌中自動探索日誌類別,提取每個類別的日誌模板。
-
變數分布分析:支援查看日誌模板中變數部分的分布情況。
-
分組聚類:支援按指定欄位對日誌進行分組後聚類,適用於多模組日誌的分析。
-
對比分析:支援比較不同時間段的記錄模式變化,快速發現異常。
-
正則反查:提供日誌模板的Regex,支援反查原始日誌。
核心概念
日誌聚類通過以下概念將非結構化日誌轉化為洞察:
-
日誌類別:具有相似格式的日誌屬於同一個日誌類別,不同日誌格式的日誌屬於不同的日誌類別。
-
日誌模板:從具有相似格式的日誌中提取出的共同模式。模板由常量和變數組成。
-
日誌變數:同一日誌類別中日誌內容的動態變化部分,通常是日誌輸出語句中記錄的運行時資訊。在模板中以高亮形式顯示。
-
日誌常量:日誌模板中除變數部分外的全部內容。同一日誌類別中的所有日誌常量部分相同。
前提條件
在使用本功能前,請確保滿足以下條件:
-
說明
新版日誌聚類提供對已開啟索引的文本類型欄位的聚類能力。在欄位索引的基礎上Realtime Compute日誌模板,因此除日誌欄位索引外,不會產生額外的索引流量。
執行日誌群集
本節將引導您完成一次完整的日誌群集,包括基礎聚類、分組聚類和對比分析。
步驟一:進入日誌聚類頁面
-
在 Project 列表地區,單擊目標 Project。
-
在左側導覽列中,選擇
日誌存儲,單擊目標 LogStore名稱前的
展開下拉式功能表。 -
在下拉式功能表中,單擊
查詢分析日誌。 -
在查詢分析日誌頁面,單擊 。
步驟二:配置聚類參數並執行分析
在聚類頁面,您需要配置以下參數以啟動分析:
-
設定分析範圍
-
時間範圍(可選):選擇您要分析的日誌所在的時間段。
-
查詢語句(可選):輸入查詢語句以過濾日誌。目的是縮小分析範圍,排除無關日誌(如
* and not level:INFO),可以顯著提升群集的精度和效率。
-
-
選擇聚類目標
-
聚類欄位(必選):選擇要進行群集的文字欄位。系統會根據欄位內容推薦最適合聚類的欄位。僅支援選擇一個欄位。
-
-
(可選)分組聚類與對比分析
-
彙總欄位(可選):選擇一個或多個欄位(需已配置索引且開啟統計)對日誌進行預分組。當日誌中包含多個模組(如不同
service_name)時,通過分組可以實現對每個模組的獨立聚類,避免不同模組的相似日誌被錯誤歸類。-
使用情境:
-
不同模組的日誌差異較大,需分別群集。
-
需要按記錄層級、服務名稱等維度分組查看聚類結果。
-
-
彙總欄位說明:
-
用於預分組的維度欄位,在聚類前先按這些欄位進行彙總。
-
建議欄位包括:日誌等級、服務、模組、環境等。
-
支援選擇多個彙總欄位進行組合分組(不超過3個)。
-
通過預彙總可以提高聚類精度,避免不同維度日誌被錯誤歸類。
-
建議選擇取值相對有限且具有業務意義的欄位作為彙總維度。
-
-
限制:最多支援選擇3個彙總欄位。
-
-
對比時間(可選):選擇一個用於對比的時間段。通過與歷史資料對比,快速發現版本發布或故障期間“新出現”、“已消失”或“數量劇增/劇減”的記錄模式。
-
使用情境:
-
版本發布前後的日誌對比分析。
-
故障時間段與正常時間段的對比。
-
周期性對比(如今日vs昨日同時段、本周vs上周同時段)。
-
效能最佳化前後的效果評估。
-
-
配置方式:
-
時間位移:相對目前時間範圍向前或向後位移。
-
自訂時間:手動選擇對比組的起止時間。
-
-
配置建議:
-
建議選擇相同時間長度的時間段進行對比,確保對比結果的可比性,不建議選擇重疊時間區間進行對比。
-
對於周期性業務,推薦使用同比對比(如昨日同時段、上周同時段)。
-
可結合彙總欄位進行分層對比,如按服務維度分別對比各服務的日誌變化。
-
-
-
配置完成後,系統將自動觸發即時群集。
步驟三:解讀聚類結果
分析完成後,結果將以列表形式展示,每一行代表一個日誌模板。
-
聚類模式:展示了從日誌中提取的模式,其中的變數部分會高亮顯示。
-
數量:顯示匹配到該模板的日誌總數。
-
日誌分布:以長條圖形式展示該模板下的日誌在不同時間點的數量分布,便於觀察趨勢。
-
分組資訊:如果您配置了彙總欄位,此列會顯示該模板所屬的分組。
-
聚類演算法會採樣一批具有代表性的日誌進行分析。如果時間視窗中的日誌量過大且日誌格式複雜,採樣的日誌可能無法覆蓋全部日誌類別。
-
可通過配置查詢語句過濾不關心的日誌,提高聚類效果。
步驟四:下鑽分析變數分布
當您發現一個可疑的日誌模板(例如,一個錯誤記錄檔模板數量激增)後,分析其內部變數的分布是定位根因的關鍵步驟。
-
在聚類結果清單中,單擊聚類模式列中高亮顯示的變數部分。
-
在彈出的面板中,查看該變數的分布情況:
-
枚舉類型:顯示變數值的 Top N 取值及其出現次數。例如,查看
error_code變數的分布,快速定位哪種錯誤碼最多。 -
數實值型別:顯示變數的數值範圍分布。
-
-
如果您配置了對比時間,面板會同時展示目前時間段(實驗組,深色)和對比時間段(對比組,淺色)的變數分布,便於您快速識別變化:
-
深色柱狀圖:目前時間範圍(實驗組)的日誌數量。
-
淺色柱狀圖:對比時間範圍(對比組)的日誌數量。
通過對比,可快速發現:
-
新出現的記錄模式(實驗組有、對比組無)。
-
消失的記錄模式(實驗組無、對比組有)。
-
數量變化顯著的記錄模式。
-
步驟五:反查原始日誌
在定位到具體的日誌模板後,您可能需要查看完整的原始日誌以擷取更多上下文資訊。
-
在聚類結果清單中,單擊目標日誌模板所在行,進入模板詳情頁面。
-
在日誌範例頁簽下,可查看該模板對應的部分原始日誌(最多顯示50條)。
-
如需查看所有匹配該模板的日誌,請執行以下操作:
-
單擊右上方的顯示解析規則,擷取該模板對應的Regex。
-
複製該Regex。
-
前往查詢分析頁面,使用
regexp_like運算元執行查詢。樣本:
* | SELECT * FROM log WHERE regexp_like(Content, 'Regex') -
最佳實務
快速定位異常日誌
-
使用查詢語句過濾正常日誌。例如:
* and not LEVEL: INFO。 -
查看剩餘日誌的聚類結果,關注數量異常或新出現的記錄模式。
-
單擊可疑模板查看日誌範例和變數分布,進一步分析。
版本發布對比
-
將目前時間範圍設定為發布後的時間段。
-
配置對比時間為發布前的時間段。
-
查看對比結果,關注新出現或消失的記錄模式。
-
檢查變數分布變化,判斷是否存在異常。
分模組分析
-
配置彙總欄位為模組識別欄位(如
Component、ServiceName)。 -
查看各模組的聚類結果,快速定位問題模組。
新舊版本日誌聚類對比與選型建議
為協助您做出正確的技術選型,下表對比了新版與舊版日誌聚類的核心差異。
|
特性 |
新版日誌聚類 |
舊版日誌聚類 |
|
索引流量 |
無額外索引流量(僅依賴欄位索引) |
會產生額外索引流量 |
|
處理效率 |
Realtime Compute,巨量資料量時採樣分析 |
處理效率較高,適合巨量資料量 |
|
演算法準確率 |
使用更高準確度的演算法 |
演算法準確率相對較低 |
|
變數分布 |
支援記錄模式中的變數分布分析 |
不支援 |
|
原始日誌反查 |
通過 |
原生支援直接反查 |
|
多欄位聚類 |
僅支援單欄位聚類 |
支援多欄位同時聚類 |
|
分組聚類 |
支援 |
不支援 |
|
儀錶盤整合 |
暫不支援 |
支援 |
|
聚類精度調節 |
不支援 |
支援 |
選型結論:
-
新版日誌聚類:適用於日誌量相對較小或經過過濾後的日誌,需要精細化分析(變數分布、對比分析)的情境。
-
舊版日誌聚類:適用于海量日誌的快速聚類,需要在儀錶盤中展示聚類結果的情境。
常見問題
為什麼聚類結果為空白?
可能原因及解決方案:
-
所選欄位無資料:檢查聚類欄位是否有資料,或調整時間範圍。
-
查詢語句過濾了所有日誌:檢查查詢語句是否正確。
-
欄位未開啟索引:確保聚類欄位已配置索引。
日誌模板中的變數識別不準確怎麼辦?
新版日誌聚類使用智能演算法自動識別變數。如果識別不準確,可能是由於:
-
日誌格式不規範,常量部分和變數部分區分不明顯。
-
日誌樣本量不足,建議擴大時間範圍或減少過濾條件。
如何查看某個日誌類別的全部日誌?
-
進入日誌模板詳情頁面。
-
單擊顯示解析規則,複製Regex。
-
在日誌查詢頁面,使用
regexp_like運算元過濾:
* | SELECT * FROM log WHERE regexp_like(Content, '複製的Regex')
對比分析時,為什麼部分記錄模式只在一個時間段出現?
這通常表示:
-
實驗組專屬:可能是新出現的日誌,需關注是否為異常。
-
對比組專屬:可能是已修複的問題或功能變更導致的日誌消失。
建議結合業務上下文分析,判斷是否需要進一步排查。