陳 軍
(北京優特捷信息技術有限公司 北京 100102)
互聯網和云計算的普及,讓IT 系統每天產生的日志量暴增.日志是一種帶時間戳的時間序列文本數據,由IT 系統生成,可能每秒鐘產生數百萬條,每天達到PB 級,具有數據量大、產生速度快的特點,而日志里往往包含重要的系統和應用信息,存儲、分析這些日志屬于準實時大數據(Fast Big Data).如何高效存儲、快速分析這些日志,成為業界的挑戰.
產業界通常采用準實時搜索引擎來存儲、分析日志這種時間序列文本數據,對日志建立倒排索引,方便檢索.日志是非結構化或半結構化文本數據,在對其進行統計分析時,需要抽取其中的字段進行結構化.產業界通常有兩種解決方案:一種是日志存儲前抽取字段做結構化,稱作寫時建模(Schema On Write),抽取字段會導致存儲膨脹,花費更多的存儲空間,但節省了分析的時間,是以空間換時間;另一種是在日志統計分析時才做結構化,稱作讀時建模(Schema On Read),由于只存儲原始日志及其倒排索引,也被稱作Schemaless,分析時根據需求抽取相關字段,更靈活,節省了存儲空間,但在分析時需要花更多時間,屬于以時間換空間.存儲空間與分析時間的矛盾難以解決,只能根據具體場景做取舍.這兩種方案在存儲時都會對索引文件及日志原文進行壓縮,但壓縮率有限,而且由于日志的產生速度可能非常快,為了不丟日志,需要在很短的時間內把日志處理完并寫入永久存儲介質(SSD 或硬盤),所以對索引構建及壓縮的速度都有要求.這些屬于在線日志的處理方式,對檢索延遲要求高,需要放松對存儲空間的成本要求.
另外還有數據量龐大的日志不需要經常檢索分析,屬于近線日志或離線日志,它們對檢索延遲要求不高,但對存儲空間的成本要求較高.數年前多倫多大學發明了CLP 技術,對索引構建和壓縮做了優化,日志寫入速度快,但壓縮率和檢索性能相對低.
清華大學張廣艷教授團隊對近線日志和離線日志做了進一步探索和研究,通過深入研究日志數據常見的兩種模式:靜態模式和動態模式,及其常用處理算法,提出了對應的解決方案:對離線日志基于靜態模式,提出了LogReducer 方法,實現了較高的壓縮率;對近線日志基于靜態模式和動態模式,提出了LogGrep 方法,實現了較高的壓縮率和較低的檢索延遲.高壓縮率與低檢索延遲的矛盾焦點在于數據的壓縮粒度,張廣艷教授團隊通過挖掘日志數據模式,找到了數據壓縮的最佳粒度.他們還在某國際著名云廠商的真實生產場景對CLP、LogReducer 和LogGrep 做了評測.
計算機系統的高吞吐率和低延遲往往互相矛盾,日志處理系統需要同時兼顧高壓縮率、高壓縮速度、低檢索延遲三個互相矛盾的要求,張廣艷教授團隊在這方面做出了有益的探索,從日志存儲分析全生命周期的視角,同時實現了高壓縮率和低檢索延遲.
現在IT 運維監控進入“可觀測性”(Observability)時代,需要把日志、指標、鏈路追蹤三個維度的數據進行準實時觀測,隨時了解IT 系統的健康度.指標數據與日志數據有一定的相似度,如何讓系統能夠同時存儲日志、指標、鏈路追蹤這三種數據,并能夠準實時分析海量數據,對學術界和產業界又提出了新的挑戰.另外,基于日志的安全態勢感知及用戶與實體行為分析,需要從全量日志中找到安全攻擊的蛛絲馬跡,也要求準實時分析海量日志.希望能有更多團隊在這個領域深入研究,推陳出新.
亮點論文
魏鈞宇,張廣艷,陳軍超.數據模式感知的低成本云日志存儲系統[J].計算機研究與發展,2023,60(11):2442-2452.DOI: 10.7544/issn1000-1239.202330178