日誌分析的模式發現功能實現(3)
前兩篇,已經分別講過了商業產品老大splunk、開源項目老大ELK、雲服務老大sumologic分別的實現做法。除了他們以外,還有一些其他實現,這次一併講完。
prelert
prelert是一個老牌公司了,原先是基於splunk平台做異常檢測產品(賣點是比splunk的rare、predict、anomalies指令更好),去年被ES收購。到目前為止prelert和ES x-pack的整合工作其實都沒有完全結束。所以講它功能,還是直接看原先的老文檔更清晰。
老版的prelert思路和sumologic非常非常像。
先通過prelertcategorize指令做日誌分類(也就是sumo家的logreduce指令):
這個地方注意到,prelert既沒有提取keyword,也沒有匯聚signature,而是列出同一個模式下的4條樣例日誌給用戶自己看。這個做法可以說比較保守。
此外,多出來兩列,sparkline和sourcetype:
sparkline這個想法還是不錯的。我們可以直接看到單個模式在一段時間內的事件數走勢。對於偶然出現或者暴增暴跌的情況,可以一眼看出來。
sourcetype這個就有趣了,這意味著,做聚類時,首先是基於一個sourcetype做了分桶的。這樣可以減少一些計算量,比較同一個sourcetype內的數據應該相似度比較大,而不同sourcetype相互之間相似度應該較小——但是這有一個前提,sourcetype是按照比較合適的規則進行了設計——這對於完善的商業產品可能問題不大,對於互聯網公司內部業務運維來說,就不那麼容易了。
其次,對具體某一類日誌,可以保存成eventtype(注意到截圖裡生成的過濾語句,有一個len(_raw)<=129,這塊跟splunk計算_punct欄位有類似,splunk計算_punct時就也規定了只算前128個字元):
最後,也可以通過prelertautodetect指令做異常檢測。這時候可以直接對總趨勢做,也可以選擇基於普通欄位做groupby,也可以選擇基於前面生成的prelertcategory做。為了區分異常檢測的縱向時間維度和橫向密度維度,可以用by和over兩個從句來分別制定。效果如下:
不過perlert被http://elastic.co收購以後,以上模式發現功能,只保留了異常檢測的部分。我們只能在異常詳情的列表裡,隱約看到category examples還是那熟悉的4行日誌樣例了:
oracle
oracle公有雲上,提供了日誌分析產品,叫OMC LogAnalytics。也提供了諸如SPL、模式發現等著名的日誌分析功能。其模式發現(cluster指令)界面如下:
一本正經的把clusterID也列出來,真是淳樸啊~其餘列,和prelert類似,也是保證了一個聚類肯定在同一個logsource內部做的,也帶了一個trend圖。
不過模式樣例,即沒有keyword也沒有signature,還不提供多條……
vmware
vmware的日誌產品,叫vRealize Log Insight。特點是對vmware自家產品的日誌解析分析的很好(廢話)……
其中提供了一個叫做log grouping的功能:
可以看到,這個界面更偏向splunk而非sumologic風格。
該功能會查找日誌模式,然後把signature部分,高亮顯示。但是區別是:並不用***來取代signature,而是留著樣例日誌里的原文高亮。
vmware這裡發現的模式,可以用來後續過濾,也就是截圖中的events like this功能。
推薦閱讀:
※海量日誌分析怎麼處理?
※可能是最好用的日誌分析工具
※請對logstash與flume做比較?
※有哪些基於ELK的億級實時日誌分析平台實踐的案例?
※ELK 實時日誌分析平台環境搭建
TAG:日志分析 |