簡單總結(jié)下日志平臺的核心需求,至少有以下2點(diǎn):
1、數(shù)據(jù)分析
數(shù)據(jù)分析又分成2類,一類是預(yù)先定義好的分析邏輯,另一類是即時的,突發(fā)奇想的分析adhoc
預(yù)先定義好的分析邏輯,可以在流計算系統(tǒng)就對日志流進(jìn)行解析,轉(zhuǎn)換,甚至聚合,結(jié)果可以丟到olap分析引擎,也可以丟到時序數(shù)據(jù)庫。這種處理方式是對原始數(shù)據(jù)的有目的的粗加工,最終存儲的數(shù)據(jù)是丟失了大量的信息量的
日志的adhoc分析,需要存儲原始數(shù)據(jù),不允許丟失信息量,同時能夠?qū)崟r對原始數(shù)據(jù)進(jìn)行解析,統(tǒng)計和分析。平臺必須支持強(qiáng)大的日志解析和統(tǒng)計計算能力,并且要有盡可能低的延時,一次統(tǒng)計和查詢最好在秒級別或者分鐘級別,時間越長,體驗(yàn)越差。
2、日志的搜索
故障定位等場景通常需要關(guān)鍵詞搜索,日志平臺要提供強(qiáng)大的搜索能力,不光能夠搜索到關(guān)鍵字,還能還原日志的上下文,當(dāng)然livetail可以算是日志搜索一種特殊情況,即實(shí)時全文自動更新。搜索對延時要求也很高,不加索引,全局暴力掃描的方式的搜索不能滿足要求。
日志盡管也屬于時序數(shù)據(jù)的一種,但是大多數(shù)時序數(shù)據(jù)庫的數(shù)據(jù)模型并不適合存儲日志,日志平臺的存儲必須同時滿足上面的2點(diǎn)需求,才算是一個合格的日志平臺。
日志既要保存明細(xì),提供搜索,還要有強(qiáng)大的分析統(tǒng)計能力,正因?yàn)檫@兩點(diǎn),業(yè)內(nèi)才選擇elasticsearch作為存儲引擎,因?yàn)殚_源領(lǐng)域似乎只有es, solr 兼具這兩種能力
但是es和solr做日志存儲和分析成本太高了,甚至可以說非常昂貴.