ELK 替代方案:從日誌搜尋走向完整的故障調查
比較 ELK、Elastic Observability、Loki、雲端日誌與觀測雲,從索引、保留、維護責任與可復原的遷移確定選擇。
日誌平台最吃力的時刻,往往不是寫入量達到某個數字,而是值班工程師已經找到了錯誤日誌,卻仍要去另外幾個系統確認請求路徑、用戶影響和最近的發佈。如果與此同時,團隊還在處理分片、mapping 衝突、索引生命週期和叢集升級,評估 ELK 替代方案就有了明確的理由。
這裏比較的是以 Elasticsearch、Logstash 和 Kibana 為基礎的自建日誌系統。Elastic Observability 是更完整的產品,已經覆蓋 APM、基礎設施、RUM 等能力,不能把它簡單歸為“只能查日誌”。本文由觀測雲編輯部撰寫,觀測雲也是候選方案之一;判斷依據是官方文件和工程上的取捨,沒有進行生產規模性能對照測試。
先決定需要換掉哪一層
| 路線 | 適合保留的資產 | 需要重新評估的工作 |
|---|---|---|
| 繼續維護 ELK/EFK | 現有查詢、欄位模型和 Elasticsearch 經驗 | 分片、容量、生命週期、升級、備份與恢復責任 |
| Elastic Observability | Elastic 查詢與運維習慣 | 產品版本、部署方式、APM 接入、保留及計費範圍 |
| Loki + Grafana | Grafana 使用習慣、按服務或叢集定位日誌的方式 | 標籤設計、LogQL 查詢、長時間範圍掃描和關聯資料源 |
| SLS / CLS / LTS | 雲資源日誌及已有采購渠道 | 外部資料接入、跨雲網絡成本、身份關聯與查詢方式 |
| 基於 ClickHouse 自建日誌平台 | SQL 分析與資料工程能力 | 採集、表結構、租戶隔離、權限、告警與排障界面 |
| 觀測雲 | 可繼續使用的採集端和業務標識 | 欄位對應、日誌與鏈路關聯、權限、費用及遷移驗證 |
如果只是 Elasticsearch 叢集維護過重,託管服務可能已經解決主要問題。如果查詢模型不適合你的日誌,才需要比較不同儲存與索引方式。如果困難集中在跨信號排障,評估對象應包括完整的調查路徑,而不只是日誌搜索框。
索引方式會改變成本,也會改變查詢習慣
Elasticsearch 的分片、副本、欄位對應和生命週期策略都需要隨着資料量與查詢負載調整。欄位衝突會影響寫入或分析;索引和分片增長會增加維護工作;寫入高峯與歷史查詢爭用資源時,單純擴大機器也未必解決問題。選型時應保留一組實際使用的查詢,同時測試最近十五分鐘與較長的歷史範圍。
Loki 主要索引日誌流的標籤,不為每條日誌正文建立傳統全文倒排索引。這不代表它不能搜索正文:LogQL 可以過濾和解析日誌內容。區別在於先用標籤縮小流的範圍,再處理相應日誌。服務、環境、叢集等穩定標籤有助於定位;把每個請求 ID 都當作流標籤,反而會製造高基數問題。是否節省成本,要用自己的流數量、掃描範圍和查詢併發驗證。
ClickHouse 可以作為日誌分析的儲存與查詢底座,但資料庫本身不等於完整日誌產品。選擇自建路線,還要計算採集與解析、租戶隔離、權限、告警、界面、升級和故障恢復的投入。沒有相同工作負載下的測試,不能僅憑資料庫名稱承諾更快或更便宜。
日誌能集中,不等於排障線索已經關聯
一次故障通常需要回答:哪個服務先異常,慢請求停在哪個依賴,哪些用戶受影響,以及發佈、設定變化或 Pod 重啓是否同時發生。日誌多了並不會自動回答這些問題。服務名、環境、時間戳和 trace ID 的一致性,往往比增加一個儀表板更重要。
阿里雲 SLS、騰訊雲 CLS 等服務也支持其他雲和 IDC 的日誌接入,不能把雲廠商背景等同於“只能看本雲”。需要驗證的是具體的採集路徑、網絡出口費用、欄位對應,以及日誌能否在你購買和設定的產品組合中關聯到鏈路與用戶體驗。多雲團隊尤其應實際走一遍從告警到日誌、trace 和影響面的調查流程。
保留策略應先於遷移清單
把所有日誌都改成短保留,可能降低眼前賬單,也可能丟掉下次故障或審計需要的上下文。先區分交易、錯誤、審計與調試日誌,分別確定採集範圍、檢索時效、保留週期和刪除要求;再決定哪些欄位在採集側過濾,哪些資料保留為可檢索熱資料,哪些進入歸檔。
成本比較至少需要同一時間範圍、相同攝取量和事件數、相同保留、查詢併發與恢復要求。還要計入索引或掃描、歸檔取回、網絡出口、支持和並行運行成本。按業務線分攤用量,有助於讓產生資料的團隊參與治理。日誌與 trace 關聯可以幫助縮小調查範圍,但不會自動降低已攝取資料的費用。
把觀測雲放進同一條排障路徑評估
如果目標是把關鍵日誌與指標、鏈路、RUM、Kubernetes 和事件放到一起,可以從觀測雲日誌接入開始,選擇一條已有故障記錄的服務。先驗證欄位、服務身份、時間和 trace ID 是否對應,再判斷關聯查詢是否減少了來回切換。採集成功只是第一步,不能據此認定歷史索引、查詢語法、儀表板或告警會自動遷移。
需要 AI 輔助時,先區分監測 Agent 應用與使用 Obsy Agent Teams 處理調查任務。後者的任務文件描述了任務產出、審批請求等流程;實際可呼叫工具、資料範圍和操作權限仍取決於設定。試用應從只讀調查開始,讓工程師核對引用的日誌、時間範圍和假設。不能把建議當作已確認根因,也不能把「停止任務」視為外部變更已經復原。
用一條服務驗證遷移邊界
先保留現有 ELK,讓一個有代表性的服務在受控環境中並行發送關鍵日誌,並按需要接入指標和 trace。驗證採集端是否支持所選並行方式,檢查隊列、失敗重試、重複事件、脱敏與額外費用;不要假設增加目的地不會影響應用或舊管道。
接着選擇過去發生過的三類故障,使用獲准保留或脱敏後的資料事後檢討:相同的錯誤能否查到,能否關聯到請求和用戶影響,舊規則與新規則是否得到一致解釋。如果評估 Agent Teams,也要記錄它用了哪些證據、哪些建議被人工否決,而不是隻展示一次看起來正確的回答。兩週可以作為第一次事後檢討節點,不是保證完成遷移的工期。
最後再決定擴大範圍。核心交易、錯誤、影響 SLO 的服務日誌和需要關聯 trace 的日誌通常值得優先驗證;低價值調試日誌可以另定過濾、短保留或歸檔策略。保留歷史索引並不妨礙新系統承接部分排障。切換前寫清停止條件、舊採集設定的恢復辦法、歷史資料訪問方式以及由誰確認結果。
**選擇應落在實際瓶頸上:**查詢和運維體系已經成熟,就先改善現有 ELK;希望延續 Elastic 體系並補充更多信號,就評估 Elastic Observability;已有 Grafana 與標籤化日誌習慣,可以重點驗證 Loki;如果主要問題是多個信號分散,則把觀測雲等完整平台放入同一輪服務級驗證。哪條路線合適,要由調查路徑、資料要求和總成本共同決定。
參考資料
技術核驗日期:2026-10-27。本文的遷移步驟是評估建議,不是已執行的測試記錄。