專利名稱:基于日志檢測的告警方法及系統的制作方法
技術領域:
本發明涉及通信領域,具體而言,尤其涉及一種基于日志檢測的告警方法及系統。
背景技術:
為了保證系統日志檢測結果的及時體現,現有的各業務和應用系統的運行狀態都需要監控,對于偏離正常狀態的情況要及時發出告警。常見技術手段是告警平臺制定告警接口,每個子系統或模塊自己檢測并產生告警,以約定接口傳遞告警信息給告警平臺。目前也存在通過分析日志來產生告警的技術方案,但是這些技術方案的往往存在一些不能同時檢測多個文件、不能適用于所有日志或告警發現機制不夠靈活等問題。現有技術的日志檢測告警方式無法同時檢測多個文件,且檢測方式通用性差,無法靈活拓展的問題,目前還沒有有效的解決方案。·
發明內容
本發明的主要目的在于提供一種基于日志檢測的告警方法及系統,以解決現有技術的的問題。為了實現上述目的,本發明的一方面,提供了一種基于日志檢測的告警方法。本發明的基于日志檢測的告警方法包括讀取日志檢測的配置數據,配置數據包括待檢測日志文件、正則表達式以及告警信息;根據配置數據對日志文件進行檢測,以生成檢測結果;根據檢測結果發出告警信息。進一步地,根據配置數據對日志文件進行檢測,以生成檢測結果包括讀取配置數據中的待檢測日志文件;在待檢測日志文件不為空的情況下,對待檢測文件進行檢測;在檢測到待檢測日志文件存在新增日志行的情況下,將新增日志行的內容與正則表達式進行匹配處理以獲取檢測結果。進一步地,根據檢測結果發出告警信息包括在檢測結果為新增日志行的內容與正則表達式匹配成功的情況下,發出告警信息。進一步地,在讀取配置數據中的待檢測日志文件之后,方法還包括將待檢測日志文件置為首個日志文件進行檢測;判斷待檢測日志文件是否為空,在待檢測日志文件為空的情況下,系統在預定的休眠時間之后,重新讀取并檢測待檢測日志文件。進一步地,在根據檢測結果發出告警信息之后,或者在檢測到待檢測日志文件不存在新增日志行的情況下,方法還包括將待檢測文件設置為下個日志文件,并判斷本次待檢測日志文件是最后一個日志文件,在待檢測日志文件為最后一個日志文件的情況下,將待檢測日志文件的標記設置為空。為了實現上述目的,本發明的另一個方面,提供了一種基于日志檢測的告警系統。本發明的基于日志檢測的告警系統包括配置模塊。用于讀取日志檢測的配置數據,配置數據包括待檢測日志文件、正則表達式以及告警信息;日志檢測模塊,用于根據配置數據對日志文件進行檢測,以生成檢測結果;告警接口模塊,用于根據檢測結果發出告
自
目 I R ο進一步地,日志檢測模塊包括讀取模塊,用于讀取配置數據中的待檢測日志文件;檢測模塊,用于在待檢測日志文件不為空的情況下,對待檢測文件進行檢測;匹配模塊,用于在檢測到待檢測日志文件存在新增日志行的情況下,將新增日志行的內容與正則表達式進行匹配處理以獲取檢測結果。進一步地,告警接口模塊包括告警模塊,用于在檢測結果為新增日志行的內容與正則表達式匹配成功的情況下,發出告警信息。 進一步地,系統還包括設置檢測模塊,用于將待檢測日志文件置為首個日志文件進行檢測;第一處理模塊,用于判斷待檢測日志文件是否為空,在待檢測日志文件為空的情況下,系統在預定的休眠時間之后,重新讀取并檢測待檢測日志文件。進一步地,系統還包括第二處理模塊,用于將待檢測文件設置為下個日志文件,并判斷本次待檢測日志文件是最后一個日志文件,在待檢測日志文件為最后一個日志文件的情況下,將待檢測日志文件的標記設置為空。通過本發明,采用讀取日志檢測的配置數據,配置數據包括待檢測日志文件、正則表達式以及告警信息;根據配置數據對日志文件進行檢測,以生成檢測結果;根據檢測結果發出告警信息,解決了現有技術的日志檢測告警方式無法同時檢測多個文件,且檢測方式通用性差,無法靈活拓展的問題,進而達到了實現統一的多業務告警機制,達到靈活簡單、可擴展性強、適用面廣的效果。
此處所說明的附圖用來提供對本發明的進一步理解,構成本發明的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中圖I是根據本發明實施例的基于日志檢測的告警系統的結構示意圖;圖2是根據本發明實施例的基于日志檢測的告警方法的流程圖;以及圖3是根據本發明實施例的基于日志檢測的告警方法的詳細流程圖。
具體實施例方式為了使本發明所要解決的技術問題、技術方案及有益效果更加清楚、明白,以下結合附圖和實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。本發明提供了一種基于日志檢測的告警方法及系統。圖I是根據本發明實施例的基于日志檢測的告警系統的結構示意圖。如圖I所示,該系統包括配置模塊,日志檢測模塊以及告警接口模塊。其中,配置模塊。用于讀取日志檢測的配置數據,配置數據包括待檢測日志文件、正則表達式以及告警信息;日志檢測模塊,用于根據配置數據對日志文件進行檢測,以生成檢測結果;告警接口模塊,用于根據檢測結果發出告警信息。上述實施例描述了基于日志檢測的告警系統的組成結構,包括內部模塊的關系、系統對外的接口。有上述系統可知,系統由配置數據和一個程序組成。配置的形式可以是配置文件或者配置數據庫,它記錄了本系統所需的配置數據,包括被檢文件、正則表達式和告警信息。程序由三個模塊組成配置模塊主要負責配置數據的讀取;日志檢測模塊主要對各日志文件進行監控、讀取,發現新增行后將之與正則表達式進行匹配;告警接口模塊負責發送告警信息,對于日志行匹配成功時,產生告警,由該模塊發送到告警處理系統。該系統實現了統一的多業務告警機制,達到靈活簡單、可擴展性強、適用面廣的效果。具體的,上述實施例中的配置模塊可以提供本系統所需的所有配置,包括要檢測的目標日志文件(可多個),正則表達式(用于匹配日志行),告警信息(用于匹配成功時產生告警)。其中,日志文件配置配置提供要檢測的日志文件數量,以及每個日志文件的文件名。正則表達式配置正則表達式用于匹配日志行,適用性強,而且非常靈活。發現與正則表達式匹配的日志行就可以產生告警。如下面的日志行與正則表達式是匹配的,就 可以產生一條告警。正則表達式+\ [error\]. +healthcheck:upstream\ ((. +) \) statup- > down”。日志行“2011/03/08 11:56:53[error]14662#0:healthcheck:upstream(10. 46. 174. 2:8080) stat up- > down”。告警接口信息配置提供發送告警接口所需的信息,比如包括告警碼、告警原因、告警描述等信息。上述實施例中的日志檢測模塊可以包括讀取模塊,用于讀取配置數據中的待檢測日志文件;檢測模塊,用于在待檢測日志文件不為空的情況下,對待檢測文件進行檢測;匹配模塊,用于在檢測到待檢測日志文件存在新增日志行的情況下,將新增日志行的內容與正則表達式進行匹配處理以獲取檢測結果。該日志檢測模塊實現了責對日志文件進行檢測。上述實施例中的告警接口模塊可以包括告警模塊,用于在檢測結果為新增日志行的內容與正則表達式匹配成功的情況下,發出告警信息。該告警接口模塊實現了把日志檢測模塊產生的告警發送到外部告警處理系統。優選地,上述系統還可以包括設置檢測模塊,用于將待檢測日志文件置為首個日志文件進行檢測;第一處理模塊,用于判斷待檢測日志文件是否為空,在待檢測日志文件為空的情況下,系統在預定的休眠時間之后,重新讀取并檢測待檢測日志文件。優選地,上述實施例中的系統還可以包括第二處理模塊,用于將待檢測文件設置為下個日志文件,并判斷本次待檢測日志文件是最后一個日志文件,在待檢測日志文件為最后一個日志文件的情況下,將待檢測日志文件的標記設置為空。圖2是根據本發明實施例的基于日志檢測的告警方法的流程圖;以及圖3是根據本發明實施例的基于日志檢測的告警方法的詳細流程圖。如圖2所示,該基于日志檢測的告警方法包括如下步驟步驟S102.,通過圖I中的配置模塊來讀取日志檢測的配置數據,配置數據包括待檢測日志文件、正則表達式以及告警信息。步驟S104,通過圖I中的日志檢測模塊來執行根據配置數據對日志文件進行檢測,以生成檢測結果。步驟S106,通過圖I中的告警接口模塊來實現根據檢測結果發出告警信息。
上述實施例實現了系統在啟動后首先獲取配置信息,然后檢測每個文件,對于新增日志行,將其與設定的每個正則表達式進行匹配,匹配成功則應產生相應的已設定的告警。從而實現統一的多業務告警機制,達到靈活簡單、可擴展性強、適用面廣的效果。上述實施例中的根據配置數據對日志文件進行檢測,以生成檢測結果可以包括讀取配置數據中的待檢測日志文件;在待檢測日志文件不為空的情況下,對待檢測文件進行檢測;在檢測到待檢測日志文件存在新增日志行的情況下,將新增日志行的內容與正則表達式進行匹配處理以獲取檢測結果。上述實施例中的步驟根據檢測結果發出告警信息可以包括在檢測結果為新增日志行的內容與正則表達式匹配成功的情況下,發出告警信息。優選地,在讀取配置數據中的待檢測日志文件之后,方法還可以包括將待檢測日志文件置為首個日志文件進行檢測;判斷待檢測日志文件是否為空,在待檢測日志文件為空的情況下,系統在預定的休眠時間之后,重新讀取并檢測待檢測日志文件。
優選地,在根據檢測結果發出告警信息之后,或者在檢測到待檢測日志文件不存在新增日志行的情況下,方法還可以包括將待檢測文件設置為下個日志文件,并判斷本次待檢測日志文件是最后一個日志文件,在待檢測日志文件為最后一個日志文件的情況下,將待檢測日志文件的標記設置為空。具體的,基于圖3所示的基于日志檢測的告警系統的詳細工作流程。其步驟如下步驟201,系統讀取配置數據,包括待檢測日志文件、正則表達式、告警信息。步驟202,系統將反復按次序檢測日志文件,首先設置待檢日志文件為首個日志文件。步驟203,判斷待檢文件是否為NULL (為NULL代表本輪所有日志文件都已檢查完畢)。不為NULL到204,否則轉208。步驟204,對待檢文件進行檢測。包括檢測時間戳、讀取文件內容等。步驟205,判斷待檢文件是否有新增日志行。注一個已有多行日志的文件在第一次被檢測時,當前其所有日志行都是新增的。有新增行到206,否則轉207。步驟206,把新增行與每個正則表達式進行匹配,匹配成功則發送告警。步驟207,置待檢文件為下個日志文件。若本次待檢文件是最后一個日志文件,說明本輪所有文件都已檢測一遍,則置待檢文件為NULL來標記。步驟208,程序休眠一段時間,轉202繼續檢測日志文件。休眠時間根據業務情況可配置,比如為I秒鐘。需要說明的是,本發明實施例在附圖的流程圖示出的步驟可以在諸如一組計算機可執行指令的計算機系統中執行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執行所示出或描述的步驟。從以上的實施例描述中,可以看出,本發明實現了如下技術效果該方法和系統實現對多個日志文件的檢測來產生告警,以正則表達式匹配為檢測手段,配置靈活簡單,可擴展性強,適用面廣。有益效果具有表現在降低部署成本,一臺主機上部署一套本系統,即可對該主機上的所有應用進行日志檢測和告警;通用性強,適用于各類應用系統采用正則表達式,對于普通日志都是有效的;而且配置靈活,對任何業務、任何告警都是適用的;擴展性強,功能變更方便只需修改配置文件就可對檢測的文件、告警等功能進行增加、刪除和修改。。顯然,本領域的技術人員應該明白,上述的本發明的各模塊或各步驟可以用通用的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網絡上,可選地,它們可以用計算裝置可執行的程序代碼來實現,從而,可以將它們存儲在存儲裝置中由計算裝置來執行,或者將它們分別制作成多個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現。這樣,本發明不限制于任何特定的硬件和軟件結合。上述說明示出并描述了本發明的一個優選實施例,但如前所述,應當理解本 發明并非局限于本文所披露的形式,不應看作是對其他實施例的排除,而可用于各種其他組合、修改和環境,并能夠在本文所述發明構想范圍內,通過上述教導或相關領域的技術或知識進行改動。而本領域人員所進行的改動和變化不脫離本發明的精神和范圍,則都應在本發明所附權利要求的保護范圍內。
權利要求
1.一種基于日志檢測的告警方法,其特征在于,包括 讀取日志檢測的配置數據,所述配置數據包括待檢測日志文件、正則表達式以及告警信息; 根據所述配置數據對日志文件進行檢測,以生成檢測結果; 根據所述檢測結果發出告警信息。
2.根據權利要求I所述的方法,其特征在于,根據所述配置數據對日志文件進行檢測,以生成檢測結果包括 讀取所述配置數據中的待檢測日志文件; 在所述待檢測日志文件不為空的情況下,對所述待檢測文件進行檢測; 在檢測到所述待檢測日志文件存在新增日志行的情況下,將所述新增日志行的內容與所述正則表達式進行匹配處理以獲取檢測結果。
3.根據權利要求2所述的方法,其特征在于,根據所述檢測結果發出告警信息包括 在檢測結果為所述新增日志行的內容與所述正則表達式匹配成功的情況下,發出所述 告警信息
4.根據權利要求2所述的方法,其特征在于,在讀取所述配置數據中的待檢測日志文件之后,所述方法還包括 將所述待檢測日志文件置為首個日志文件進行檢測; 判斷所述待檢測日志文件是否為空,在所述待檢測日志文件為空的情況下,系統在預定的休眠時間之后,重新讀取并檢測所述待檢測日志文件。
5.根據權利要求4所述的方法,其特征在于,在根據所述檢測結果發出告警信息之后,或者在檢測到所述待檢測日志文件不存在新增日志行的情況下,所述方法還包括 將所述待檢測文件設置為下個日志文件,并判斷本次待檢測日志文件是最后一個日志文件,在所述待檢測日志文件為最后一個日志文件的情況下,將所述待檢測日志文件的標記設置為空。
6.一種基于日志檢測的告警系統,其特征在于,包括 配置模塊。用于讀取日志檢測的配置數據,所述配置數據包括待檢測日志文件、正則表達式以及告警信息; 日志檢測模塊,用于根據所述配置數據對日志文件進行檢測,以生成檢測結果; 告警接口模塊,用于根據所述檢測結果發出告警信息。
7.根據權利要求6所述的系統,其特征在于,所述日志檢測模塊包括 讀取模塊,用于讀取所述配置數據中的待檢測日志文件; 檢測模塊,用于在所述待檢測日志文件不為空的情況下,對所述待檢測文件進行檢測; 匹配模塊,用于在檢測到所述待檢測日志文件存在新增日志行的情況下,將所述新增日志行的內容與所述正則表達式進行匹配處理以獲取檢測結果。
8.根據權利要求7所述的系統,其特征在于,所述告警接口模塊包括 告警模塊,用于在檢測結果為所述新增日志行的內容與所述正則表達式匹配成功的情況下,發出所述告警信息。
9.根據權利要求7所述的系統,其特征在于,所述系統還包括設置檢測模塊,用于將所述待檢測日志文件置為首個日志文件進行檢測; 第一處理模塊,用于判斷所述待檢測日志文件是否為空,在所述待檢測日志文件為空的情況下,系統在預定的休眠時間之后,重新讀取并檢測所述待檢測日志文件。
10.根據權利要求9所述的系統,其特征在于,所述系統還包括 第二處理模塊,用于將所述待檢測文件設置為下個日志文件,并判斷本次待檢測日志文件是最后一個日志文件,在所述待檢測日志文件為最后一個日志文件的情況下,將所述待檢測日志文件的標記設置為空。
全文摘要
本發明公開了一種基于日志檢測的告警及系統。其中,該方法包括讀取日志檢測的配置數據,配置數據包括待檢測日志文件、正則表達式以及告警信息;根據配置數據對日志文件進行檢測,以生成檢測結果;根據檢測結果發出告警信息。通過本發明,能夠實現統一的多業務告警機制,達到靈活簡單、可擴展性強、適用面廣的效果。
文檔編號H04L12/26GK102957550SQ201110242789
公開日2013年3月6日 申請日期2011年8月23日 優先權日2011年8月23日
發明者謝鋼鋒, 丁巖 申請人:中興通訊股份有限公司