本發(fā)明實(shí)施例涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種基于流式計(jì)算的數(shù)據(jù)監(jiān)控方法及裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)業(yè)務(wù)量不斷增大,業(yè)務(wù)方的不斷增多,使得服務(wù)被調(diào)用的次數(shù)明顯增大,進(jìn)而對(duì)網(wǎng)絡(luò)的大數(shù)據(jù)處理提出了較高要求;現(xiàn)有技術(shù)中,通過(guò)storm流式計(jì)算框架接收服務(wù)請(qǐng)求日志信息,經(jīng)由storm做簡(jiǎn)單處理后,將明細(xì)數(shù)據(jù)寫(xiě)入到MySQL中。
然而,在實(shí)施本技術(shù)方案的過(guò)程中,發(fā)現(xiàn)現(xiàn)有技術(shù)存在以下缺陷:由于storm接收數(shù)據(jù)的方式只支持阻塞方式的消息隊(duì)列,消息只能通過(guò)實(shí)時(shí)的接收,在訪問(wèn)量暴增的情況下,storm對(duì)于MySQL的實(shí)時(shí)寫(xiě)入壓力會(huì)同時(shí)暴增,會(huì)對(duì)MySQL數(shù)據(jù)庫(kù)造成巨大的壓力,同時(shí)也會(huì)減緩計(jì)算速度和數(shù)據(jù)的顯示速度。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種基于流式計(jì)算的數(shù)據(jù)監(jiān)控方法及裝置,可以有效克服現(xiàn)有技術(shù)中存在的會(huì)對(duì)MySQL數(shù)據(jù)庫(kù)造成巨大的壓力,同時(shí)也會(huì)減緩計(jì)算速度和數(shù)據(jù)的顯示速度的問(wèn)題。
本發(fā)明實(shí)施例的一方面提供了一種基于流式計(jì)算的數(shù)據(jù)監(jiān)控方法,包括:
通過(guò)分布式發(fā)布訂閱消息系統(tǒng)KAFKA獲取服務(wù)被調(diào)用的日志信息;
采用分布式流式處理方法Spark streaming對(duì)日志信息進(jìn)行分析處理,獲得日志明細(xì)信息和日志匯總信息;
將所述日志明細(xì)信息寫(xiě)入到分布式文件系統(tǒng)HDFS中,并將所述日志匯總信息存儲(chǔ)至關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)MYSQL中。
如上所述的基于流式計(jì)算的數(shù)據(jù)監(jiān)控方法,所述通過(guò)分布式發(fā)布訂閱消息系統(tǒng)KAFKA獲取服務(wù)被調(diào)用的日志信息,具體包括:
通過(guò)預(yù)設(shè)的監(jiān)控埋點(diǎn)AGENT從服務(wù)端中獲取服務(wù)被調(diào)用的日志信息;
將所述日志信息寫(xiě)入到所述KAFKA中預(yù)先創(chuàng)建的TOPIC中。
如上所述的基于流式計(jì)算的數(shù)據(jù)監(jiān)控方法,所述采用分布式流式處理方法Spark streaming對(duì)日志信息進(jìn)行分析處理,具體包括:
采用預(yù)設(shè)的匯總算法對(duì)所述日志信息進(jìn)行分析處理,獲得所述日志匯總信息。
如上所述的基于流式計(jì)算的數(shù)據(jù)監(jiān)控方法,所述采用分布式流式處理方法Spark streaming對(duì)日志信息進(jìn)行分析處理,具體包括:
獲取KAFKA中所述TOPIC的TOPIC信息;
根據(jù)所述TOPIC信息并按照預(yù)設(shè)的采集周期從所述KAFKA中拉取相應(yīng)的所述日志明細(xì)信息。
如上所述的基于流式計(jì)算的數(shù)據(jù)監(jiān)控方法,在將所述日志匯總信息存儲(chǔ)至關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)MYSQL中之后,所述方法還包括:
接收用戶發(fā)送的查詢(xún)指令,所述查詢(xún)指令中包括查詢(xún)時(shí)間;
根據(jù)所述查詢(xún)指令從所述MYSQL中查找與所述查詢(xún)時(shí)間相對(duì)應(yīng)的日志匯總信息,并顯示所查找到的日志匯總信息。
本發(fā)明的又一方面提供了一種基于流式計(jì)算的數(shù)據(jù)監(jiān)控裝置,包括:
獲取模塊,用于通過(guò)分布式發(fā)布訂閱消息系統(tǒng)KAFKA獲取服務(wù)被調(diào)用的日志信息;
處理模塊,用于采用分布式流式處理方法Spark streaming對(duì)日志信息進(jìn)行分析處理,獲得日志明細(xì)信息和日志匯總信息;
存儲(chǔ)模塊,用于將所述日志明細(xì)信息寫(xiě)入到分布式文件系統(tǒng)HDFS中,并將所述日志匯總信息存儲(chǔ)至關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)MYSQL中。
如上所述的基于流式計(jì)算的數(shù)據(jù)監(jiān)控裝置,所述獲取模塊,具體用于:
通過(guò)預(yù)設(shè)的監(jiān)控埋點(diǎn)AGENT從服務(wù)端中獲取服務(wù)被調(diào)用的日志信息;
將所述日志信息寫(xiě)入到所述KAFKA中預(yù)先創(chuàng)建的TOPIC中。
如上所述的基于流式計(jì)算的數(shù)據(jù)監(jiān)控裝置,所述處理模塊,具體用于:
采用預(yù)設(shè)的匯總算法對(duì)所述日志信息進(jìn)行分析處理,獲得所述日志匯總信息。
如上所述的基于流式計(jì)算的數(shù)據(jù)監(jiān)控裝置,所述處理模塊,具體用于:
獲取KAFKA中所述TOPIC的TOPIC信息;
根據(jù)所述TOPIC信息并按照預(yù)設(shè)的采集周期從所述KAFKA中拉取相應(yīng)的所述日志明細(xì)信息。
如上所述的基于流式計(jì)算的數(shù)據(jù)監(jiān)控裝置,所述數(shù)據(jù)監(jiān)控裝置還包括:
接收模塊,用于在將所述日志匯總信息存儲(chǔ)至關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)MYSQL中之后,接收用戶發(fā)送的查詢(xún)指令,所述查詢(xún)指令中包括查詢(xún)時(shí)間;
顯示模塊,用于根據(jù)所述查詢(xún)指令從所述MYSQL中查找與所述查詢(xún)時(shí)間相對(duì)應(yīng)的日志匯總信息,并顯示所查找到的日志匯總信息。。
本發(fā)明提供的基于流式計(jì)算的數(shù)據(jù)監(jiān)控方法及裝置,通過(guò)KAFKA獲取服務(wù)被調(diào)用的日志信息,采用Spark streaming對(duì)日志信息進(jìn)行分析處理,并將得到的日志明細(xì)信息寫(xiě)入HDFS中,將日志匯總信息存儲(chǔ)至MYSQL中,有效地解決了現(xiàn)有技術(shù)中存在的會(huì)對(duì)MySQL數(shù)據(jù)庫(kù)造成巨大的壓力,同時(shí)也會(huì)減緩計(jì)算速度和數(shù)據(jù)的顯示速度的問(wèn)題,提高了數(shù)據(jù)處理效率,同時(shí)減緩了對(duì)MySQL數(shù)據(jù)庫(kù)造成的數(shù)據(jù)壓力,進(jìn)而提高了該數(shù)據(jù)監(jiān)控方法應(yīng)用的穩(wěn)定可靠性,有利于市場(chǎng)的推廣與應(yīng)用。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例提供的一種基于流式計(jì)算的數(shù)據(jù)監(jiān)控方法的流程示意圖;
圖2為本發(fā)明實(shí)施例提供的通過(guò)分布式發(fā)布訂閱消息系統(tǒng)KAFKA獲取服務(wù)被調(diào)用的日志信息的流程示意圖;
圖3為本發(fā)明實(shí)施例提供的采用分布式流式處理方法Spark streaming對(duì)日志信息進(jìn)行分析處理的流程示意圖;
圖4為本發(fā)明實(shí)施例提供的顯示所查找到的日志匯總信息的流程示意圖;
圖5為本發(fā)明實(shí)施例提供的一種基于流式計(jì)算的數(shù)據(jù)監(jiān)控裝置的結(jié)構(gòu)示意圖;
圖6為本發(fā)明實(shí)施例提供的基于流式計(jì)算的數(shù)據(jù)監(jiān)控裝置具體應(yīng)用時(shí)的流程示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)描述。以下實(shí)例用于說(shuō)明本發(fā)明,但不用來(lái)限制本發(fā)明的范圍。
圖1為本發(fā)明實(shí)施例提供的一種基于流式計(jì)算的數(shù)據(jù)監(jiān)控方法的流程示意圖;參考附圖1可知,本實(shí)施例提供了一種基于流式計(jì)算的數(shù)據(jù)監(jiān)控方法,包括:
S101:通過(guò)分布式發(fā)布訂閱消息系統(tǒng)KAFKA獲取服務(wù)被調(diào)用的日志信息;
KAFKA是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),它可以處理消費(fèi)者規(guī)模的網(wǎng)站中的所有動(dòng)作流數(shù)據(jù);這種動(dòng)作(網(wǎng)頁(yè)瀏覽,搜索和其他用戶的行動(dòng))是在現(xiàn)代網(wǎng)絡(luò)上的許多社會(huì)功能的一個(gè)關(guān)鍵因素。這些數(shù)據(jù)通常是由于吞吐量的要求而通過(guò)處理日志和日志聚合來(lái)解決,通過(guò)KAFKA獲取服務(wù)被調(diào)用的日志信息,可以實(shí)現(xiàn)通過(guò)Hadoop的并行加載機(jī)制來(lái)統(tǒng)一線上和離線的消息處理,并通過(guò)集群機(jī)來(lái)提供實(shí)時(shí)的消費(fèi)。
S102:采用分布式流式處理方法Spark streaming對(duì)日志信息進(jìn)行分析處理,獲得日志明細(xì)信息和日志匯總信息;
其中,本實(shí)施例對(duì)于采用分布式流式處理方法對(duì)日志信息進(jìn)行分析處理的具體實(shí)現(xiàn)過(guò)程不做限定,本領(lǐng)域技術(shù)人員可以根據(jù)具體的設(shè)計(jì)需求進(jìn)行設(shè)置,只要能夠通過(guò)對(duì)日志信息進(jìn)行分析處理獲得日志明細(xì)信息和日志匯總信息即可,在此不再贅述。
S103:將日志明細(xì)信息寫(xiě)入到分布式文件系統(tǒng)HDFS中,并將日志匯總信息存儲(chǔ)至關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)MYSQL中。
將日志明細(xì)信息寫(xiě)入到HDFS中,將日志匯總信息存儲(chǔ)至MYSQL中,有效提提高了數(shù)據(jù)收集以及數(shù)據(jù)計(jì)算的效率,緩解了MYSQL的數(shù)據(jù)處理壓力和存儲(chǔ)壓力,進(jìn)而提高了該數(shù)據(jù)監(jiān)控方法的實(shí)用性。
本實(shí)施例提供的基于流式計(jì)算的數(shù)據(jù)監(jiān)控方法,通過(guò)KAFKA獲取服務(wù)被調(diào)用的日志信息,采用Spark streaming對(duì)日志信息進(jìn)行分析處理,并將得到的日志明細(xì)信息寫(xiě)入HDFS中,將日志匯總信息存儲(chǔ)至MYSQL中,有效地解決了現(xiàn)有技術(shù)中存在的會(huì)對(duì)MySQL數(shù)據(jù)庫(kù)造成巨大的壓力,同時(shí)也會(huì)減緩計(jì)算速度和數(shù)據(jù)的顯示速度的問(wèn)題,提高了數(shù)據(jù)處理效率,同時(shí)減緩了對(duì)MySQL數(shù)據(jù)庫(kù)造成的數(shù)據(jù)壓力,進(jìn)而提高了該數(shù)據(jù)監(jiān)控方法應(yīng)用的穩(wěn)定可靠性,有利于市場(chǎng)的推廣與應(yīng)用。
圖2為本發(fā)明實(shí)施例提供的通過(guò)分布式發(fā)布訂閱消息系統(tǒng)KAFKA獲取服務(wù)被調(diào)用的日志信息的流程示意圖;在上述實(shí)施例的基礎(chǔ)上,參考附圖2可知,本實(shí)施例對(duì)于通過(guò)KAFKA獲取日志信息的具體實(shí)現(xiàn)過(guò)程不做限定,較為優(yōu)選的,將通過(guò)分布式發(fā)布訂閱消息系統(tǒng)KAFKA獲取服務(wù)被調(diào)用的日志信息,設(shè)置為具體包括:
S1011:通過(guò)預(yù)設(shè)的監(jiān)控埋點(diǎn)AGENT從服務(wù)端中獲取服務(wù)被調(diào)用的日志信息;
在具體應(yīng)用時(shí),可能會(huì)存在多個(gè)服務(wù)端,因此,為了保證日志信息獲取的準(zhǔn)確度,可以將每個(gè)服務(wù)端中設(shè)置有AGENT,以使得AGENT從服務(wù)端中可以有效獲取到服務(wù)被調(diào)用的日志信息。
S1012:將日志信息寫(xiě)入到KAFKA中預(yù)先創(chuàng)建的TOPIC中。
在AGENT獲取到日志信息后,將日志信息寫(xiě)入到KAFKA消息隊(duì)列中,KAFKA根據(jù)不同的服務(wù)設(shè)定到預(yù)先創(chuàng)建的TOPIC中,進(jìn)而實(shí)現(xiàn)了KAFKA獲取到日志信息的過(guò)程。
通過(guò)設(shè)置的AGENT獲取日志信息,有效地保證了日志信息獲取的準(zhǔn)確可靠性,并且將日志信息存儲(chǔ)在KAFKA中預(yù)先創(chuàng)建的TOPIC中,有效地保證了日志信息存儲(chǔ)的穩(wěn)定性,并且便于對(duì)日志信息的調(diào)用與計(jì)算處理。
圖3為本發(fā)明實(shí)施例提供的采用分布式流式處理方法Spark streaming對(duì)日志信息進(jìn)行分析處理的流程示意圖;在上述實(shí)施例的基礎(chǔ)上,繼續(xù)參考附圖3可知,本實(shí)施例對(duì)于采用分布式流式處理方法Spark streaming對(duì)日志信息進(jìn)行分析處理的具體實(shí)現(xiàn)過(guò)程不做限定,本領(lǐng)域技術(shù)人員可以根據(jù)具體的設(shè)計(jì)需求進(jìn)行設(shè)置,其中,較為優(yōu)選的,將采用分布式流式處理方法Spark streaming對(duì)日志信息進(jìn)行分析處理,設(shè)置為具體包括:
S1021:采用預(yù)設(shè)的匯總算法對(duì)日志信息進(jìn)行分析處理,獲得日志匯總信息。
其中,匯總算法為預(yù)先設(shè)置的,并且該匯總算法可以為現(xiàn)有技術(shù)中的處理算法,用于對(duì)日志信息進(jìn)行匯總處理,進(jìn)而可以獲得日志匯總信息;另外,為了進(jìn)一步減緩數(shù)據(jù)處理的壓力,用戶可以設(shè)置計(jì)算周期,按照預(yù)設(shè)的計(jì)算周期獲取日志匯總信息,進(jìn)而實(shí)現(xiàn)了周期內(nèi)的日志指標(biāo)匯總。
S1022:獲取KAFKA中TOPIC的TOPIC信息;
由于日志信息存儲(chǔ)在KAFKA中的TOPIC中,因此,在獲取日志明細(xì)信息之前,需要配置對(duì)應(yīng)的TOPIC信息,以實(shí)現(xiàn)從KAFKA中拉取相應(yīng)的日志信息。
S1023:根據(jù)TOPIC信息并按照預(yù)設(shè)的采集周期從KAFKA中拉取相應(yīng)的日志明細(xì)信息。
用戶可以按照預(yù)設(shè)的采集周期定期獲取日志明細(xì)信息,進(jìn)而可以有效地減少日志信息處理的壓力,并且還可以有效地提高對(duì)日志信息處理的效率,進(jìn)一步提高了該數(shù)據(jù)監(jiān)控方法的實(shí)用性。
圖4為本發(fā)明實(shí)施例提供的顯示所查找到的日志匯總信息的流程示意圖;在上述實(shí)施例的基礎(chǔ)上,繼續(xù)參考附圖4可知,在經(jīng)過(guò)分析處理后,獲得日志明細(xì)信息和日志匯總信息后,為了方便用戶調(diào)取與查看,在將日志匯總信息存儲(chǔ)至關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)MYSQL中之后,將方法還包括:
S201:接收用戶發(fā)送的查詢(xún)指令,查詢(xún)指令中包括查詢(xún)時(shí)間;
其中,對(duì)于接收用戶發(fā)送的查詢(xún)指令的具體實(shí)現(xiàn)方式不做限定,本領(lǐng)域技術(shù)人員可以根據(jù)具體的設(shè)計(jì)需求進(jìn)行設(shè)置,例如:可以通過(guò)藍(lán)牙、WiFi以及有線連接的方式來(lái)接收用戶發(fā)送的查詢(xún)指令,查詢(xún)指令中包括查詢(xún)時(shí)間,以按照查詢(xún)時(shí)間獲得相對(duì)應(yīng)的日志匯總信息/日志明細(xì)信息。
S202:根據(jù)查詢(xún)指令從MYSQL中查找與查詢(xún)時(shí)間相對(duì)應(yīng)的日志匯總信息,并顯示所查找到的日志匯總信息。
當(dāng)用戶欲查詢(xún)的信息為日志匯總信息時(shí),由于日志匯總信息存儲(chǔ)于MYSQL中,因此,可以在MYSQL中查找與查詢(xún)時(shí)間相對(duì)應(yīng)的日志匯總信息,并可以通過(guò)顯示設(shè)備顯示所查找到的日志匯總信息,方便用戶直觀查看日志匯總信息。
相類(lèi)似的,當(dāng)用戶欲查詢(xún)的信息為日志明細(xì)信息時(shí),由于日志明細(xì)信息存儲(chǔ)于HDFS中,因此,可以在HDFS中查找與查詢(xún)時(shí)間相對(duì)應(yīng)的日志明細(xì)信息,并可以通過(guò)顯示設(shè)備顯示所查找到的日志明細(xì)信息,方便用戶直觀查閱日志明細(xì)信息。
通過(guò)上述查閱并顯示日志匯總信息的方式,可以方便用戶對(duì)日志匯總信息進(jìn)行查閱與管理,進(jìn)一步提高了該數(shù)據(jù)監(jiān)控方法的實(shí)用性,有利于市場(chǎng)的推廣與應(yīng)用。
具體應(yīng)用時(shí),參考附圖6可知,本技術(shù)方案所提供的數(shù)據(jù)監(jiān)控方法的操作步驟如下:
1、啟動(dòng)KAFKA,創(chuàng)建對(duì)應(yīng)的TOPIC;
2、服務(wù)日志通由埋點(diǎn)AGENT被寫(xiě)入到對(duì)應(yīng)的KAFKA的TOPIC中;
3、SPARKSTREAMING開(kāi)發(fā),用戶根據(jù)需求設(shè)定數(shù)據(jù)采集周期;指定KAFKA中的TOPIC;根據(jù)原有指標(biāo)統(tǒng)計(jì)算法,設(shè)置基于SPARK的匯總算法;
4、SPARKSTREAMING按照數(shù)據(jù)采集周期接收KAFKA中的日志數(shù)據(jù),并對(duì)日志數(shù)據(jù)進(jìn)行匯總計(jì)算,獲得日志匯總指標(biāo);
5、將從KAFKA中被SPARKSTREAMING拉取的服務(wù)日志明細(xì)數(shù)據(jù)寫(xiě)入到HDFS文件系統(tǒng)中;
6、匯總指標(biāo)數(shù)據(jù)寫(xiě)入到MYSQL數(shù)據(jù)庫(kù)中;
7、當(dāng)前端調(diào)用查詢(xún)時(shí),根據(jù)選擇的時(shí)間周期,從MYSQL數(shù)據(jù)庫(kù)中,匹配對(duì)應(yīng)時(shí)間周期內(nèi)的匯總指標(biāo);
8、將所選擇的數(shù)據(jù)返回前端進(jìn)行展示。
基于上述過(guò)程,本技術(shù)方案較現(xiàn)有技術(shù)而言,可以有效地縮減了存空間,具體的,以服務(wù)QPS為4000條為例,假設(shè),現(xiàn)有技術(shù)中存儲(chǔ)5分鐘的數(shù)據(jù)會(huì)產(chǎn)生4000*5=20000條數(shù)據(jù);而本申請(qǐng)中同樣以周期5分鐘為例,將原有的5分鐘20000條數(shù)據(jù)直接匯總為1條,壓縮比例為20000:1;并且,當(dāng)用于需要查看監(jiān)控系統(tǒng)時(shí),以監(jiān)控周期為10分鐘為例,現(xiàn)有技術(shù)中需要提取出10分鐘內(nèi)所有的明細(xì)數(shù)據(jù),并在監(jiān)控引擎中進(jìn)行匯總計(jì)算,效率十分緩慢,且高占用網(wǎng)絡(luò)IO;而由于本技術(shù)方案中的數(shù)據(jù)存儲(chǔ)周期為5分鐘,因此,計(jì)算10分鐘的匯總數(shù)據(jù),只需要提取2條數(shù)據(jù)即可,且計(jì)算邏輯只是單純的相加,從數(shù)據(jù)量和相應(yīng)速度上大大提高,進(jìn)而大大減少了MYSQL的讀寫(xiě)壓力,進(jìn)一步提高了該數(shù)據(jù)監(jiān)控方法的實(shí)用性,有利于市場(chǎng)的推廣與應(yīng)用。
圖5為本發(fā)明實(shí)施例提供的一種基于流式計(jì)算的數(shù)據(jù)監(jiān)控裝置的結(jié)構(gòu)示意圖;參考附圖5可知,本實(shí)施例提供了一種基于流式計(jì)算的數(shù)據(jù)監(jiān)控裝置,該數(shù)據(jù)監(jiān)控裝置用于對(duì)數(shù)據(jù)進(jìn)行監(jiān)控處理,具體包括:
獲取模塊1,用于通過(guò)分布式發(fā)布訂閱消息系統(tǒng)KAFKA獲取服務(wù)被調(diào)用的日志信息;
其中,對(duì)于獲取模塊1的具體形狀結(jié)構(gòu)不做限定,本領(lǐng)域技術(shù)人員可以根據(jù)具體的設(shè)計(jì)需求進(jìn)行設(shè)置;另外,本實(shí)施例中獲取模塊1所實(shí)現(xiàn)操作步驟的具體實(shí)現(xiàn)過(guò)程以及實(shí)現(xiàn)效果與上述實(shí)施例中步驟S101的實(shí)現(xiàn)過(guò)程以及實(shí)現(xiàn)效果相同,具體可參考上述陳述內(nèi)容,在此不再贅述。
處理模塊2,用于采用分布式流式處理方法Spark streaming對(duì)日志信息進(jìn)行分析處理,獲得日志明細(xì)信息和日志匯總信息;
其中,對(duì)于處理模塊2的具體形狀結(jié)構(gòu)不做限定,本領(lǐng)域技術(shù)人員可以根據(jù)具體的設(shè)計(jì)需求進(jìn)行設(shè)置;另外,本實(shí)施例中處理模塊2所實(shí)現(xiàn)操作步驟的具體實(shí)現(xiàn)過(guò)程以及實(shí)現(xiàn)效果與上述實(shí)施例中步驟S102的實(shí)現(xiàn)過(guò)程以及實(shí)現(xiàn)效果相同,具體可參考上述陳述內(nèi)容,在此不再贅述。
存儲(chǔ)模塊3,用于將日志明細(xì)信息寫(xiě)入到分布式文件系統(tǒng)HDFS中,并將日志匯總信息存儲(chǔ)至關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)MYSQL中。
其中,對(duì)于存儲(chǔ)模塊3的具體形狀結(jié)構(gòu)不做限定,本領(lǐng)域技術(shù)人員可以根據(jù)具體的設(shè)計(jì)需求進(jìn)行設(shè)置;另外,本實(shí)施例中存儲(chǔ)模塊3所實(shí)現(xiàn)操作步驟的具體實(shí)現(xiàn)過(guò)程以及實(shí)現(xiàn)效果與上述實(shí)施例中步驟S103的實(shí)現(xiàn)過(guò)程以及實(shí)現(xiàn)效果相同,具體可參考上述陳述內(nèi)容,在此不再贅述。
本實(shí)施例提供的基于流式計(jì)算的數(shù)據(jù)監(jiān)控裝置,獲取模塊1通過(guò)KAFKA獲取服務(wù)被調(diào)用的日志信息,處理模塊2采用Spark streaming對(duì)日志信息進(jìn)行分析處理,并且存儲(chǔ)模塊3將得到的日志明細(xì)信息寫(xiě)入HDFS中,將日志匯總信息存儲(chǔ)至MYSQL中,有效地解決了現(xiàn)有技術(shù)中存在的會(huì)對(duì)MySQL數(shù)據(jù)庫(kù)造成巨大的壓力,同時(shí)也會(huì)減緩計(jì)算速度和數(shù)據(jù)的顯示速度的問(wèn)題,提高了數(shù)據(jù)處理效率,同時(shí)減緩了對(duì)MySQL數(shù)據(jù)庫(kù)造成的數(shù)據(jù)壓力,進(jìn)而提高了該數(shù)據(jù)監(jiān)控裝置應(yīng)用的穩(wěn)定可靠性,有利于市場(chǎng)的推廣與應(yīng)用。
在上述實(shí)施例的基礎(chǔ)上,繼續(xù)參考附圖5可知,本實(shí)施例對(duì)于獲取模塊1通過(guò)KAFKA獲取日志信息的具體實(shí)現(xiàn)過(guò)程不做限定,較為優(yōu)選的,將獲取模塊1,設(shè)置為具體用于:
通過(guò)預(yù)設(shè)的監(jiān)控埋點(diǎn)AGENT從服務(wù)端中獲取服務(wù)被調(diào)用的日志信息;
將日志信息寫(xiě)入到KAFKA中預(yù)先創(chuàng)建的TOPIC中。
本實(shí)施例中獲取模塊1所實(shí)現(xiàn)操作步驟的具體實(shí)現(xiàn)過(guò)程以及實(shí)現(xiàn)效果與上述實(shí)施例中步驟S1011-S1012的實(shí)現(xiàn)過(guò)程以及實(shí)現(xiàn)效果相同,具體可參考上述陳述內(nèi)容,在此不再贅述。
獲取模塊1通過(guò)設(shè)置的AGENT獲取日志信息,有效地保證了日志信息獲取的準(zhǔn)確可靠性,并且將日志信息存儲(chǔ)在KAFKA中預(yù)先創(chuàng)建的TOPIC中,有效地保證了日志信息存儲(chǔ)的穩(wěn)定性,并且便于對(duì)日志信息的調(diào)用與計(jì)算處理。
在上述實(shí)施例的基礎(chǔ)上,繼續(xù)參考附圖5可知,本實(shí)施例對(duì)于處理模塊2采用分布式流式處理方法Spark streaming對(duì)日志信息進(jìn)行分析處理的具體實(shí)現(xiàn)過(guò)程不做限定,較為優(yōu)選的,將處理模塊2,具體用于:
采用預(yù)設(shè)的匯總算法對(duì)日志信息進(jìn)行分析處理,獲得日志匯總信息;
處理模塊2,具體用于:
獲取KAFKA中TOPIC的TOPIC信息;
根據(jù)TOPIC信息并按照預(yù)設(shè)的采集周期從KAFKA中拉取相應(yīng)的日志明細(xì)信息。
本實(shí)施例中處理模塊2所實(shí)現(xiàn)操作步驟的具體實(shí)現(xiàn)過(guò)程以及實(shí)現(xiàn)效果與上述實(shí)施例中步驟S1021-S1023的實(shí)現(xiàn)過(guò)程以及實(shí)現(xiàn)效果相同,具體可參考上述陳述內(nèi)容,在此不再贅述。
用戶可以按照預(yù)設(shè)的采集周期定期獲取日志明細(xì)信息,進(jìn)而可以有效地減少日志信息處理的壓力,并且還可以有效地提高對(duì)日志信息處理的效率,進(jìn)一步提高了該數(shù)據(jù)監(jiān)控裝置的實(shí)用性。
在上述實(shí)施例的基礎(chǔ)上,繼續(xù)參考附圖5可知,在經(jīng)過(guò)分析處理后,獲得日志明細(xì)信息和日志匯總信息后,為了方便用戶調(diào)取與查看,將數(shù)據(jù)監(jiān)控裝置設(shè)置為還包括:
接收模塊4,用于在將日志匯總信息存儲(chǔ)至關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)MYSQL中之后,接收用戶發(fā)送的查詢(xún)指令,查詢(xún)指令中包括查詢(xún)時(shí)間;
其中,對(duì)于接收模塊4的具體形狀結(jié)構(gòu)不做限定,本領(lǐng)域技術(shù)人員可以根據(jù)具體的設(shè)計(jì)需求進(jìn)行設(shè)置;另外,本實(shí)施例中接收模塊4所實(shí)現(xiàn)操作步驟的具體實(shí)現(xiàn)過(guò)程以及實(shí)現(xiàn)效果與上述實(shí)施例中步驟S201的實(shí)現(xiàn)過(guò)程以及實(shí)現(xiàn)效果相同,具體可參考上述陳述內(nèi)容,在此不再贅述。
顯示模塊5,用于根據(jù)查詢(xún)指令從MYSQL中查找與查詢(xún)時(shí)間相對(duì)應(yīng)的日志匯總信息,并顯示所查找到的日志匯總信息。
其中,對(duì)于顯示模塊5的具體形狀結(jié)構(gòu)不做限定,本領(lǐng)域技術(shù)人員可以根據(jù)具體的設(shè)計(jì)需求進(jìn)行設(shè)置,例如,可以將顯示模塊5設(shè)置為顯示器、智能終端顯示屏等;另外,本實(shí)施例中顯示模塊5所實(shí)現(xiàn)操作步驟的具體實(shí)現(xiàn)過(guò)程以及實(shí)現(xiàn)效果與上述實(shí)施例中步驟S202的實(shí)現(xiàn)過(guò)程以及實(shí)現(xiàn)效果相同,具體可參考上述陳述內(nèi)容,在此不再贅述。
通過(guò)上述查閱并顯示日志匯總信息的方式,可以方便用戶對(duì)日志匯總信息進(jìn)行查閱與管理,進(jìn)一步提高了該數(shù)據(jù)監(jiān)控裝置的實(shí)用性,有利于市場(chǎng)的推廣與應(yīng)用。
在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以?xún)蓚€(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。上述軟件功能單元存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤(pán)、移動(dòng)硬盤(pán)、只讀存儲(chǔ)器(Read-Only Memory,ROM)、隨機(jī)存取存儲(chǔ)器(Random Access Memory,RAM)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
本領(lǐng)域技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,僅以上述各功能模塊的劃分進(jìn)行舉例說(shuō)明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的裝置的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。