欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

監(jiān)控應(yīng)用日志的方法及系統(tǒng)的制作方法

文檔序號(hào):7864066閱讀:196來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):監(jiān)控應(yīng)用日志的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及監(jiān)控技術(shù),尤其涉及一種監(jiān)控應(yīng)用日志的方法及系統(tǒng)。
背景技術(shù)
隨著互聯(lián)網(wǎng)用戶(hù)的不斷增加,大型的網(wǎng)站一般會(huì)采用多臺(tái)相同角色的應(yīng)用服務(wù)器,組成分布式網(wǎng)絡(luò)系統(tǒng),從而在用戶(hù)訪(fǎng)問(wèn)網(wǎng)站時(shí),各應(yīng)用服務(wù)器能夠較為均衡地接入用戶(hù),從而實(shí)現(xiàn)分布式網(wǎng)絡(luò)系統(tǒng)的負(fù)載均衡。
在現(xiàn)有分布式網(wǎng)絡(luò)系統(tǒng)中,為了保障網(wǎng)站的正常運(yùn)行,需要對(duì)網(wǎng)站的可用性進(jìn)行監(jiān)控。網(wǎng)站的可用性包括各應(yīng)用服務(wù)器系統(tǒng)層面的可用性以及應(yīng)用服務(wù)器提供的網(wǎng)頁(yè)頁(yè)面應(yīng)用內(nèi)容的可用性,其中,對(duì)于系統(tǒng)層面的可用性,現(xiàn)有技術(shù)的監(jiān)控比較完善,例如,可以針對(duì)負(fù)載、網(wǎng)絡(luò)帶寬、CPU、10、內(nèi)存等基礎(chǔ)數(shù)據(jù)提供完善的監(jiān)控。而對(duì)于應(yīng)用內(nèi)容的可用性監(jiān)控比較復(fù)雜,具體來(lái)說(shuō),一方面,應(yīng)用內(nèi)容錯(cuò)誤并不一定導(dǎo)致系統(tǒng)層面的錯(cuò)誤,另一方面,應(yīng)用內(nèi)容錯(cuò)誤直接與用戶(hù)獲取信息的準(zhǔn)確度相關(guān),而應(yīng)用內(nèi)容的異常情況多種多樣,例如,應(yīng)用程序部分異常,會(huì)降低網(wǎng)頁(yè)展示的應(yīng)用內(nèi)容的準(zhǔn)確性,舉例來(lái)說(shuō),假設(shè)網(wǎng)頁(yè)頁(yè)面由于代碼新上線(xiàn)問(wèn)題或數(shù)據(jù)庫(kù)連接失敗,這樣,導(dǎo)致網(wǎng)頁(yè)頁(yè)面原本應(yīng)該展示應(yīng)用內(nèi)容A,由于異常,無(wú)法正常展示應(yīng)用內(nèi)容A,使得該網(wǎng)頁(yè)頁(yè)面展示的應(yīng)用內(nèi)容是錯(cuò)誤的,或者是不全的。
為了及時(shí)處理應(yīng)用服務(wù)器由于應(yīng)用程序出現(xiàn)的應(yīng)用內(nèi)容錯(cuò)誤,現(xiàn)有技術(shù)提出了通過(guò)監(jiān)控應(yīng)用日志的方法來(lái)監(jiān)控應(yīng)用程序的運(yùn)行狀態(tài),其中,應(yīng)用日志是指應(yīng)用程序(動(dòng)態(tài)網(wǎng)頁(yè)頁(yè)面)在運(yùn)行時(shí)的狀態(tài)日志。例如,動(dòng)態(tài)網(wǎng)頁(yè)頁(yè)面A具有三個(gè)應(yīng)用程序LI L3,其中,LI 需要連接數(shù)據(jù)庫(kù),如果LI連接數(shù)據(jù)庫(kù)成功,則應(yīng)用服務(wù)器記錄一條包含數(shù)據(jù)庫(kù)連接成功信息的應(yīng)用日志;否則,記錄一條包含數(shù)據(jù)庫(kù)連接失敗信息的應(yīng)用日志,并定期地將記錄的應(yīng)用日志文件上傳至監(jiān)控服務(wù)器。相關(guān)技術(shù)維護(hù)人員定期通過(guò)調(diào)用監(jiān)控服務(wù)器存儲(chǔ)的應(yīng)用日志文件,獲取應(yīng)用日志,可以分析應(yīng)用程序執(zhí)行狀態(tài),有利于開(kāi)發(fā)人員進(jìn)行測(cè)試和調(diào)試。
由上述可見(jiàn),現(xiàn)有監(jiān)控應(yīng)用日志的方法,是定期的將應(yīng)用日志文件,通過(guò)遠(yuǎn)程同步 (rsync, remote sync)或文件傳輸協(xié)議(FTP, File Transfer Protocol)的方式上傳到遠(yuǎn)程監(jiān)控服務(wù)器,再由相關(guān)技術(shù)維護(hù)人員定期從監(jiān)控服務(wù)器獲取應(yīng)用日志文件進(jìn)行分析,使得不能夠及時(shí)修復(fù)應(yīng)用程序,應(yīng)用日志的實(shí)時(shí)性處理較差,不能滿(mǎn)足對(duì)應(yīng)用日志監(jiān)控實(shí)時(shí)性上的要求,應(yīng)用日志監(jiān)控效率較低。發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種監(jiān)控應(yīng)用日志的方法,提高應(yīng)用日志的監(jiān)控效率,提升處理應(yīng)用日志的實(shí)時(shí)性。
本發(fā)明的實(shí)施例還提供一種監(jiān)控應(yīng)用日志的系統(tǒng),提高應(yīng)用日志的監(jiān)控效率,提升處理應(yīng)用日志的實(shí)時(shí)性。
為達(dá)到上述目的,本發(fā)明實(shí)施例提供的一種監(jiān)控應(yīng)用日志的方法,包括
應(yīng)用服務(wù)器捕獲運(yùn)行的應(yīng)用程序異常時(shí)的錯(cuò)誤信息;
對(duì)所述錯(cuò)誤信息進(jìn)行預(yù)處理,生成應(yīng)用日志,將所述應(yīng)用日志通過(guò)Scribe接口輸出至監(jiān)控服務(wù)器;
監(jiān)控服務(wù)器通過(guò)Scribe接口接收應(yīng)用日志,進(jìn)行分類(lèi)存儲(chǔ);
按照預(yù)先設(shè)置的分類(lèi)錯(cuò)誤類(lèi)型讀取存儲(chǔ)的應(yīng)用日志,獲取錯(cuò)誤信息;
在判斷獲取的錯(cuò)誤信息滿(mǎn)足預(yù)先設(shè)置的告警策略,將獲取的錯(cuò)誤信息向預(yù)先設(shè)置的目標(biāo)用戶(hù)發(fā)送。
其中,所述捕獲運(yùn)行的應(yīng)用程序異常時(shí)的錯(cuò)誤信息包括
通過(guò)應(yīng)用程序的調(diào)用函數(shù)得到返回值、應(yīng)用程序進(jìn)行流程分支的邏輯判斷以及 PHP腳本語(yǔ)言的錯(cuò)誤捕獲函數(shù)來(lái)獲取應(yīng)用程序異常時(shí)的錯(cuò)誤信息。
其中,在對(duì)所述錯(cuò)誤信息進(jìn)行預(yù)處理后,生成應(yīng)用日志之前,該方法進(jìn)一步包括
對(duì)預(yù)處理后的信息進(jìn)行base64編碼。
其中,在生成應(yīng)用日志后,將所述應(yīng)用日志通過(guò)Scribe接口輸出至監(jiān)控服務(wù)器之前,該方法進(jìn)一步包括
在生成的應(yīng)用日志中增加發(fā)生錯(cuò)誤的應(yīng)用服務(wù)器時(shí)間、發(fā)生錯(cuò)誤的應(yīng)用程序名、 發(fā)生錯(cuò)誤的應(yīng)用服務(wù)器IP地址、代碼段位置以及錯(cuò)誤類(lèi)型信息。
其中,所述方法進(jìn)一步包括
監(jiān)測(cè)系統(tǒng),當(dāng)系統(tǒng)發(fā)生異常時(shí),觸發(fā)Scribe接口自動(dòng)將應(yīng)用日志保存在本地磁盤(pán),在檢測(cè)到系統(tǒng)通信恢復(fù)后,將保存在本地磁盤(pán)的應(yīng)用日志進(jìn)行推送。
其中,在讀取存儲(chǔ)的應(yīng)用日志后,該方法進(jìn)一步包括
對(duì)分類(lèi)存儲(chǔ)的該讀取的應(yīng)用日志中設(shè)置已讀標(biāo)識(shí)。
其中,所述告警策略為報(bào)警錯(cuò)誤數(shù)閾值、和/或,報(bào)警頻率閾值,如果預(yù)設(shè)時(shí)間內(nèi)接收的應(yīng)用服務(wù)器的錯(cuò)誤信息數(shù)超過(guò)報(bào)警錯(cuò)誤數(shù)閾值、和/或,距離上次發(fā)送報(bào)警信息的時(shí)間超過(guò)報(bào)警頻率閾值,則滿(mǎn)足預(yù)先設(shè)置的告警策略。
其中,所述向預(yù)先設(shè)置的目標(biāo)用戶(hù)發(fā)送包括
調(diào)用預(yù)先設(shè)置的短信服務(wù)接口或郵箱服務(wù)接口,通過(guò)短信服務(wù)接口或郵箱服務(wù)接口向目標(biāo)用戶(hù)發(fā)送用于報(bào)警的錯(cuò)誤信息。
其中,所述短信服務(wù)接口采用短消息接入應(yīng)用編程接口,郵箱服務(wù)接口采用簡(jiǎn)單郵件傳送協(xié)議接口。
一種監(jiān)控應(yīng)用日志的系統(tǒng),該系統(tǒng)包括應(yīng)用服務(wù)器以及監(jiān)控服務(wù)器,其中,
應(yīng)用服務(wù)器,用于捕獲運(yùn)行的應(yīng)用程序異常時(shí)的錯(cuò)誤信息,進(jìn)行預(yù)處理,生成應(yīng)用日志;將應(yīng)用日志通過(guò)Scribe接口輸出至監(jiān)控服務(wù)器;
監(jiān)控服務(wù)器,用于通過(guò)Scribe接口接收應(yīng)用日志,進(jìn)行分類(lèi)存儲(chǔ);按照預(yù)先設(shè)置的分類(lèi)錯(cuò)誤類(lèi)型讀取存儲(chǔ)的應(yīng)用日志,獲取錯(cuò)誤信息,在判斷獲取的錯(cuò)誤信息滿(mǎn)足預(yù)先設(shè)置的告警策略,將獲取的錯(cuò)誤信息向預(yù)先設(shè)置的目標(biāo)用戶(hù)發(fā)送。
較佳地,所述應(yīng)用服務(wù)器包括異常捕獲模塊以及應(yīng)用日志發(fā)送模塊,其中,
異常捕獲模塊,用于捕獲運(yùn)行的應(yīng)用程序異常時(shí)的錯(cuò)誤信息,進(jìn)行預(yù)處理,生成應(yīng)用日志,輸出至應(yīng)用日志發(fā)送模塊;
應(yīng)用日志發(fā)送模塊,用于將接收的應(yīng)用日志通過(guò)Scribe接口輸出至監(jiān)控服務(wù)器。
較佳地,所述應(yīng)用服務(wù)器進(jìn)一步包括
預(yù)處理模塊,用于在異常捕獲模塊生成的應(yīng)用日志中增加發(fā)生錯(cuò)誤的應(yīng)用服務(wù)器時(shí)間、發(fā)生錯(cuò)誤的應(yīng)用程序名、發(fā)生錯(cuò)誤的應(yīng)用服務(wù)器IP地址、代碼段位置以及錯(cuò)誤類(lèi)型信息,輸出至應(yīng)用日志發(fā)送模塊。
較佳地,所述應(yīng)用服務(wù)器進(jìn)一步包括
編碼模塊,用于對(duì)預(yù)處理模塊輸出的信息進(jìn)行base64編碼后并輸出至應(yīng)用日志發(fā)送模塊。
較佳地,所述應(yīng)用服務(wù)器進(jìn)一步包括
監(jiān)測(cè)模塊,用于監(jiān)測(cè)系統(tǒng),當(dāng)系統(tǒng)發(fā)生異常時(shí),觸發(fā)應(yīng)用日志發(fā)送模塊中的Scribe 接口自動(dòng)將應(yīng)用日志保存在本地磁盤(pán),在檢測(cè)到系統(tǒng)通信恢復(fù)后,將保存在本地磁盤(pán)的應(yīng)用日志進(jìn)行推送。
較佳地,所述監(jiān)控服務(wù)器包括應(yīng)用日志收集模塊、應(yīng)用日志分析模塊以及應(yīng)用日志報(bào)警模塊,其中,
日志收集模塊,用于用于通過(guò)Scribe接口接收應(yīng)用日志,進(jìn)行分類(lèi)存儲(chǔ);
應(yīng)用日志分析模塊,用于按照預(yù)先設(shè)置的分類(lèi)錯(cuò)誤類(lèi)型讀取存儲(chǔ)的應(yīng)用日志,獲取錯(cuò)誤信息,在判斷獲取的錯(cuò)誤信息滿(mǎn)足預(yù)先設(shè)置的告警策略,將獲取的錯(cuò)誤信息輸出至應(yīng)用日志報(bào)警模塊;
應(yīng)用日志報(bào)警模塊,用于將接收的錯(cuò)誤信息,向預(yù)先設(shè)置的目標(biāo)用戶(hù)發(fā)送。
由上述技術(shù)方案可見(jiàn),本發(fā)明實(shí)施例提供的一種監(jiān)控應(yīng)用日志的方法及系統(tǒng),應(yīng)用服務(wù)器捕獲運(yùn)行的應(yīng)用程序異常時(shí)的錯(cuò)誤信息;對(duì)所述錯(cuò)誤信息進(jìn)行預(yù)處理,生成應(yīng)用日志,將所述應(yīng)用日志通過(guò)Scribe接口輸出至監(jiān)控服務(wù)器;監(jiān)控服務(wù)器通過(guò)Scribe接口接收應(yīng)用日志,進(jìn)行分類(lèi)存儲(chǔ);按照預(yù)先設(shè)置的分類(lèi)錯(cuò)誤類(lèi)型讀取存儲(chǔ)的應(yīng)用日志,獲取錯(cuò)誤信息;在判斷獲取的錯(cuò)誤信息滿(mǎn)足預(yù)先設(shè)置的告警策略,將獲取的錯(cuò)誤信息向預(yù)先設(shè)置的目標(biāo)用戶(hù)發(fā)送。這樣,通過(guò)Scribe接口實(shí)時(shí)傳輸應(yīng)用日志,并根據(jù)預(yù)先設(shè)置的告警策略,在滿(mǎn)足告警策略時(shí),將應(yīng)用程序異常的應(yīng)用告警信息向預(yù)先設(shè)置的目標(biāo)用戶(hù)發(fā)送,使得目標(biāo)用戶(hù)可以及時(shí)獲取應(yīng)用程序異常信息,及時(shí)進(jìn)行處理,提高了應(yīng)用日志的監(jiān)控效率,提升了處理應(yīng)用日志的實(shí)時(shí)性,提高了網(wǎng)站運(yùn)營(yíng)的安全性。


為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,以下將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹。顯而易見(jiàn)地,以下描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員而言,還可以根據(jù)這些附圖所示實(shí)施例得到其它的實(shí)施例及其附圖。
圖I為本發(fā)明實(shí)施例監(jiān)控應(yīng)用日志的系統(tǒng)結(jié)構(gòu)示意圖。
圖2為本發(fā)明實(shí)施例監(jiān)控應(yīng)用日志的方法流程示意圖。
圖3為本發(fā)明實(shí)施例監(jiān)控應(yīng)用日志的方法具體流程示意圖。
具體實(shí)施方式
以下將結(jié)合附圖對(duì)本發(fā)明各實(shí)施例的技術(shù)方案進(jìn)行清楚、完整的描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所得到的所有其它實(shí)施例,都屬于本發(fā)明所保護(hù)的范圍。
現(xiàn)有監(jiān)控應(yīng)用日志的方法,應(yīng)用服務(wù)器記錄應(yīng)用日志,定期地將應(yīng)用日志文件通過(guò)rsync或FTP的方式上傳到遠(yuǎn)程監(jiān)控服務(wù)器,再由相關(guān)技術(shù)維護(hù)人員定期從監(jiān)控服務(wù)器獲取應(yīng)用日志文件進(jìn)行分析,從而無(wú)法實(shí)時(shí)、準(zhǔn)確地對(duì)應(yīng)用日志進(jìn)行處理,滿(mǎn)足應(yīng)用層面對(duì)報(bào)警監(jiān)控的實(shí)時(shí)性需求,使得應(yīng)用日志監(jiān)控效率較低。
LAMP (Linux-Apache-MySQL-PHP)網(wǎng)站系統(tǒng)是目前流行的Web框架系統(tǒng),該框架系統(tǒng)包括=Linux操作服務(wù)器、Apache網(wǎng)絡(luò)服務(wù)器、MySQL數(shù)據(jù)庫(kù)以及Perl、PHP或者Python編程語(yǔ)言服務(wù)器,LAMP由各自獨(dú)立的應(yīng)用程序構(gòu)成,具有較高的兼容度,共同組成一個(gè)強(qiáng)大的 Web應(yīng)用程序平臺(tái),并基于開(kāi)源軟件開(kāi)發(fā),使用高性能的操作系統(tǒng)、高性能的網(wǎng)絡(luò)服務(wù)器、高性能的數(shù)據(jù)庫(kù)以及高效率的編程語(yǔ)言等,具有Web資源豐富、輕量、快速開(kāi)發(fā)、跨平臺(tái)、高性能、通用等特點(diǎn)。
Scribe接口是Facebook開(kāi)源的日志收集程序接口,能夠從各種日志源,例如,各應(yīng)用服務(wù)器上收集應(yīng)用日志,并存儲(chǔ)到預(yù)先設(shè)定的遠(yuǎn)程監(jiān)控服務(wù)器上,以便于進(jìn)行集中統(tǒng)計(jì)分析處理,當(dāng)系統(tǒng)的網(wǎng)絡(luò)或者遠(yuǎn)程監(jiān)控服務(wù)器出現(xiàn)故障時(shí),Scribe可以將應(yīng)用日志轉(zhuǎn)存到本地或者預(yù)先設(shè)置的其它位置,當(dāng)網(wǎng)絡(luò)或者遠(yuǎn)程監(jiān)控服務(wù)器恢復(fù)后,再將轉(zhuǎn)存的應(yīng)用日志重新傳輸給遠(yuǎn)程監(jiān)控服務(wù)器。
本發(fā)明實(shí)施例中,考慮基于LAMP以及日志收集技術(shù)Scribe構(gòu)建監(jiān)控應(yīng)用日志的系統(tǒng),能夠?qū)?shí)時(shí)記錄的應(yīng)用日志通過(guò)Scribe接口上傳,并根據(jù)預(yù)先設(shè)置的告警策略,將應(yīng)用程序異常的應(yīng)用告警信息向預(yù)先設(shè)置的終端設(shè)備發(fā)送,使得終端設(shè)備持有者可以及時(shí)獲取應(yīng)用程序異常信息,及時(shí)進(jìn)行處理,提升應(yīng)用日志的監(jiān)控效率。
圖I為本發(fā)明實(shí)施例監(jiān)控應(yīng)用日志的系統(tǒng)結(jié)構(gòu)示意圖。參見(jiàn)圖I,該系統(tǒng)基于LAMP 網(wǎng)絡(luò)架構(gòu),包括應(yīng)用服務(wù)器以及監(jiān)控服務(wù)器,其中,
應(yīng)用服務(wù)器數(shù)量為一個(gè)或多個(gè),監(jiān)控服務(wù)器數(shù)量也可以為一個(gè)或多個(gè)。較佳地,應(yīng)用服務(wù)器數(shù)量為多個(gè),監(jiān)控服務(wù)器數(shù)量為一個(gè)。
應(yīng)用服務(wù)器,用于捕獲運(yùn)行的應(yīng)用程序異常時(shí)的錯(cuò)誤信息,進(jìn)行預(yù)處理,生成應(yīng)用日志;將應(yīng)用日志通過(guò)Scribe接口輸出至監(jiān)控服務(wù)器;
本發(fā)明實(shí)施例中,應(yīng)用服務(wù)器可以捕獲的應(yīng)用程序錯(cuò)誤信息包括資源訪(fǎng)問(wèn)失敗錯(cuò)誤、程序邏輯類(lèi)錯(cuò)誤以及程序語(yǔ)法類(lèi)錯(cuò)誤,其中,
資源訪(fǎng)問(wèn)失敗錯(cuò)誤包括數(shù)據(jù)庫(kù)連接失敗錯(cuò)誤、數(shù)據(jù)庫(kù)查詢(xún)內(nèi)容失敗錯(cuò)誤、API接口訪(fǎng)問(wèn)失敗錯(cuò)誤、Memcached等其他資源訪(fǎng)問(wèn)超時(shí)錯(cuò)誤或失敗錯(cuò)誤,該類(lèi)錯(cuò)誤均可以通過(guò)應(yīng)用程序的調(diào)用函數(shù)得到返回值,根據(jù)返回值可以確定具體的錯(cuò)誤。
程序邏輯類(lèi)錯(cuò)誤包括程序拋出異常錯(cuò)誤、程序流程沒(méi)有按照預(yù)定義的流程執(zhí)行, 進(jìn)入了錯(cuò)誤分支等錯(cuò)誤,該類(lèi)錯(cuò)誤可以通過(guò)應(yīng)用程序進(jìn)行流程分支的邏輯判斷,從而捕獲失敗的錯(cuò)誤信息。
程序語(yǔ)法類(lèi)錯(cuò)誤是超文本預(yù)處理語(yǔ)言(PHP, Hypertext Preprocessor)的致命錯(cuò)誤,如果出現(xiàn)程序語(yǔ)法錯(cuò)誤,將導(dǎo)致應(yīng)用服務(wù)器上所有的應(yīng)用程序都無(wú)法啟動(dòng)執(zhí)行,因而, 如果出現(xiàn)程序語(yǔ)法錯(cuò)誤問(wèn)題,將無(wú)法直接通過(guò)應(yīng)用程序記錄日志,這是由于在正常的應(yīng)用程序流程下,致命錯(cuò)誤發(fā)生在日志記錄之前,在接收到捕獲致命錯(cuò)誤的命令之前,應(yīng)用程序就已經(jīng)終止了,因此無(wú)法按照正常的邏輯來(lái)調(diào)用。本發(fā)明實(shí)施例中,通過(guò)使用PHP腳本語(yǔ)言的錯(cuò)誤捕獲函數(shù),例如,register shutdown function函數(shù)和error get last函數(shù),捕獲腳本警告錯(cuò)誤和致命錯(cuò)誤相關(guān)的信息。這樣,通過(guò)將致命錯(cuò)誤綁定到特殊錯(cuò)誤捕獲函數(shù)上, 從而使應(yīng)用程序可以繼續(xù)執(zhí)行處理。
關(guān)于通過(guò)應(yīng)用程序的調(diào)用函數(shù)得到返回值、通過(guò)應(yīng)用程序進(jìn)行流程分支的邏輯判斷以及通過(guò)使用PHP腳本語(yǔ)言的錯(cuò)誤捕獲函數(shù)得到錯(cuò)誤信息的詳細(xì)描述,具體可參見(jiàn)相關(guān)技術(shù)文獻(xiàn),在此不再贅述。
獲取到應(yīng)用服務(wù)器的錯(cuò)誤信息后,將應(yīng)用服務(wù)器的錯(cuò)誤信息進(jìn)行預(yù)處理,例如,增加發(fā)生錯(cuò)誤的應(yīng)用服務(wù)器時(shí)間、發(fā)生錯(cuò)誤的應(yīng)用程序名、發(fā)生錯(cuò)誤的應(yīng)用服務(wù)器IP地址、 代碼段位置、錯(cuò)誤類(lèi)型等,進(jìn)一步地,還可以添加自定義的錯(cuò)誤調(diào)試信息,從而進(jìn)行格式化的錯(cuò)誤信息拼裝。
舉例來(lái)說(shuō),經(jīng)過(guò)預(yù)處理后,格式化的錯(cuò)誤信息可以采用如下格式
2012-09-01 16:40:23 xxxx. com. cn-debug_fatal_error 10.xxx.xxx. xxx 203.208.xxx. XXX error_type E_ERR0R error_file xxx. php error_line :138 error_ info cannot use string offet as an array,,。
本發(fā)明實(shí)施例中,在獲取應(yīng)用日志后,由應(yīng)用程序調(diào)用Scribe接口,將包含格式化的錯(cuò)誤信息的應(yīng)用日志實(shí)時(shí)發(fā)送至監(jiān)控服務(wù)器。
實(shí)際應(yīng)用中,應(yīng)用服務(wù)器進(jìn)一步用于監(jiān)測(cè)系統(tǒng),當(dāng)系統(tǒng)發(fā)生異常時(shí),例如,通信網(wǎng)絡(luò)堵塞或故障,觸發(fā)Scribe接口自動(dòng)將應(yīng)用日志保存在本地磁盤(pán),在檢測(cè)到系統(tǒng)通信恢復(fù)后,將保存在本地磁盤(pán)的應(yīng)用日志進(jìn)行推送,以保證包含錯(cuò)誤信息的應(yīng)用日志不丟失,便于相關(guān)技術(shù)維護(hù)人員進(jìn)行分析。這樣,通過(guò)只記錄應(yīng)用程序異常時(shí)的應(yīng)用日志信息,可以有效減少傳輸所需的時(shí)間,同時(shí)也減少了監(jiān)控服務(wù)器解析應(yīng)用日志信息所需的時(shí)間。
進(jìn)一步地,為了進(jìn)一步減少傳輸?shù)臄?shù)據(jù)量,應(yīng)用服務(wù)器還可以對(duì)格式化的錯(cuò)誤信息(應(yīng)用日志)進(jìn)行編碼處理,例如,將錯(cuò)誤信息(ErrorMessage)進(jìn)行base64編碼,從而合并錯(cuò)誤信息。
在信息合并時(shí),相同的錯(cuò)誤信息(文本內(nèi)容)在base64編碼下,得到相同的結(jié)果。這樣,由于ErrorMessage是base64編碼,是可逆的編碼,合并后,在監(jiān)控服務(wù)器中,對(duì) ErrorMessage進(jìn)行解碼,可以得到錯(cuò)誤的原始信息。
舉例來(lái)說(shuō),經(jīng)過(guò)base64編碼后,生成的應(yīng)用日志可以為
“2012-08-29 01:13 :47”“diandi_weibo_error_curl”“dGltZW91dDpodHRw0i8vaS 5wbGF0Zm9ybS5zaW5hLmNvbS5jbi9ibG9ndjIvbGlrZWNoZWNr’*‘error msg Method GET URL http ://1. platform, sina. com. cn/blogv2/likecheck app_key=10000000&article_ ids=&user_ip=219. 128. 102. 18| |Param []| ApiTime :5.0010540485382| |strBytes bytes,,。
其中,
日志時(shí)間為2012-08-2901:13:47;
錯(cuò)誤分類(lèi)(類(lèi)型)為diandi_weibo-error_curl;
ErrorMessage 為dGltZW91dDpodHRw0i8vaS5wbGF0Zm9ybS5zaW5hLmNvbS5jbi9ib G9ndjIvbGlrZffNoZffNr ;
DebugMessage 為error msg Method GET| | URL http://1. platform, sina.com. cn/blogv2/likecheck app_key=10000000&article_ids=&user_ ip=219. 128. 102. 18| |Param []| ApiTime :5.0010540485382| |strBytes :bytes。
監(jiān)控服務(wù)器,用于通過(guò)Scribe接口接收應(yīng)用日志,進(jìn)行分類(lèi)存儲(chǔ);按照預(yù)先設(shè)置的分類(lèi)錯(cuò)誤類(lèi)型讀取存儲(chǔ)的應(yīng)用日志,獲取錯(cuò)誤信息,在判斷獲取的錯(cuò)誤信息滿(mǎn)足預(yù)先設(shè)置的告警策略,將獲取的錯(cuò)誤信息向預(yù)先設(shè)置的目標(biāo)用戶(hù)發(fā)送。
本發(fā)明實(shí)施例中,監(jiān)控服務(wù)器對(duì)應(yīng)用服務(wù)器發(fā)送來(lái)的應(yīng)用日志數(shù)據(jù),利用Scribe 接口進(jìn)行存儲(chǔ)。將接收的應(yīng)用日志信息,按照預(yù)先設(shè)置的分類(lèi)策略進(jìn)行分類(lèi),并以應(yīng)用日志文件的形式自動(dòng)存放到本地文件系統(tǒng)中。
實(shí)際應(yīng)用中,為避免應(yīng)用日志文件容量過(guò)大,可以設(shè)置應(yīng)用日志文件的大小,在當(dāng)前應(yīng)用日志文件中分類(lèi)形成的應(yīng)用日志容量超過(guò)預(yù)先設(shè)定的文件閾值時(shí),自動(dòng)生成下一個(gè)應(yīng)用日志文件,從而可以保證單個(gè)應(yīng)用日志文件不會(huì)太大,進(jìn)而影響分析的效率。這樣,按照接收的日志文件的順序進(jìn)行存儲(chǔ),每臺(tái)單獨(dú)的應(yīng)用服務(wù)器可以不再存儲(chǔ)實(shí)際的應(yīng)用日志數(shù)據(jù),而是將應(yīng)用日志通過(guò)消息格式封裝后,發(fā)送給監(jiān)控服務(wù)器。
本發(fā)明實(shí)施例中,將接收的應(yīng)用日志中包含的錯(cuò)誤信息分類(lèi)(錯(cuò)誤類(lèi)型)為致命錯(cuò)誤、警告錯(cuò)誤以及數(shù)據(jù)庫(kù)錯(cuò)誤。分別形成致命錯(cuò)誤日志文件、警告錯(cuò)誤日志文件以及數(shù)據(jù)庫(kù)錯(cuò)誤日志文件。
表I為針對(duì)不同錯(cuò)誤類(lèi)型生成的日志文件列表,其中,文件大小單位為KB。
表I
權(quán)利要求
1.一種監(jiān)控應(yīng)用日志的方法,包括 應(yīng)用服務(wù)器捕獲運(yùn)行的應(yīng)用程序異常時(shí)的錯(cuò)誤信息; 對(duì)所述錯(cuò)誤信息進(jìn)行預(yù)處理,生成應(yīng)用日志,將所述應(yīng)用日志通過(guò)Scribe接ロ輸出至監(jiān)控服務(wù)器; 監(jiān)控服務(wù)器通過(guò)Scribe接ロ接收應(yīng)用日志,進(jìn)行分類(lèi)存儲(chǔ); 按照預(yù)先設(shè)置的分類(lèi)錯(cuò)誤類(lèi)型讀取存儲(chǔ)的應(yīng)用日志,獲取錯(cuò)誤信息; 在判斷獲取的錯(cuò)誤信息滿(mǎn)足預(yù)先設(shè)置的告警策略,將獲取的錯(cuò)誤信息向預(yù)先設(shè)置的目標(biāo)用戶(hù)發(fā)送。
2.根據(jù)權(quán)利要求I所述的方法,其中,所述捕獲運(yùn)行的應(yīng)用程序異常時(shí)的錯(cuò)誤信息包括 通過(guò)應(yīng)用程序的調(diào)用函數(shù)得到返回值、應(yīng)用程序進(jìn)行流程分支的邏輯判斷以及PHP腳本語(yǔ)言的錯(cuò)誤捕獲函數(shù)來(lái)獲取應(yīng)用程序異常時(shí)的錯(cuò)誤信息。
3.根據(jù)權(quán)利要求I所述的方法,其中,在對(duì)所述錯(cuò)誤信息進(jìn)行預(yù)處理后,生成應(yīng)用日志之前,該方法進(jìn)ー步包括 對(duì)預(yù)處理后的信息進(jìn)行base64編碼。
4.根據(jù)權(quán)利要求I所述的方法,其中,在生成應(yīng)用日志后,將所述應(yīng)用日志通過(guò)Scribe接ロ輸出至監(jiān)控服務(wù)器之前,該方法進(jìn)ー步包括 在生成的應(yīng)用日志中増加發(fā)生錯(cuò)誤的應(yīng)用服務(wù)器時(shí)間、發(fā)生錯(cuò)誤的應(yīng)用程序名、發(fā)生錯(cuò)誤的應(yīng)用服務(wù)器IP地址、代碼段位置以及錯(cuò)誤類(lèi)型信息。
5.根據(jù)權(quán)利要求I至4任一項(xiàng)所述的方法,其中,所述方法進(jìn)ー步包括 監(jiān)測(cè)系統(tǒng),當(dāng)系統(tǒng)發(fā)生異常吋,觸發(fā)Scribe接ロ自動(dòng)將應(yīng)用日志保存在本地磁盤(pán),在檢測(cè)到系統(tǒng)通信恢復(fù)后,將保存在本地磁盤(pán)的應(yīng)用日志進(jìn)行推送。
6.根據(jù)權(quán)利要求5所述的方法,其中,在讀取存儲(chǔ)的應(yīng)用日志后,該方法進(jìn)ー步包括 對(duì)分類(lèi)存儲(chǔ)的該讀取的應(yīng)用日志中設(shè)置已讀標(biāo)識(shí)。
7.根據(jù)權(quán)利要求5所述的方法,其中,所述告警策略為報(bào)警錯(cuò)誤數(shù)閾值、和/或,報(bào)警頻率閾值,如果預(yù)設(shè)時(shí)間內(nèi)接收的應(yīng)用服務(wù)器的錯(cuò)誤信息數(shù)超過(guò)報(bào)警錯(cuò)誤數(shù)閾值、和/或,距離上次發(fā)送報(bào)警信息的時(shí)間超過(guò)報(bào)警頻率閾值,則滿(mǎn)足預(yù)先設(shè)置的告警策略。
8.根據(jù)權(quán)利要求7所述的方法,其中,所述向預(yù)先設(shè)置的目標(biāo)用戶(hù)發(fā)送包括 調(diào)用預(yù)先設(shè)置的短信服務(wù)接ロ或郵箱服務(wù)接ロ,通過(guò)短信服務(wù)接ロ或郵箱服務(wù)接ロ向目標(biāo)用戶(hù)發(fā)送用于報(bào)警的錯(cuò)誤信息。
9.根據(jù)權(quán)利要求8所述的方法,其中,所述短信服務(wù)接ロ采用短消息接入應(yīng)用編程接ロ,郵箱服務(wù)接ロ采用簡(jiǎn)單郵件傳送協(xié)議接ロ。
10.一種監(jiān)控應(yīng)用日志的系統(tǒng),其特征在干,該系統(tǒng)包括應(yīng)用服務(wù)器以及監(jiān)控服務(wù)器,其中, 應(yīng)用服務(wù)器,用于捕獲運(yùn)行的應(yīng)用程序異常時(shí)的錯(cuò)誤信息,進(jìn)行預(yù)處理,生成應(yīng)用日志;將應(yīng)用日志通過(guò)Scribe接ロ輸出至監(jiān)控服務(wù)器; 監(jiān)控服務(wù)器,用于通過(guò)Scribe接ロ接收應(yīng)用日志,進(jìn)行分類(lèi)存儲(chǔ);按照預(yù)先設(shè)置的分類(lèi)錯(cuò)誤類(lèi)型讀取存儲(chǔ)的應(yīng)用日志,獲取錯(cuò)誤信息,在判斷獲取的錯(cuò)誤信息滿(mǎn)足預(yù)先設(shè)置的告警策略,將獲取的錯(cuò)誤信息向預(yù)先設(shè)置的目標(biāo)用戶(hù)發(fā)送。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述應(yīng)用服務(wù)器包括異常捕獲模塊以及應(yīng)用日志發(fā)送模塊,其中, 異常捕獲模塊,用于捕獲運(yùn)行的應(yīng)用程序異常時(shí)的錯(cuò)誤信息,進(jìn)行預(yù)處理,生成應(yīng)用日志,輸出至應(yīng)用日志發(fā)送模塊; 應(yīng)用日志發(fā)送模塊,用于將接收的應(yīng)用日志通過(guò)Scribe接ロ輸出至監(jiān)控服務(wù)器。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述應(yīng)用服務(wù)器進(jìn)一歩包括 預(yù)處理模塊,用于在異常捕獲模塊生成的應(yīng)用日志中増加發(fā)生錯(cuò)誤的應(yīng)用服務(wù)器時(shí)間、發(fā)生錯(cuò)誤的應(yīng)用程序名、發(fā)生錯(cuò)誤的應(yīng)用服務(wù)器IP地址、代碼段位置以及錯(cuò)誤類(lèi)型信息,輸出至應(yīng)用日志發(fā)送模塊。
13.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述應(yīng)用服務(wù)器進(jìn)一歩包括 編碼模塊,用于對(duì)預(yù)處理模塊輸出的信息進(jìn)行base64編碼后并輸出至應(yīng)用日志發(fā)送模塊。
14.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述應(yīng)用服務(wù)器進(jìn)一歩包括 監(jiān)測(cè)模塊,用于監(jiān)測(cè)系統(tǒng),當(dāng)系統(tǒng)發(fā)生異常吋,觸發(fā)應(yīng)用日志發(fā)送模塊中的Scribe接ロ自動(dòng)將應(yīng)用日志保存在本地磁盤(pán),在檢測(cè)到系統(tǒng)通信恢復(fù)后,將保存在本地磁盤(pán)的應(yīng)用日志進(jìn)行推送。
15.根據(jù)權(quán)利要求10至14任一項(xiàng)所述的系統(tǒng),其特征在于,所述監(jiān)控服務(wù)器包括應(yīng)用日志收集模塊、應(yīng)用日志分析模塊以及應(yīng)用日志報(bào)警模塊,其中, 日志收集模塊,用于用于通過(guò)Scribe接ロ接收應(yīng)用日志,進(jìn)行分類(lèi)存儲(chǔ); 應(yīng)用日志分析模塊,用于按照預(yù)先設(shè)置的分類(lèi)錯(cuò)誤類(lèi)型讀取存儲(chǔ)的應(yīng)用日志,獲取錯(cuò)誤信息,在判斷獲取的錯(cuò)誤信息滿(mǎn)足預(yù)先設(shè)置的告警策略,將獲取的錯(cuò)誤信息輸出至應(yīng)用日志報(bào)警模塊; 應(yīng)用日志報(bào)警模塊,用于將接收的錯(cuò)誤信息,向預(yù)先設(shè)置的目標(biāo)用戶(hù)發(fā)送。
全文摘要
本發(fā)明公開(kāi)了一種監(jiān)控應(yīng)用日志的方法及系統(tǒng)。該方法包括應(yīng)用服務(wù)器捕獲運(yùn)行的應(yīng)用程序異常時(shí)的錯(cuò)誤信息;對(duì)所述錯(cuò)誤信息進(jìn)行預(yù)處理,生成應(yīng)用日志,將所述應(yīng)用日志通過(guò)Scribe接口輸出至監(jiān)控服務(wù)器;監(jiān)控服務(wù)器通過(guò)Scribe接口接收應(yīng)用日志,進(jìn)行分類(lèi)存儲(chǔ);按照預(yù)先設(shè)置的分類(lèi)錯(cuò)誤類(lèi)型讀取存儲(chǔ)的應(yīng)用日志,獲取錯(cuò)誤信息;在判斷獲取的錯(cuò)誤信息滿(mǎn)足預(yù)先設(shè)置的告警策略,將獲取的錯(cuò)誤信息向預(yù)先設(shè)置的目標(biāo)用戶(hù)發(fā)送。應(yīng)用本發(fā)明,可以提高應(yīng)用日志的監(jiān)控效率,提升處理應(yīng)用日志的實(shí)時(shí)性。
文檔編號(hào)H04L12/24GK102981943SQ20121042111
公開(kāi)日2013年3月20日 申請(qǐng)日期2012年10月29日 優(yōu)先權(quán)日2012年10月29日
發(fā)明者劉曉震 申請(qǐng)人:新浪技術(shù)(中國(guó))有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
崇仁县| 玛沁县| 上杭县| 白河县| 高雄县| 巴中市| 云林县| 宁国市| 衡南县| 大荔县| 龙南县| 会理县| 梓潼县| 岑溪市| 长沙县| 涿州市| 乌海市| 大足县| 麻城市| 芜湖市| 山西省| 剑阁县| 叙永县| 呈贡县| 新乐市| 徐州市| 济阳县| 瑞金市| 应城市| 上犹县| 陇南市| 江北区| 仙游县| 石景山区| 垦利县| 盐津县| 福清市| 福泉市| 会东县| 鱼台县| 永州市|