KnowAgent一站式日志采集平臺
KnowAgent 是滴滴開源的一站式日志采集平臺,基于日志模板構(gòu)建,采集任務動態(tài)管控、數(shù)據(jù)質(zhì)量精確度量。
KnowAgent 源于滴滴多年來在各核心場景沉淀的超大規(guī)模采集引擎集群運維實踐經(jīng)驗。經(jīng)歷過多方考驗,對于大規(guī)模 Agent 日志采集的治理管控,采集任務與 Agent 的可觀測性、健康度巡檢、故障診斷已經(jīng)沉淀出一套完善的解決方案。
1.1 前置申明
1.1.1 Agent 與采集任務管控規(guī)模
? KnowAgent 基于最小依賴、便于體驗,采用 MySQL 存儲 Agent 的 Metrics 與 Error Logs 數(shù)據(jù)。受制于 MySQL 性能瓶頸,在單個采集任務對應一個采集路徑、Metrics 與 Error Logs 數(shù)據(jù)保存周期為一周的情況下,支持 50 個 Agent 與 50 個采集任務的管控。如需要管控更多的 Agent 與采集任務,參見《如何替換Agent的Metrics與Error Logs數(shù)據(jù)存儲引擎以納管更大的Agent集群》。
1.1.2 容器采集
? KnowAgent目前對容器日志采集未實現(xiàn)平臺化支持,未來將提供全面的容器日志采集平臺化支持,參見《KnowAgent一站式日志采集平臺介紹》展望部分。
1.2 快速體驗地址
1.3 用戶體驗地圖
- 我的工作臺
- 運營大盤:展示運營相關(guān)的核心指標數(shù)據(jù)。
- 運維大盤:展示運維相關(guān)的核心指標數(shù)據(jù)。
- 元數(shù)據(jù)中心
- 應用管理:維護應用相關(guān)信息、與
應用-主機關(guān)聯(lián)關(guān)系。 - 接收端管理:維護 Agent 數(shù)據(jù)流、指標流、錯誤日志流的數(shù)據(jù)需要寫入的下游接收端相關(guān)信息。
- 元數(shù)據(jù)管理:維護用戶上傳的元數(shù)據(jù) Excel 文件(元數(shù)據(jù) Excel 文件內(nèi)容含主機與應用信息),并提供元數(shù)據(jù)文件內(nèi)容預覽、元數(shù)據(jù)導入功能。
- 應用管理:維護應用相關(guān)信息、與
- Agent 中心
- Agent 版本管理:維護各個版本的 Agent 安裝包信息。
- Agent 管理:維護主機相關(guān)信息與 Agent 配置、查看 Agent 健康度與故障原因(健康度為黃或紅時顯示故障原因)。Agent 啟動后,將攜帶宿主機信息自動向管理平臺進行注冊,注冊成功后,即可對其進行管理。
- 采集任務管理:維護采集任務相關(guān)信息,查看采集任務健康度與故障原因(健康度為黃或紅時顯示故障原因)。
- 監(jiān)控中心:
- Agent 指標看板:查看 Agent 運行時全景指標(含:系統(tǒng)、進程、與 Agent 自身業(yè)務指標)。
- 采集任務指標看板:用于查看采集任務在各個主機上的運行時全景指標。
- 運維中心
- 指標探查:查看 Agent 與采集任務的運行時全景指標,支持多 Agent、多采集任務進行對比分析、一體化觀測。
1.4 核心優(yōu)勢
一站式日志采集方案
? 高可靠、高性能、具備全方位可觀測性的采集引擎,與面向應用的易管控、易觀測、易治理的管理平臺,大幅降低日志數(shù)據(jù)采集接入成本,大幅提升日志數(shù)據(jù)采集接入效率。
易融入流式計算
? 面向應用的采集任務、高可靠的采集引擎可確保在任意情況下的數(shù)據(jù)完整性、完善的監(jiān)控指標,支撐可靠的采集任務的數(shù)據(jù)完整性校驗,這使得采集任務可作為流式計算的一種可靠的數(shù)據(jù)源,形成整個流式計算鏈路的數(shù)據(jù)完整性閉環(huán)。
生產(chǎn)級特性
? 經(jīng)過長時間在各場景下大規(guī)模采集引擎集群運維沉淀的專家經(jīng)驗,形成了全方位的可觀測性與完善的故障、風險感知與診斷能力,使較少的無需采集引擎先驗知識的普通運維人員亦能輕松運維龐大的采集引擎集群。
高性能
? 優(yōu)異的持續(xù)采集性能,基于jdk11+,處理單行、單文件、無解析場景下發(fā)送日志數(shù)據(jù)至kafka,持續(xù)吞吐量可達100MB/s以上,極限吞吐量可達150MB/s以上,CPU限制單核情況下,持續(xù)吞吐量可達40MB/s以上。
同類對比
| 維度 | Flume | FileBeat | Logi-Agent |
|---|---|---|---|
| 可靠性 | 一般 | 一般 | 高可靠 |
| 采集性能 | Mb級 | 十Mb級 | 百Mb級 |
| 數(shù)據(jù)完整性 | 無法確保數(shù)據(jù)完整性 | 無法確保數(shù)據(jù)完整性 | 可確保數(shù)據(jù)完整性 |
| 采集任務級的租戶隔離 | 無法做到采集任務級的租戶隔離 | 無法做到采集任務級的租戶隔離 | 可做到采集任務級的租戶隔離 |
| 可擴展性 | 良好 | 一般 | 一般 |
| 資源消耗 | 高 | 低 | CPU消耗與FileBeat趨近(大采集量場景下CPU消耗較FileBeat更小),內(nèi)存消耗較FileBeat略大(但在一個數(shù)量級上) |
| 監(jiān)控指標的完善程度 | 較少指標 | 較少指標 | 完善的指標體系 |
| 可觀測性 | 無 | 無 | 具備全方位的可觀測性 |
| 是否容易配置 | 否 | 否 | 是 |
| 大規(guī)模運維復雜度 | 極高 | 極高 | 低 |
1.5 KnowAgent 架構(gòu)
? KnowAgent 是一站式的日志采集平臺,包括兩個組件:
- Agent:是基于 Java 的高性能、支持多租戶隔離的采集引擎,它能在任意情況下(除:待采集數(shù)據(jù)在被采集前被移除,例如:日志文件被歸檔或日志文件滾動速度太快導致)保證采集數(shù)據(jù)的完整性,持續(xù)采集速度可達150MB+/秒。
- Agent Manager:是針對 Agent 的管理平臺。用于管理相關(guān)元數(shù)據(jù)、Agent與采集任務,自動巡檢 Agent 與采集任務的健康度、故障診斷,指標展示。
