本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種基于elastic組件的日志分析系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的蓬勃發(fā)展,用戶越來越普遍地通過終端接入互聯(lián)網(wǎng)辦理各種業(yè)務(wù)。業(yè)務(wù)規(guī)模不斷擴(kuò)大,系統(tǒng)功能會(huì)變得越來越復(fù)雜,為了應(yīng)付業(yè)務(wù)的快速發(fā)展,降低開發(fā)難度,排除性能瓶頸,系統(tǒng)會(huì)不斷拆分,演化成包含多種子服務(wù)的分布式系統(tǒng),各子服務(wù)通過遠(yuǎn)程過程調(diào)用協(xié)議(remoteprocedurecallprotocol,rpc)相互調(diào)用,最后完成業(yè)務(wù)流程。這個(gè)拆分和進(jìn)化的過程是不可逆的,子系統(tǒng)越變?cè)蕉?,各種專用功能組件會(huì)不斷被引入,系統(tǒng)和機(jī)器規(guī)模迅速膨脹。
當(dāng)業(yè)務(wù)發(fā)展到一定的規(guī)模時(shí),幾個(gè)運(yùn)維或者開發(fā)人員根本無法全面的了解系統(tǒng)中的每個(gè)邏輯,出現(xiàn)故障后登錄各臺(tái)服務(wù)器,使用grep/sed/awk等linux腳本工具去日志里查找故障原因,排障時(shí)間長(zhǎng),不容易及時(shí)發(fā)現(xiàn)故障根源。
現(xiàn)有技術(shù)中的日志分析系統(tǒng),如splunk、日志易、logz.io等系統(tǒng)價(jià)格昂貴,數(shù)據(jù)安全性無法保證,與指定的業(yè)務(wù)邏輯結(jié)合度不高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種基于elastic組件的日志分析系統(tǒng),以解決現(xiàn)有技術(shù)中的日志分析系統(tǒng)價(jià)格昂貴,數(shù)據(jù)安全性無法保證,與指定的業(yè)務(wù)邏輯結(jié)合度不高的問題。
本發(fā)明實(shí)施例提供了一種基于elastic組件的日志分析系統(tǒng),包括:服務(wù)器和監(jiān)控終端;
所述服務(wù)器包括獲取模塊、創(chuàng)建模塊、處理模塊、發(fā)送模塊、分析模塊;
所述獲取模塊用于,獲取日志數(shù)據(jù),所述日志數(shù)據(jù)包含系統(tǒng)日志和業(yè)務(wù)日志;
所述創(chuàng)建模塊用于,創(chuàng)建消息隊(duì)列,將所述日志數(shù)據(jù)寫入所述消息隊(duì)列;
所述處理模塊用于,從所述消息隊(duì)列中讀取所述日志數(shù)據(jù),根據(jù)預(yù)設(shè)處理規(guī)則對(duì)所述日志數(shù)據(jù)進(jìn)行預(yù)處理,得到預(yù)處理日志數(shù)據(jù);
所述發(fā)送模塊用于,將所述預(yù)處理日志數(shù)據(jù)發(fā)送到elastic組件進(jìn)行存儲(chǔ);
所述分析模塊用于,根據(jù)預(yù)設(shè)分析規(guī)則對(duì)所述預(yù)處理日志數(shù)據(jù)進(jìn)行分析處理,得到分析結(jié)果;
所述發(fā)送模塊還用于,當(dāng)所述分析結(jié)果超過預(yù)設(shè)閾值時(shí),向所述監(jiān)控終端發(fā)送分析結(jié)果和提示信息;
所述監(jiān)控終端用于,將所述分析結(jié)果和所述提示信息生成可視化分析報(bào)告,并進(jìn)行顯示。
進(jìn)一步的,所述處理模塊具體用于:
對(duì)所述日志數(shù)據(jù)按照字段進(jìn)行過濾,并將過濾后的日志數(shù)據(jù)根據(jù)業(yè)務(wù)類型添加分類標(biāo)識(shí)。
進(jìn)一步的,所述服務(wù)器還包括查詢模塊;
所述查詢模塊用于,接收終端發(fā)送的查詢請(qǐng)求,所述查詢請(qǐng)求包含查詢條件;
根據(jù)所述查詢條件在elastic組件中實(shí)時(shí)查詢?nèi)罩緮?shù)據(jù),并發(fā)送給所述終端。
進(jìn)一步的,所述分析模塊具體用于:
根據(jù)預(yù)設(shè)的報(bào)錯(cuò)規(guī)則對(duì)預(yù)處理日志數(shù)據(jù)中的第一業(yè)務(wù)的出錯(cuò)信息進(jìn)行統(tǒng)計(jì),得到所述第一業(yè)務(wù)的出錯(cuò)次數(shù)。
進(jìn)一步的,所述系統(tǒng)還包括報(bào)警模塊;
所述報(bào)警模塊用于,當(dāng)所述第一業(yè)務(wù)的出錯(cuò)次數(shù)超過所述第一業(yè)務(wù)報(bào)錯(cuò)閾值時(shí),向所述監(jiān)控終端發(fā)送報(bào)警信息。
進(jìn)一步的,所述分析模塊具體用于:
分別根據(jù)url地址、mac地址、ip地址從預(yù)處理日志數(shù)據(jù)中提取預(yù)設(shè)時(shí)間段內(nèi)用戶的訪問數(shù)據(jù);
根據(jù)所述訪問數(shù)據(jù),統(tǒng)計(jì)預(yù)設(shè)時(shí)間段內(nèi)用戶的點(diǎn)擊率。
本發(fā)明實(shí)施例提供的基于elastic組件的日志分析系統(tǒng),服務(wù)器獲取日志數(shù)據(jù),日志數(shù)據(jù)包含系統(tǒng)日志和業(yè)務(wù)日志;創(chuàng)建消息隊(duì)列,將日志數(shù)據(jù)寫入消息隊(duì)列;從消息隊(duì)列中讀取日志數(shù)據(jù),根據(jù)預(yù)設(shè)處理規(guī)則對(duì)日志數(shù)據(jù)進(jìn)行預(yù)處理,得到預(yù)處理日志數(shù)據(jù);將預(yù)處理日志數(shù)據(jù)發(fā)送到elastic組件進(jìn)行存儲(chǔ);根據(jù)預(yù)設(shè)分析規(guī)則對(duì)預(yù)處理日志數(shù)據(jù)進(jìn)行分析處理,得到分析結(jié)果;當(dāng)分析結(jié)果超過預(yù)設(shè)閾值時(shí),向監(jiān)控終端發(fā)送分析結(jié)果和提示信息;監(jiān)控終端將分析結(jié)果和提示信息生成可視化分析報(bào)告,并進(jìn)行顯示。本發(fā)明實(shí)施例提供的系統(tǒng),基于開源的elastic組件對(duì)日志數(shù)據(jù)進(jìn)行處理,降低了成本;根據(jù)預(yù)設(shè)的分析規(guī)則分析日志數(shù)據(jù),可以與指定的業(yè)務(wù)邏輯有效結(jié)合;無需第三方分析系統(tǒng)參與,提高了數(shù)據(jù)的安全性。
附圖說明
圖1為本發(fā)明實(shí)施例提供的基于elastic組件的日志分析系統(tǒng)的示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部份實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
下面結(jié)合圖1所示的基于elastic組件的日志分析系統(tǒng)的示意圖,對(duì)本發(fā)明實(shí)施例提供的基于elastic組件的日志分析系統(tǒng)進(jìn)行詳細(xì)說明。
如圖1所示,本發(fā)明提供的基于elastic組件的日志分析系統(tǒng)主要包括:服務(wù)器1和監(jiān)控終端2。
服務(wù)器1包括獲取模塊11、創(chuàng)建模塊12、處理模塊13、發(fā)送模塊14、分析模塊15。
獲取模塊11用于,獲取日志數(shù)據(jù),日志數(shù)據(jù)包含系統(tǒng)日志和業(yè)務(wù)日志。
在所有需要收集信息的服務(wù)器端通過輕量級(jí)數(shù)據(jù)發(fā)送工具fiilebeat或linux系統(tǒng)日志收集發(fā)送工具rsyslog配置需要收集的日志路徑并濾篩日志格式,根據(jù)日志路徑得到系統(tǒng)日志和業(yè)務(wù)日志,并將不滿足格式要求的日志過濾掉。
需要說明的是,日志數(shù)據(jù)收集發(fā)送工具除了fiilebeat以及rsyslog之外,也可以根據(jù)需要選擇其他工具,本發(fā)明包含但不限于此。
創(chuàng)建模塊12用于,創(chuàng)建消息隊(duì)列,將日志數(shù)據(jù)寫入消息隊(duì)列。
在一個(gè)具體的實(shí)施例中,利用開源集群工具zookeeper與開源消息隊(duì)列創(chuàng)建工具kafka的集群創(chuàng)建消息隊(duì)列。
在分布式系統(tǒng)中,一次分布式事務(wù)關(guān)聯(lián)的是多個(gè)節(jié)點(diǎn),其中每一個(gè)節(jié)點(diǎn)出現(xiàn)問題都會(huì)成為整個(gè)事務(wù)處理流程中的瓶頸。如果邏輯節(jié)點(diǎn)與數(shù)據(jù)庫之間沒有一個(gè)起到緩沖作用的節(jié)點(diǎn),那就是每次操作都要訪問數(shù)據(jù)庫,會(huì)降低系統(tǒng)的響應(yīng)速度和穩(wěn)定性,創(chuàng)建消息隊(duì)列的目的就是為了在邏輯節(jié)點(diǎn)與數(shù)據(jù)庫之間建立緩沖節(jié)點(diǎn),提高系統(tǒng)響應(yīng)速度,而且,消息隊(duì)列還能起到解耦的作用,提高了系統(tǒng)的穩(wěn)定性。
處理模塊13用于,從消息隊(duì)列中讀取日志數(shù)據(jù),根據(jù)預(yù)設(shè)處理規(guī)則對(duì)日志數(shù)據(jù)進(jìn)行預(yù)處理,得到預(yù)處理日志數(shù)據(jù);
具體的,對(duì)日志數(shù)據(jù)按照字段進(jìn)行過濾,并將過濾后的日志數(shù)據(jù)根據(jù)業(yè)務(wù)類型添加分類標(biāo)識(shí)。
本步驟為日志清洗的步驟,對(duì)日志數(shù)據(jù)按照字段進(jìn)行過濾,并將過濾后的日志數(shù)據(jù)根據(jù)業(yè)務(wù)類型添加分類標(biāo)識(shí)。
在一個(gè)具體的實(shí)施例中,可以利用日志清理工具logstatsh進(jìn)行日志清理,在日志清理系統(tǒng)里設(shè)置日志字段的過濾規(guī)則和一些標(biāo)記信息。
發(fā)送模塊14用于,將預(yù)處理日志數(shù)據(jù)發(fā)送到elastic組件進(jìn)行存儲(chǔ)。
收集清理后的日志數(shù)據(jù)通過分布式搜索和分析引擎elasticsearch來進(jìn)行存儲(chǔ),elasticsearch為開源技術(shù),從而避免了使用現(xiàn)有技術(shù)中價(jià)格昂貴的日志分析系統(tǒng),而且,elasticsearch能夠提供數(shù)據(jù)的實(shí)時(shí)查詢。
分析模塊15用于,根據(jù)預(yù)設(shè)分析規(guī)則對(duì)預(yù)處理日志數(shù)據(jù)進(jìn)行分析處理,得到分析結(jié)果。
可以結(jié)合指定的業(yè)務(wù)邏輯規(guī)則和需求信息預(yù)設(shè)各種分析規(guī)則對(duì)日志數(shù)據(jù)進(jìn)行分析,得到對(duì)應(yīng)的分析結(jié)果。
可選地,分析模塊15用于根據(jù)預(yù)設(shè)的報(bào)錯(cuò)規(guī)則對(duì)預(yù)處理日志數(shù)據(jù)中的第一業(yè)務(wù)的出錯(cuò)信息進(jìn)行統(tǒng)計(jì),得到第一業(yè)務(wù)的出錯(cuò)次數(shù)。
可選地,服務(wù)器還包括報(bào)警模塊17;
報(bào)警模塊17用于,當(dāng)?shù)谝粯I(yè)務(wù)的出錯(cuò)次數(shù)超過第一業(yè)務(wù)報(bào)錯(cuò)閾值時(shí),向監(jiān)控終端發(fā)送報(bào)警信息。
可選地,分析模塊15用于分別根據(jù)url地址、mac地址、ip地址從預(yù)處理日志數(shù)據(jù)中提取預(yù)設(shè)時(shí)間段內(nèi)用戶的訪問數(shù)據(jù);根據(jù)訪問數(shù)據(jù),統(tǒng)計(jì)預(yù)設(shè)時(shí)間段內(nèi)用戶的點(diǎn)擊率。
發(fā)送模塊14還用于,當(dāng)分析結(jié)果超過預(yù)設(shè)閾值時(shí),向監(jiān)控終端發(fā)送分析結(jié)果和提示信息。
對(duì)于分析得到的數(shù)值類型的結(jié)果數(shù)據(jù),判斷該結(jié)果數(shù)值是否超過對(duì)應(yīng)的預(yù)設(shè)閾值,如果超過,則通過信息或郵件的方式將分析結(jié)果和提示信息發(fā)送給特定的監(jiān)控人員終端。
可選的,當(dāng)?shù)谝粯I(yè)務(wù)執(zhí)行的出錯(cuò)次數(shù)超過第一業(yè)務(wù)報(bào)錯(cuò)閾值時(shí),發(fā)送模塊14向監(jiān)控終端發(fā)送報(bào)警信息。
服務(wù)器接收原始日志,統(tǒng)一管理并建立索引,能在幾秒鐘內(nèi)返回搜索分析結(jié)果,幫助及時(shí)定位故障原因。結(jié)合告警監(jiān)控,在故障發(fā)生或即將發(fā)生的時(shí)候就發(fā)出告警。通過前臺(tái)展示功能可以隨時(shí)查看系統(tǒng)狀況,對(duì)系統(tǒng)情況了如指掌,避免事后救火的被動(dòng)。
另外,服務(wù)器還包括查詢模塊16;
查詢模塊16用于,接收終端發(fā)送的查詢請(qǐng)求,查詢請(qǐng)求包含查詢條件;根據(jù)查詢條件在elastic組件中實(shí)時(shí)查詢?nèi)罩緮?shù)據(jù),并發(fā)送給終端。
監(jiān)控終端2用于,將分析結(jié)果和提示信息生成可視化分析報(bào)告,并進(jìn)行顯示。
例如,分析計(jì)算出的數(shù)據(jù)結(jié)果和報(bào)警信息和相關(guān)的原始數(shù)據(jù)可以通過數(shù)據(jù)可視化展示工具kibana、grafana等展示出來,便于監(jiān)控終端側(cè)系統(tǒng)維護(hù)人員及時(shí)發(fā)現(xiàn)問題,及時(shí)采取相關(guān)措施進(jìn)行解決。
本發(fā)明實(shí)施例提供的基于elastic組件的日志分析系統(tǒng),服務(wù)器獲取日志數(shù)據(jù),日志數(shù)據(jù)包含系統(tǒng)日志和業(yè)務(wù)日志;創(chuàng)建消息隊(duì)列,將日志數(shù)據(jù)寫入消息隊(duì)列;從消息隊(duì)列中讀取日志數(shù)據(jù),根據(jù)預(yù)設(shè)處理規(guī)則對(duì)日志數(shù)據(jù)進(jìn)行預(yù)處理,得到預(yù)處理日志數(shù)據(jù);將預(yù)處理日志數(shù)據(jù)發(fā)送到elastic組件進(jìn)行存儲(chǔ);根據(jù)預(yù)設(shè)分析規(guī)則對(duì)預(yù)處理日志數(shù)據(jù)進(jìn)行分析處理,得到分析結(jié)果;當(dāng)分析結(jié)果超過預(yù)設(shè)閾值時(shí),向監(jiān)控終端發(fā)送分析結(jié)果和提示信息;監(jiān)控終端將分析結(jié)果和提示信息生成可視化分析報(bào)告,并進(jìn)行顯示。本發(fā)明實(shí)施例提供的系統(tǒng),基于開源的elastic組件對(duì)日志數(shù)據(jù)進(jìn)行處理,降低了成本;根據(jù)預(yù)設(shè)的分析規(guī)則分析日志數(shù)據(jù),可以與指定的業(yè)務(wù)邏輯有效結(jié)合;無需第三方分析系統(tǒng)參與,提高了數(shù)據(jù)的安全性。
專業(yè)人員應(yīng)該還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件來實(shí)現(xiàn),在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明實(shí)施例的范圍。具體地,所述運(yùn)算和控制部分都可以通絡(luò)邏輯硬件實(shí)現(xiàn),其可以是使用集成電路工藝制造出來的邏輯集成電路,本實(shí)施例對(duì)此不作限定。
結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(ram)、內(nèi)存、只讀存儲(chǔ)器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動(dòng)磁盤、cd-rom、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
以上所述的具體實(shí)施方式,對(duì)本發(fā)明實(shí)施例的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明實(shí)施例的具體實(shí)施方式而已,并不用于限定本發(fā)明實(shí)施例的保護(hù)范圍,凡在本發(fā)明實(shí)施例的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明實(shí)施例的保護(hù)范圍之內(nèi)。