一種企業(yè)云應(yīng)用開發(fā)的監(jiān)控處理方法
【專利摘要】本發(fā)明公開了一種企業(yè)云應(yīng)用開發(fā)的監(jiān)控處理方法,其具體實(shí)現(xiàn)過程為:借助web服務(wù)器訪問日志,從開發(fā)人員的角度,提供了從監(jiān)控分析指標(biāo)的采集、接入分發(fā)、存儲(chǔ)、檢索分析全過程的解決方案,并針對(duì)開發(fā)監(jiān)控指標(biāo)提供了索引模板、離線分析算法。該一種企業(yè)云應(yīng)用開發(fā)的監(jiān)控處理方法與現(xiàn)有技術(shù)相比,解決在海量日志數(shù)據(jù)下開發(fā)人員難以多應(yīng)用采集、監(jiān)控分析發(fā)現(xiàn)web應(yīng)用開發(fā)中各資源異常的問題,實(shí)用性強(qiáng)。
【專利說明】一種企業(yè)云應(yīng)用開發(fā)的監(jiān)控處理方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及軟件開發(fā)【技術(shù)領(lǐng)域】,具體地說是實(shí)用性強(qiáng)、企業(yè)云應(yīng)用開發(fā)的監(jiān)控處 理方法。
【背景技術(shù)】
[0002] 對(duì)于軟件的運(yùn)維人員希望能夠及時(shí)的發(fā)現(xiàn)軟件中隱藏的問題,并將問題反饋給后 臺(tái)的研發(fā)人員,使問題得到解決。對(duì)于web應(yīng)用軟件開發(fā)者來說,針對(duì)反饋如何能夠在應(yīng)用 多,架構(gòu)復(fù)雜下有效的確定哪個(gè)應(yīng)用下的哪些資源響應(yīng)時(shí)間慢,哪些資源占用帶寬比較大 等問題變得非常的重要,因此在應(yīng)用上線前,如何開發(fā)提供一種既方便又快速地監(jiān)控分析 系統(tǒng)變得非常的關(guān)鍵,該系統(tǒng)除了實(shí)現(xiàn)監(jiān)控動(dòng)態(tài)資源(需要和后臺(tái)交互獲取業(yè)務(wù)數(shù)據(jù)的資 源)的響應(yīng)時(shí)間、響應(yīng)字節(jié)大小外,還可以離線分析用戶更傾向于使用哪種瀏覽器訪問、頁 面在瀏覽器上是否表現(xiàn)良好、是否有優(yōu)化的必要性,以便在后續(xù)開發(fā)中重點(diǎn)關(guān)注瀏覽器的 兼容性。
[0003] 在云應(yīng)用環(huán)境下,應(yīng)用繁多,用戶頻繁在應(yīng)用之間切換,頻繁訪問和操作應(yīng)用,在 這個(gè)過程中產(chǎn)生了大量的操作日志。傳統(tǒng)的離線分析方案是使用日志文件記錄數(shù)據(jù),然后 集中批量處理分析。這種方式對(duì)于實(shí)時(shí)性要求很高的數(shù)據(jù)不適合。基于此,現(xiàn)提供一種企業(yè) 云應(yīng)用開發(fā)的監(jiān)控處理方法,該方法通過可以量化的指標(biāo),給開發(fā)人員良好的指導(dǎo)和幫助。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的技術(shù)任務(wù)是針對(duì)以上不足之處,提供一種實(shí)用性強(qiáng)、企業(yè)云應(yīng)用開發(fā)的 監(jiān)控處理方法。
[0005] -種企業(yè)云應(yīng)用開發(fā)的監(jiān)控處理方法,其具體實(shí)現(xiàn)過程為: 一、 設(shè)置WEB服務(wù)器,該WEB服務(wù)器是所有請求的入口,該WEB服務(wù)器中包括以下信息: 請求資源的URL、上下文、請求資源的方式、請求發(fā)生時(shí)間、資源狀態(tài)、請求響應(yīng)時(shí)間、流量、 請求的客戶端ip和瀏覽器版本; 二、 采用日志收集系統(tǒng)進(jìn)行日志采集,并通過監(jiān)控文件源將這些數(shù)據(jù)實(shí)時(shí)寫入消息中 間件,該消息中間件采用集群一并作為日志信息緩沖和日志信息路由; 三、 設(shè)置集群二和集群三,其中集群二作為數(shù)據(jù)的存儲(chǔ)集群,集群三作為當(dāng)天的索引的 存儲(chǔ)和搜索引擎,該集群二和集群三從上述集群一訂閱數(shù)據(jù); 四、 啟動(dòng)Map/Reduce任務(wù),讀取集群二的文件,將分析好的數(shù)據(jù)存儲(chǔ)到MySQL中; 五、 通過集群三提供的客戶端實(shí)時(shí)搜索和分析,查看當(dāng)天請求URL狀態(tài)為404的資源有 哪些,響應(yīng)時(shí)間超長或者帶寬占用過大的請求資源有哪些,開發(fā)人員發(fā)現(xiàn)后及時(shí)修正。
[0006] 所述步驟三中的集群二和集群三的詳細(xì)設(shè)置過程為: 集群二訂閱的數(shù)據(jù)按天生成目錄,并以追加的方式將日志信息存入該集群文件中,文 件中包含所有操作信息,該操作信息包括靜態(tài)資源訪問信息和非靜態(tài)資源訪問信息,格式 與原始日志格式一致; 集群三訂閱的數(shù)據(jù),按天建索引,索引數(shù)據(jù)的生存時(shí)間為1天,按照日志的組織方式解 析日志,過濾靜態(tài)資源訪問信息,分析非靜態(tài)資源訪問信息并獲取每次訪問的web應(yīng)用地 址、URL、響應(yīng)時(shí)間、URL狀態(tài)、流量、訪問時(shí)間、發(fā)出請求的客戶端ip和瀏覽器版本信息,以 JSON格式寫入該集群三。
[0007] 所述集群三在訂閱數(shù)據(jù)后,預(yù)先定義模板,即指定web應(yīng)用上下文、URL、客戶端 ip、瀏覽器版本作為一個(gè)整體使用,響應(yīng)時(shí)間、流量采用數(shù)字型的數(shù)據(jù),訪問時(shí)間采用日期 型的數(shù)據(jù)。
[0008] 所述Map/Reduce任務(wù)中的Map函數(shù)按瀏覽器種類進(jìn)行分組,reduce函數(shù)請求求 和并計(jì)算瀏覽器種類的訪問次數(shù)。
[0009] 所述步驟四中啟動(dòng)Map/Reduce任務(wù)的詳細(xì)過程為:Map函數(shù)中,先根據(jù)請求資源 URL的后綴,過濾靜態(tài)資源,由web應(yīng)用上下文和動(dòng)態(tài)資源URL組成該函數(shù)中Mapper類輸出 的key,由響應(yīng)時(shí)間、流量、訪問時(shí)間組成value函數(shù);Reducer函數(shù)中,按照同一 web應(yīng)用下 的URL分組,統(tǒng)計(jì)出每個(gè)URL在當(dāng)天的訪問次數(shù)、平均響應(yīng)時(shí)間、最大響應(yīng)時(shí)間、平均流量, ruduce函數(shù)輸出信息到MySQL。
[0010] 本發(fā)明的一種企業(yè)云應(yīng)用開發(fā)的監(jiān)控處理方法,具有以下優(yōu)點(diǎn): 該發(fā)明的一種企業(yè)云應(yīng)用開發(fā)的監(jiān)控處理方法針對(duì)web應(yīng)用訪問日志,從開發(fā)人員的 角度,提供了從監(jiān)控分析指標(biāo)的采集、接入分發(fā)、存儲(chǔ)、檢索分析全過程的解決方案,做到不 侵入web應(yīng)用系統(tǒng),實(shí)時(shí)監(jiān)控、離線分析等特點(diǎn),該技術(shù)架構(gòu)對(duì)于凡是涉及日志的業(yè)務(wù),都 可以普遍適用,實(shí)用性強(qiáng),適用范圍廣泛,易于推廣。
【專利附圖】
【附圖說明】
[0011] 附圖1為本發(fā)明的實(shí)現(xiàn)示意圖。
【具體實(shí)施方式】
[0012] 下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。
[0013] 本發(fā)明的提供一種企業(yè)云應(yīng)用開發(fā)的監(jiān)控處理方法,本方法提供了面向企業(yè)云應(yīng) 用開發(fā)對(duì)從web服務(wù)器日志監(jiān)控分析指標(biāo)的采集、接入分發(fā)、存儲(chǔ)、檢索分析全過程的解決 方案,并針對(duì)開發(fā)監(jiān)控指標(biāo)提供了索引模板、離線分析算法等,如附圖1所示,該方法的具 體實(shí)現(xiàn)過程為 : 一、 在云應(yīng)用部署架構(gòu)中,設(shè)置WEB服務(wù)器,該WEB服務(wù)器是所有請求的入口,該WEB服 務(wù)器中可以獲得很多信息:請求資源的URL、上下文、請求資源的方式(GET/P0ST)、請求發(fā) 生時(shí)間、資源狀態(tài)、請求響應(yīng)時(shí)間、流量、請求的客戶端ip和瀏覽器版本等,這些又恰恰是 開發(fā)人員比較關(guān)注的信息,因此本專利以web服務(wù)器產(chǎn)生的訪問日志信息作為監(jiān)控分析數(shù) 據(jù)來源; 二、 采用日志收集系統(tǒng)進(jìn)行日志采集,并通過監(jiān)控文件源將這些數(shù)據(jù)實(shí)時(shí)寫入消息中 間件,該消息中間件采用集群一并作為日志信息緩沖和日志信息路由; 三、 設(shè)置集群二和集群三,其中集群二作為數(shù)據(jù)的存儲(chǔ)集群,集群三作為當(dāng)天的索引的 存儲(chǔ)和搜索引擎,該集群二和集群三從上述集群一訂閱數(shù)據(jù); 四、 啟動(dòng)Map/Reduce任務(wù),讀取集群二的文件,將分析好的數(shù)據(jù)存儲(chǔ)到MySQL中; 五、通過集群三提供的客戶端實(shí)時(shí)搜索和分析,查看當(dāng)天請求URL狀態(tài)為404的資源有 哪些,響應(yīng)時(shí)間超長或者帶寬占用過大的請求資源有哪些,開發(fā)人員發(fā)現(xiàn)后及時(shí)修正。
[0014] 所述步驟三中的集群二和集群三的詳細(xì)設(shè)置過程為: 集群二訂閱的數(shù)據(jù)按天生成目錄,并以追加的方式將日志信息存入該集群文件中,文 件中包含所有操作信息,該操作信息包括靜態(tài)資源訪問信息和非靜態(tài)資源訪問信息,格式 與原始日志格式一致; 集群三訂閱的數(shù)據(jù),按天建索引,索引數(shù)據(jù)的生存時(shí)間為1天,按照日志的組織方式解 析日志,過濾靜態(tài)資源訪問信息,分析非靜態(tài)資源訪問信息并獲取每次訪問的web應(yīng)用地 址、URL、響應(yīng)時(shí)間、URL狀態(tài)、流量、訪問時(shí)間、發(fā)出請求的客戶端ip和瀏覽器版本信息,以 JS0N格式寫入該集群三。
[0015] 所述集群三在訂閱數(shù)據(jù)后,預(yù)先定義模板,即指定web應(yīng)用上下文、URL、客戶端 ip、瀏覽器版本作為一個(gè)整體使用,響應(yīng)時(shí)間、流量采用數(shù)字型的數(shù)據(jù),訪問時(shí)間采用日期 型的數(shù)據(jù)。
[0016] 所述Map/Reduce任務(wù)中的Map函數(shù)按瀏覽器種類進(jìn)行分組,reduce函數(shù)請求求 和并計(jì)算瀏覽器種類的訪問次數(shù)。
[0017] 所述步驟四中啟動(dòng)Map/Reduce任務(wù)的詳細(xì)過程為:Map函數(shù)中,先根據(jù)請求資源 URL的后綴,過濾靜態(tài)資源,由web應(yīng)用上下文和動(dòng)態(tài)資源URL組成該函數(shù)中Mapper類輸出 的key,由響應(yīng)時(shí)間、流量、訪問時(shí)間組成value函數(shù);Reducer函數(shù)中,按照同一 web應(yīng)用下 的URL分組,統(tǒng)計(jì)出每個(gè)URL在當(dāng)天的訪問次數(shù)、平均響應(yīng)時(shí)間、最大響應(yīng)時(shí)間、平均流量, ruduce函數(shù)輸出信息到MySQL。
[0018] 實(shí)施例: 為了達(dá)到實(shí)時(shí)監(jiān)控的目標(biāo),需要實(shí)時(shí)輪播查看web服務(wù)器產(chǎn)生的access, log日志文 件,標(biāo)識(shí)哪些記錄已處理,哪些記錄是新增記錄。本發(fā)明采用Apache flume作為日志采 集,采用監(jiān)控文件源模式將這些數(shù)據(jù)實(shí)時(shí)寫入消息中間件,在這里之所以選擇消息中間件 的理由主要有三,其一為了做日志信息緩沖,其二為了做日志信息路由,正如背景中提到的 日志信息既有實(shí)時(shí)檢索,又有離線分析,其三是分布式、水平可擴(kuò)展的,最終選擇了 Apache Kafka集群存儲(chǔ)該消息中間件。
[0019] 考慮到企業(yè)中應(yīng)用系統(tǒng)多,業(yè)務(wù)頻次高的情況下,數(shù)據(jù)量較大,未來數(shù)據(jù)增長較快 以及數(shù)據(jù)的可靠容錯(cuò)性上,采用Apache hadoop集群作為基礎(chǔ)數(shù)據(jù)的存儲(chǔ)系統(tǒng)。考慮到實(shí) 時(shí)搜索監(jiān)控、索引的數(shù)據(jù)容錯(cuò)上以及后續(xù)根據(jù)負(fù)載水平擴(kuò)展上,選擇采用分布式實(shí)時(shí)搜索 引擎elasticsearch集群作為當(dāng)天的索引的存儲(chǔ)和搜索引擎。hdfs和elasticsearch從 Apache kafka訂閱數(shù)據(jù),其中hdfs訂閱的數(shù)據(jù),按天生成目錄,以追加的方式將日志信息 寫入hdfs文件,文件中包含所有的操作信息(包括靜態(tài)資源訪問信息和非靜態(tài)資源訪問信 息),格式和原始日志格式一致;elasticsaerch訂閱的數(shù)據(jù),按天建索引,索引數(shù)據(jù)的生存 時(shí)間為1天(TTL=ld),按照日志的組織方式解析日志,過濾靜態(tài)資源訪問信息,分析非靜態(tài) 資源訪問信息并獲取每次訪問的web應(yīng)用地址、URL、響應(yīng)時(shí)間、URL狀態(tài)、流量、訪問時(shí)間、 發(fā)出請求的客戶端ip和瀏覽器版本等信息,以JS0N格式寫入elasticsearch。因?yàn)閣eb應(yīng) 用地址、URL等信息是一個(gè)完整的整體,為保證這些信息能作為一個(gè)完整的項(xiàng)被搜索,預(yù)先 定義模板,指定web應(yīng)用上下文、URL、客戶端ip、瀏覽器版本等不能被分詞(搜索時(shí)只能作 為一個(gè)整體),響應(yīng)時(shí)間、流量是數(shù)字型的數(shù)據(jù),訪問時(shí)間是日期型的數(shù)據(jù)。模板結(jié)構(gòu)為: {〃template_l〃 : { ''template" : 〃氺〃, ''mappings" : { 〃_default_〃:{ ''properties" : { 〃@fields〃: { ''properties" : { ''timestamp" : { type : string }, ''hostname" : { type : string }, ''filename" : { type : string } } }, 〃appdContext〃 : { type : string }, 〃@timestamp〃 : { "format" : 〃dateOptionalTime〃, type : date }, "◎message" : { type : string }, "req-url" : { index : not_ana_Lyzed, //, " // , " type : string }, ''status" : { type : string }, source-ip : { type : string }, ''request" : { index : not_ana_Lyzed, //, " // , " type : string }, 〃user_agent〃 : { index : not_ana_Lyzed, //, " // , " type : string }, ''body-bytes_sent〃 : { type : long }, 〃request_time〃 : { 〃type〃 : ''double" } } } }} }〇
[0020] 為分析動(dòng)態(tài)資源響應(yīng)時(shí)間、帶寬的趨勢變化以及瀏覽器使用情況,需要啟動(dòng)Map/ Reduce任務(wù),讀取hdfs文件,并將分析好的數(shù)據(jù)存儲(chǔ)到MySQL中,方便查詢。針對(duì)動(dòng)態(tài)資 源響應(yīng)時(shí)間、帶寬趨勢變化,采用按天讀取hdfs文件,即每晚的23點(diǎn)59分啟動(dòng)任務(wù),具體 的實(shí)現(xiàn)為:在Map函數(shù)中,先根據(jù)請求資源URL的后綴,過濾諸如js、css、jpg等靜態(tài)資源, Mapper輸出的key由web應(yīng)用上下文和動(dòng)態(tài)資源URL組成,value由響應(yīng)時(shí)間、流量、訪問 時(shí)間等組成;Reducer函數(shù)中,按照同一 web應(yīng)用下的URL分組,統(tǒng)計(jì)出每個(gè)URL在當(dāng)天的 訪問次數(shù)、平均響應(yīng)時(shí)間、最大響應(yīng)時(shí)間、平均流量等,ruduce函數(shù)輸出信息到MySQL。針對(duì) 瀏覽器的使用情況,可以按周、月啟動(dòng)任務(wù),讀取hdfs文件,Map函數(shù)主要實(shí)現(xiàn)按瀏覽器種 類進(jìn)行分組,reduce函數(shù)主要是請求求和,計(jì)算該瀏覽器種類的訪問次數(shù)。
[0021] 上述【具體實(shí)施方式】僅是本發(fā)明的具體個(gè)案,本發(fā)明的專利保護(hù)范圍包括但不限于 上述【具體實(shí)施方式】,任何符合本發(fā)明的一種企業(yè)云應(yīng)用開發(fā)的監(jiān)控處理方法的權(quán)利要求書 的且任何所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員對(duì)其所做的適當(dāng)變化或替換,皆應(yīng)落入本發(fā)明的專 利保護(hù)范圍。
【權(quán)利要求】
1. 一種企業(yè)云應(yīng)用開發(fā)的監(jiān)控處理方法,其特征在于其具體實(shí)現(xiàn)過程為: 一、 設(shè)置WEB服務(wù)器,該WEB服務(wù)器是所有請求的入口,該WEB服務(wù)器中包括以下信息: 請求資源的URL、上下文、請求資源的方式、請求發(fā)生時(shí)間、資源狀態(tài)、請求響應(yīng)時(shí)間、流量、 請求的客戶端ip和瀏覽器版本; 二、 采用日志收集系統(tǒng)進(jìn)行日志采集,并通過監(jiān)控文件源將這些數(shù)據(jù)實(shí)時(shí)寫入消息中 間件,該消息中間件采用集群一并作為日志信息緩沖和日志信息路由; 三、 設(shè)置集群二和集群三,其中集群二作為數(shù)據(jù)的存儲(chǔ)集群,集群三作為當(dāng)天的索引的 存儲(chǔ)和搜索引擎,該集群二和集群三從上述集群一訂閱數(shù)據(jù); 四、 啟動(dòng)Map/Reduce任務(wù),讀取集群二的文件,將分析好的數(shù)據(jù)存儲(chǔ)到MySQL中; 五、 通過集群三提供的客戶端實(shí)時(shí)搜索和分析,查看當(dāng)天請求URL狀態(tài)為404的資源有 哪些,響應(yīng)時(shí)間超長或者帶寬占用過大的請求資源有哪些,開發(fā)人員發(fā)現(xiàn)后及時(shí)修正。
2. 根據(jù)權(quán)利要求1所述的一種企業(yè)云應(yīng)用開發(fā)的監(jiān)控處理方法,其特征在于:所述步 驟三中的集群二和集群三的詳細(xì)設(shè)置過程為: 集群二訂閱的數(shù)據(jù)按天生成目錄,并以追加的方式將日志信息存入該集群文件中,文 件中包含所有操作信息,該操作信息包括靜態(tài)資源訪問信息和非靜態(tài)資源訪問信息,格式 與原始日志格式一致; 集群三訂閱的數(shù)據(jù),按天建索引,索引數(shù)據(jù)的生存時(shí)間為1天,按照日志的組織方式解 析日志,過濾靜態(tài)資源訪問信息,分析非靜態(tài)資源訪問信息并獲取每次訪問的web應(yīng)用地 址、URL、響應(yīng)時(shí)間、URL狀態(tài)、流量、訪問時(shí)間、發(fā)出請求的客戶端ip和瀏覽器版本信息,以 JSON格式寫入該集群三。
3. 根據(jù)權(quán)利要求2所述的一種企業(yè)云應(yīng)用開發(fā)的監(jiān)控處理方法,其特征在于:所述集 群三在訂閱數(shù)據(jù)后,預(yù)先定義模板,即指定web應(yīng)用上下文、URL、客戶端ip、瀏覽器版本作 為一個(gè)整體使用,響應(yīng)時(shí)間、流量采用數(shù)字型的數(shù)據(jù),訪問時(shí)間采用日期型的數(shù)據(jù)。
4. 根據(jù)權(quán)利要求1所述的一種企業(yè)云應(yīng)用開發(fā)的監(jiān)控處理方法,其特征在于:所述 Map/Reduce任務(wù)中的Map函數(shù)按瀏覽器種類進(jìn)行分組,reduce函數(shù)請求求和并計(jì)算瀏覽器 種類的訪問次數(shù)。
5. 根據(jù)權(quán)利要求4所述的一種企業(yè)云應(yīng)用開發(fā)的監(jiān)控處理方法,其特征在于:所述步 驟四中啟動(dòng)Map/Reduce任務(wù)的詳細(xì)過程為:Map函數(shù)中,先根據(jù)請求資源URL的后綴,過濾 靜態(tài)資源,由web應(yīng)用上下文和動(dòng)態(tài)資源URL組成該函數(shù)中Mapper類輸出的key,由響應(yīng)時(shí) 間、流量、訪問時(shí)間組成value函數(shù);Reducer函數(shù)中,按照同一 web應(yīng)用下的URL分組,統(tǒng) 計(jì)出每個(gè)URL在當(dāng)天的訪問次數(shù)、平均響應(yīng)時(shí)間、最大響應(yīng)時(shí)間、平均流量,ruduce函數(shù)輸 出信息到MySQL。
【文檔編號(hào)】H04L29/08GK104113605SQ201410368198
【公開日】2014年10月22日 申請日期:2014年7月30日 優(yōu)先權(quán)日:2014年7月30日
【發(fā)明者】周慶勇, 陳娟妮 申請人:浪潮軟件股份有限公司