新版日誌聚類

更新時間:
Copy as MD

當業務出現故障或版本發布後,營運和開發人員面臨著從海量、無序的日誌中快速發現異常模式的挑戰。傳統的關鍵詞搜尋效率低下,難以洞察全域變化。Log Service的新版日誌聚類功能,通過智能演算法自動將相似的日誌彙總為結構化的日誌模板,並分析其中的變數。它能協助您在無需編寫複雜查詢的情況下,迅速掌握日誌全貌,識別新增異常、定位問題根因,尤其適用於故障排查、版本迴歸測試和安全審計等情境。

功能概述

新版日誌聚類提供以下核心能力:

  • 記錄模式提取:從海量日誌中自動探索日誌類別,提取每個類別的日誌模板。

  • 變數分布分析:支援查看日誌模板中變數部分的分布情況。

  • 分組聚類:支援按指定欄位對日誌進行分組後聚類,適用於多模組日誌的分析。

  • 對比分析:支援比較不同時間段的記錄模式變化,快速發現異常。

  • 正則反查:提供日誌模板的Regex,支援反查原始日誌。

核心概念

日誌聚類通過以下概念將非結構化日誌轉化為洞察:

  • 日誌類別:具有相似格式的日誌屬於同一個日誌類別,不同日誌格式的日誌屬於不同的日誌類別。

  • 日誌模板:從具有相似格式的日誌中提取出的共同模式。模板由常量和變數組成。

  • 日誌變數:同一日誌類別中日誌內容的動態變化部分,通常是日誌輸出語句中記錄的運行時資訊。在模板中以高亮形式顯示。

  • 日誌常量:日誌模板中除變數部分外的全部內容。同一日誌類別中的所有日誌常量部分相同。

前提條件

在使用本功能前,請確保滿足以下條件:

  • 已建立 Standard LogStore

  • 已採集日誌

  • 已配置索引

    說明

    新版日誌聚類提供對已開啟索引的文本類型欄位的聚類能力。在欄位索引的基礎上Realtime Compute日誌模板,因此除日誌欄位索引外,不會產生額外的索引流量

執行日誌群集

本節將引導您完成一次完整的日誌群集,包括基礎聚類、分組聚類和對比分析。

步驟一:進入日誌聚類頁面

  1. 登入Log Service控制台

  2. 在 Project 列表地區,單擊目標 Project。

  3. 在左側導覽列中,選擇image日誌存儲,單擊目標 LogStore名稱前的image展開下拉式功能表。

  4. 在下拉式功能表中,單擊image查詢分析日誌。

  5. 在查詢分析日誌頁面,單擊日誌聚類 > 新版即時聚類

步驟二:配置聚類參數並執行分析

在聚類頁面,您需要配置以下參數以啟動分析:

  1. 設定分析範圍

    • 時間範圍(可選):選擇您要分析的日誌所在的時間段。

    • 查詢語句(可選):輸入查詢語句以過濾日誌。目的是縮小分析範圍,排除無關日誌(如* and not level:INFO),可以顯著提升群集的精度和效率。

  2. 選擇聚類目標

    • 聚類欄位(必選):選擇要進行群集的文字欄位。系統會根據欄位內容推薦最適合聚類的欄位。僅支援選擇一個欄位。

  3. (可選)分組聚類與對比分析

    • 彙總欄位(可選):選擇一個或多個欄位(需已配置索引且開啟統計)對日誌進行預分組。當日誌中包含多個模組(如不同service_name)時,通過分組可以實現對每個模組的獨立聚類,避免不同模組的相似日誌被錯誤歸類。

      • 使用情境:

        • 不同模組的日誌差異較大,需分別群集。

        • 需要按記錄層級、服務名稱等維度分組查看聚類結果。

      • 彙總欄位說明:

        • 用於預分組的維度欄位,在聚類前先按這些欄位進行彙總。

        • 建議欄位包括:日誌等級、服務、模組、環境等。

        • 支援選擇多個彙總欄位進行組合分組(不超過3個)。

        • 通過預彙總可以提高聚類精度,避免不同維度日誌被錯誤歸類。

        • 建議選擇取值相對有限且具有業務意義的欄位作為彙總維度。

      • 限制:最多支援選擇3個彙總欄位。

    • 對比時間(可選):選擇一個用於對比的時間段。通過與歷史資料對比,快速發現版本發布或故障期間“新出現”、“已消失”或“數量劇增/劇減”的記錄模式。

      • 使用情境:

        • 版本發布前後的日誌對比分析。

        • 故障時間段與正常時間段的對比。

        • 周期性對比(如今日vs昨日同時段、本周vs上周同時段)。

        • 效能最佳化前後的效果評估。

      • 配置方式:

        • 時間位移:相對目前時間範圍向前或向後位移。

        • 自訂時間:手動選擇對比組的起止時間。

      • 配置建議:

        • 建議選擇相同時間長度的時間段進行對比,確保對比結果的可比性,不建議選擇重疊時間區間進行對比。

        • 對於周期性業務,推薦使用同比對比(如昨日同時段、上周同時段)。

        • 可結合彙總欄位進行分層對比,如按服務維度分別對比各服務的日誌變化。

配置完成後,系統將自動觸發即時群集。

步驟三:解讀聚類結果

分析完成後,結果將以列表形式展示,每一行代表一個日誌模板。

  • 聚類模式:展示了從日誌中提取的模式,其中的變數部分會高亮顯示。

  • 數量:顯示匹配到該模板的日誌總數。

  • 日誌分布:以長條圖形式展示該模板下的日誌在不同時間點的數量分布,便於觀察趨勢。

  • 分組資訊:如果您配置了彙總欄位,此列會顯示該模板所屬的分組。

說明
  • 聚類演算法會採樣一批具有代表性的日誌進行分析。如果時間視窗中的日誌量過大且日誌格式複雜,採樣的日誌可能無法覆蓋全部日誌類別。

  • 可通過配置查詢語句過濾不關心的日誌,提高聚類效果。

步驟四:下鑽分析變數分布

當您發現一個可疑的日誌模板(例如,一個錯誤記錄檔模板數量激增)後,分析其內部變數的分布是定位根因的關鍵步驟。

  1. 在聚類結果清單中,單擊聚類模式列中高亮顯示的變數部分。

  2. 在彈出的面板中,查看該變數的分布情況:

    • 枚舉類型:顯示變數值的 Top N 取值及其出現次數。例如,查看error_code變數的分布,快速定位哪種錯誤碼最多。

    • 數實值型別:顯示變數的數值範圍分布。

  3. 如果您配置了對比時間,面板會同時展示目前時間段(實驗組,深色)和對比時間段(對比組,淺色)的變數分布,便於您快速識別變化:

    • 深色柱狀圖:目前時間範圍(實驗組)的日誌數量。

    • 淺色柱狀圖:對比時間範圍(對比組)的日誌數量。

    通過對比,可快速發現:

    • 新出現的記錄模式(實驗組有、對比組無)。

    • 消失的記錄模式(實驗組無、對比組有)。

    • 數量變化顯著的記錄模式。

步驟五:反查原始日誌

在定位到具體的日誌模板後,您可能需要查看完整的原始日誌以擷取更多上下文資訊。

  1. 在聚類結果清單中,單擊目標日誌模板所在行,進入模板詳情頁面。

  2. 日誌範例頁簽下,可查看該模板對應的部分原始日誌(最多顯示50條)。

  3. 如需查看所有匹配該模板的日誌,請執行以下操作:

    1. 單擊右上方的顯示解析規則,擷取該模板對應的Regex。

    2. 複製該Regex。

    3. 前往查詢分析頁面,使用 regexp_like 運算元執行查詢。樣本:

    * | SELECT * FROM log WHERE regexp_like(Content, 'Regex')

最佳實務

快速定位異常日誌

  1. 使用查詢語句過濾正常日誌。例如:* and not LEVEL: INFO

  2. 查看剩餘日誌的聚類結果,關注數量異常或新出現的記錄模式。

  3. 單擊可疑模板查看日誌範例和變數分布,進一步分析。

版本發布對比

  1. 將目前時間範圍設定為發布後的時間段。

  2. 配置對比時間為發布前的時間段。

  3. 查看對比結果,關注新出現或消失的記錄模式。

  4. 檢查變數分布變化,判斷是否存在異常。

分模組分析

  1. 配置彙總欄位為模組識別欄位(如 ComponentServiceName)。

  2. 查看各模組的聚類結果,快速定位問題模組。

新舊版本日誌聚類對比與選型建議

為協助您做出正確的技術選型,下表對比了新版與舊版日誌聚類的核心差異。

特性

新版日誌聚類

舊版日誌聚類

索引流量

無額外索引流量(僅依賴欄位索引)

會產生額外索引流量

處理效率

Realtime Compute,巨量資料量時採樣分析

處理效率較高,適合巨量資料量

演算法準確率

使用更高準確度的演算法

演算法準確率相對較低

變數分布

支援記錄模式中的變數分布分析

不支援

原始日誌反查

通過 regexp_like 運算元反查

原生支援直接反查

多欄位聚類

僅支援單欄位聚類

支援多欄位同時聚類

分組聚類

支援

不支援

儀錶盤整合

暫不支援

支援

聚類精度調節

不支援

支援

選型結論

  • 新版日誌聚類:適用於日誌量相對較小或經過過濾後的日誌,需要精細化分析(變數分布、對比分析)的情境。

  • 舊版日誌聚類:適用于海量日誌的快速聚類,需要在儀錶盤中展示聚類結果的情境。

常見問題

為什麼聚類結果為空白?

可能原因及解決方案:

  • 所選欄位無資料:檢查聚類欄位是否有資料,或調整時間範圍。

  • 查詢語句過濾了所有日誌:檢查查詢語句是否正確。

  • 欄位未開啟索引:確保聚類欄位已配置索引。

日誌模板中的變數識別不準確怎麼辦?

新版日誌聚類使用智能演算法自動識別變數。如果識別不準確,可能是由於:

  • 日誌格式不規範,常量部分和變數部分區分不明顯。

  • 日誌樣本量不足,建議擴大時間範圍或減少過濾條件。

如何查看某個日誌類別的全部日誌?

  1. 進入日誌模板詳情頁面。

  2. 單擊顯示解析規則,複製Regex。

  3. 在日誌查詢頁面,使用 regexp_like 運算元過濾:

* | SELECT * FROM log WHERE regexp_like(Content, '複製的Regex')

對比分析時,為什麼部分記錄模式只在一個時間段出現?

這通常表示:

  • 實驗組專屬:可能是新出現的日誌,需關注是否為異常。

  • 對比組專屬:可能是已修複的問題或功能變更導致的日誌消失。

建議結合業務上下文分析,判斷是否需要進一步排查。