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