先看一下Apache日志,這是一條Apache日志,它是文本信息,如果不是專業(yè)的運(yùn)維工程師經(jīng)??慈罩镜脑挘蠹铱吹竭@個(gè)會(huì)像看天書,不知道是什么含義,使用日志易這個(gè)軟件把日志做結(jié)構(gòu)化,把它從非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)成結(jié)構(gòu)化數(shù)據(jù)得出來的信息。一條日志包含的信息非常多,從這里面統(tǒng)計(jì)分析的話會(huì)得出多有價(jià)值的信息。日志可以用到哪些場(chǎng)景?一個(gè)是運(yùn)維監(jiān)控,IDC需要進(jìn)行運(yùn)維監(jiān)控,保證系統(tǒng)的可用性,如果出現(xiàn)故障了,能夠及時(shí)追溯故障根源,及時(shí)知道問題。應(yīng)用性能監(jiān)控,主要是知道性能的情況,你的網(wǎng)站是不是慢,為什么慢,慢在哪里,這方面屬于應(yīng)用性能監(jiān)控。數(shù)據(jù)中心里還有一條很重要的就是安全,要保證數(shù)據(jù)中心的安全,防止黑客的入侵。這可以用在安全審計(jì)方面,主要是安全信息事件管理、合規(guī)審計(jì)、發(fā)現(xiàn)高級(jí)持續(xù)威脅APT,APT現(xiàn)在也是比較熱門的話題。做APT的發(fā)現(xiàn)得通過日志、流量,全方位360無死角地進(jìn)行監(jiān)控。
日志用在業(yè)務(wù)和用戶數(shù)據(jù)分析上。過去的做法是日志沒有集中管理,散落在各臺(tái)服務(wù)器上,事后出了問題就登錄到各臺(tái)服務(wù)器上用腳本命令,用VI去查看日志,有一些水平高的運(yùn)維工程師用AWK寫一些腳本分析程序去分析日志,這樣的做法也有問題,因?yàn)榈卿浀礁髋_(tái)服務(wù)器,這些服務(wù)器都是生產(chǎn)服務(wù)器,一不小心的誤操作可能就會(huì)導(dǎo)致事故。日志被刪除,一個(gè)是磁盤滿了,日志就被覆蓋了,另外運(yùn)維工程師把日志當(dāng)做垃圾,看到磁盤快沒了首先做的事情就是刪除日志,刪除日志之后如果事后發(fā)現(xiàn)有些措施或者故障需要分析需要追溯又找不到日志了。黑客入侵之后,聰明的黑客第一件事就是刪除日志,因?yàn)槿罩居涗浟怂肭值暮圹E,他刪除日志就可以把他入侵的痕跡磨除掉。
系統(tǒng)出現(xiàn)故障的時(shí)候日志會(huì)包含信息,我們希望實(shí)時(shí)地發(fā)現(xiàn)這些信息,當(dāng)日志出現(xiàn)錯(cuò)誤信息的時(shí)候能夠馬上報(bào)警,而不是僅僅用在事后的追查上。后來有些公司開始重視日志,他們用數(shù)據(jù)庫存儲(chǔ)日志,現(xiàn)在是一個(gè)比較普遍的做法,但是用數(shù)據(jù)庫存儲(chǔ)日志有什么問題呢?
數(shù)據(jù)庫是用來存結(jié)構(gòu)化數(shù)據(jù)的,日志是非結(jié)構(gòu)化的數(shù)據(jù),數(shù)據(jù)庫有固定的Schema,規(guī)定好數(shù)據(jù)庫的表格是當(dāng)有新的日志表格過來的時(shí)候表格又要改。
我看到有一些做法,為了讓表的格式最大限度的靈活化,數(shù)據(jù)庫就定義了三列,第一列是產(chǎn)生日志的機(jī)器IT地址,第二是時(shí)間戳,第三是日志本身的信息,把整個(gè)日志的文本當(dāng)做一個(gè)字段放到數(shù)據(jù)庫里,沒辦法針對(duì)日志里的信息進(jìn)行抽取進(jìn)行分析。數(shù)據(jù)庫沒辦法適用TB級(jí)的海量日志,現(xiàn)在產(chǎn)生的日志越來越多,每臺(tái)服務(wù)器一天產(chǎn)生幾GB甚至幾十GB的數(shù)據(jù),一個(gè)數(shù)據(jù)中心上千臺(tái)服務(wù)器一天可能產(chǎn)生幾TB的數(shù)據(jù),數(shù)據(jù)庫沒辦法處理來。
一講大數(shù)據(jù)都離不開Hadoop,Hadoop出來之后大家開始用Hadoop處理日志,首先Hadoop是批處理的框架,不夠及時(shí)。用Hadoop處理分析都是今天看昨天的數(shù)據(jù),或者是看幾個(gè)小時(shí)之前的,最快也只能看到幾十分鐘之前的,想看幾秒鐘之前的Hadoop是做不到的。所以Hadoop基本是用來做數(shù)據(jù)的離線挖掘,沒辦法做在線數(shù)據(jù)分析。后來又開始出現(xiàn)Storm、Spark,但這些都是使用框架,我們希望有個(gè)東西拿來就可以用。后來出現(xiàn)NoSQL,但沒辦法全文檢索,我們希望對(duì)日志進(jìn)行實(shí)時(shí)的搜索分析,需要有一個(gè)搜索分析引擎,要有幾個(gè)特點(diǎn),一是快,日志從產(chǎn)生到分析出結(jié)果只有幾秒的延時(shí),二是大,每天處理TB級(jí)的日志量。三是靈活,Googlefor IT,可搜索、分析任何日志。FastBig Data,除了大之外還要快。
日志管理系統(tǒng)的進(jìn)化,日志1.0數(shù)據(jù)庫,日志2.0是用Hadoop或NoSQL處理,現(xiàn)在到了日志3.0,實(shí)時(shí)搜索引擎,F(xiàn)astBig Data??删幊痰娜罩緦?shí)時(shí)搜索分析平臺(tái),跟谷歌、百度的搜索引擎非常相似,有搜索框,但這個(gè)搜索框又比谷歌、百度更復(fù)雜,它定義了很多搜索處理語言。比如有管道符,還有各種命令,可以在搜索框里進(jìn)行非常復(fù)雜的分析。它可以接入各種來源的數(shù)據(jù),包括日志文件、數(shù)據(jù)庫、恒生電子交易系統(tǒng)。有企業(yè)部署版和SaaS版,SaaS版處理每天500MB日志是免費(fèi)的。
可以搜索、告警、統(tǒng)計(jì),配置解析規(guī)則,識(shí)別任何日志,安全攻擊自動(dòng)識(shí)別,開放API,對(duì)接第三方系統(tǒng)。高性能、可擴(kuò)展分布式。我們看一下案例,中國平安,使用日志易之前,逐臺(tái)登陸服務(wù)器,無法集中查看日志,無法對(duì)海量數(shù)據(jù)進(jìn)行挖掘、用戶行為分析,日志查詢方法比較原始,只能less、grep和awk等常見的Linux指令,無法多維度查詢。無法進(jìn)行日志的業(yè)務(wù)邏輯分析和告警。使用日志易之后,接入60多個(gè)應(yīng)用的日志。