本發(fā)明涉及用以搜索包含大量條目的日志的方法和系統(tǒng)。
背景技術:
在it環(huán)境中,大多數(shù)設備每天生成日志。這些日志對于操作、統(tǒng)計、消除缺陷和其他管理工作是非常重要的。一般地,日志條目是非結構化數(shù)據(jù)。為了促進這些任務,解析非結構化日志并且將有價值的信息存儲到貯存庫中是常見慣例。然而,當管理大型it環(huán)境比如全球公司時,或者向大量消費者提供云服務時,日志量可能是巨大的。從數(shù)百億記錄內發(fā)現(xiàn)感興趣信息是困難且耗時的任務。
附圖說明
在以下詳細描述和附圖中公開了本發(fā)明的各種實施例。
圖1是圖示用以預掃描日志的系統(tǒng)的實施例的框圖。
圖2是圖示用以預掃描日志的過程的實施例的流程圖。
圖3是圖示用以預掃描日志的系統(tǒng)和過程的實施例的框圖。
圖4是圖示用以執(zhí)行基本預掃描處理的系統(tǒng)的實施例的框圖。
圖5a是圖示引用另一征兆的征兆的示例的框圖。
圖5b是圖示在征兆之間的多個、分層引用的示例的框圖。
圖5c是圖示其中征兆引用多個其他征兆的示例的框圖。
圖6a和6b圖示諸如可以在缺陷定義中涉及的征兆的示例。
圖7是圖示用以針對至少部分由模式定義的、取決于所引用征兆的征兆執(zhí)行預掃描的系統(tǒng)的實施例的框圖。
圖8是圖示用以預掃描日志的過程的實施例的流程圖。
圖9是圖示響應于掃描請求或者其他搜索查詢的過程的實施例的流程圖。
具體實施方式
本發(fā)明可以以許多方式實施,所述方式包括如過程、裝置、系統(tǒng)、物質的組成、包括在計算機可讀存儲介質上的計算機程序產品、和/或處理器,諸如被配置成執(zhí)行存儲在耦合到處理器的存儲器上和/或由該存儲器提供的指令的處理器。在本說明書中,這些實現(xiàn)方式或者本發(fā)明可以采取的任何其他形式可以被稱為技術。一般地,所公開的過程的步驟的次序可以在本發(fā)明的范圍內更改。除非以其他方式說明,否則諸如被描述為配置成執(zhí)行任務的處理器或者存儲器之類的組件可以被實施為臨時地被配置成在給定時間處執(zhí)行任務的一般組件或者被制造成執(zhí)行任務的特定組件。如本文中使用的,術語‘處理器’指代被配置成處理數(shù)據(jù)的一個或者多個設備、電路和/或處理核,諸如計算機程序指令。
本發(fā)明的一個或者多個實施例的詳細描述在以下連圖圖示本發(fā)明的原理的附圖一同被提供。本發(fā)明結合這樣的實施例被描述,但是本發(fā)明不限于任何實施例。本發(fā)明的范圍僅由權利要求限制,并且本發(fā)明涵蓋許多替換項、修改和等價物。在以下描述中闡述了許多特定細節(jié)以便提供對本發(fā)明的透徹理解。這些細節(jié)為了示例的目的而被提供,并且在沒有這些特定細節(jié)中的一些或者所有的情況下,本發(fā)明可以根據(jù)權利要求來實踐。為了清楚的目的,在與本發(fā)明相關的技術領域中已知的技術材料未詳細描述,以使得不使本發(fā)明不必要地模糊不清。
公開了在日志掃描或者搜索時間之前預掃描從系統(tǒng)的安裝基礎(例如,硬件、軟件、其組合等等)接收到的日志以標識征兆匹配。在各種實施例中,日志可以在接收到所述日志時被預掃描,和/或關于日志(其已自從最近的預掃描日志以后而接收到)分批地預掃描(遞增的預掃描)。預掃描在各種實施例中可以包括在日志被預掃描時發(fā)現(xiàn)在日志中的征兆匹配,以及將與這樣的匹配和/或其中發(fā)現(xiàn)了匹配的日志相關聯(lián)的數(shù)據(jù)存儲在貯存庫或者其他數(shù)據(jù)和/或知識存儲庫中。在各種實施例中,征兆可以是基于模式的、基于比較的、或者以其他方式定義的。在掃描/搜索時間處,搜索查詢可以被構建,例如引用一個或者多個征兆和/或一組或者多組征兆,并且其中發(fā)現(xiàn)了對于這樣的征兆的匹配的預掃描日志和/或相關聯(lián)的預掃描結果數(shù)據(jù)可以被用來響應于搜索查詢而發(fā)現(xiàn)和返回日志。
通常,日志是一組文本輸出,其由系統(tǒng)自動生成,被組織在文件或者命令行中。日志通常包括按時間戳排序的一組日志條目。日志條目可以包括在日志中彼此相鄰的一行或者多行,其標識事件。日志條目通常包括時間戳和非結構化消息。非結構化消息不限制于完全的文本格式,但是也可以被呈現(xiàn)為數(shù)字、日期、超鏈接等等。
公開了用以定位感興趣的一組日志條目因此可以進一步處理它們的技術。在各種實施例中,征兆和征兆組可以被定義和用于規(guī)定日志內的感興趣信息。在各種實施例中,征兆可以是基于模式的、基于比較的、或者以其他方式定義的。
模式可以標識感興趣的消息。在各種實施例中,模式可以使用若干方法中的一種或者多種來規(guī)定,所述方法包括但不限于正則表達式。正則表達式可以是搜索日志條目的有效方法。例如,模式“^.*([1-9][0-9]{3,})opaqueentries.*$”意味著不透明條目的數(shù)目大于或者等于1000(假設在消息中不存在數(shù)字分隔符)。
基本征兆可以由模式和(可選地)某一時段內的頻率(出現(xiàn)數(shù)目)約束組成。簡單征兆可以由模式定義,并且不具有任何頻率約束。一旦日志條目匹配模式,則滿足該征兆。更復雜的征兆可以包括頻率約束,諸如在某一時段內的出現(xiàn)數(shù)目。例如,模式在5分鐘中的5次或者更多匹配,諸如“commandtimeout.*
高級的基于模式的征兆可以用引用其他征兆的代替項來定義。例如,高級征兆a可以被定義為“$1:leave”,其中,“$1”是征兆b“(ioc\d+):enter”的第一匹配的代替項。利用代替項,這兩個征兆相關聯(lián)。在以上示例中,征兆a和征兆b可以用作相同設備的一對“進入”和“離開”,所述相同設備例如“i/o控制器”(“ioc”),其具有相同設備標識符“d”。
可以定義基于比較的征兆。例如,基于比較的征兆可以參考與開始事件(例如,操作的開始)相關聯(lián)的開始時間和與結束事件(例如,相同的操作結束)相關聯(lián)的結束時間以及在開始時間與結束時間之間的經過時間量與檢測閾值之間的比較來定義。例如,在各種實施例中,開始事件可以在例如基于模式匹配的預掃描中檢測,并且包括事件的時間戳的預掃描結果被存儲。隨后,預掃描可以檢測對應的結束事件,并且捕獲所觀察的結束時間。所觀察的經過時間可以基于預掃描的結果計算,并且如果被計算為具有在開始與結束事件之間的經過的時間超過時間的最大量(檢測閾值),則可以確定基于比較的征兆已被檢測到/匹配,并且對應的預掃描的結果可以被生成和存儲。
在各種實施例中,征兆組可以被定義為包括用邏輯運算和時間約束連結的一個或者多個征兆。
圖1是圖示用以預掃描日志的系統(tǒng)的實施例的框圖。在示出的示例中,包括系統(tǒng)的安裝基礎的多個系統(tǒng),其在圖1中由系統(tǒng)102、104和106表示,生成日志(例如,日常日志)并且將它們經由網絡108發(fā)送到日志攝取服務器110,其將接收到的日志存儲在原始日志儲存器112中。例如,日志攝取服務器110和原始日志數(shù)據(jù)儲存器112可以與支持中心或者相似組織和/或基礎設施相關聯(lián),所述支持中心或者相似組織和/或基礎設施與為系統(tǒng)102、104和106的用戶提供技術支持和/或分析日志數(shù)據(jù)以標識和修復關于系統(tǒng)(諸如系統(tǒng)102、104和106)的缺陷或者其他問題相關聯(lián)。在示出的示例中,日志分析系統(tǒng)114被配置成分析由日志攝取服務器110接收到的日志。在各種實施例中,日志分析系統(tǒng)114可以例如在接收到日志時、遞增地分批地、等等預掃描日志以標識征兆匹配。與缺陷定義相關聯(lián)的基于模式的、基于比較的、和/或其他征兆可以被存儲在缺陷定義存儲庫116中,并且用于執(zhí)行預掃描。日志和/或日志的部分(在其中,在預掃描期間發(fā)現(xiàn)征兆匹配)可以被存儲在“感興趣的日志”數(shù)據(jù)存儲庫118中。數(shù)據(jù)存儲庫118在各種實施例中可以包括一個或者多個數(shù)據(jù)庫表和/或其部分,并且可以存儲在企業(yè)內容管理系統(tǒng)或者其他貯存庫上。
圖2是圖示用以預掃描日志的過程的實施例的流程圖。在各種實施例中,圖2的過程可以由諸如圖1的日志分析系統(tǒng)114之類的日志分析系統(tǒng)實現(xiàn)。在示出的示例中,在滾動(或者分批的,或者其他遞增的)基礎上預掃描日志以標識感興趣的日志(202)。例如,模式匹配可以用來標識感興趣的日志。感興趣的日志被處理以確定是否匹配任何(一個或者多個)征兆(204)。例如,可以定義征兆為在檢測到在規(guī)定時間段內給定模式出現(xiàn)規(guī)定數(shù)目時被匹配;或者在基于比較的征兆的情況下,可以在所觀察的和/或所計算的值和對應閾值之間做出比較。作為與已被檢測到的模式相匹配的結果而被確定為感興趣的日志可以被進一步處理,以將該模式出現(xiàn)數(shù)目和/或頻率與征兆定義相比較。如果發(fā)現(xiàn)征兆匹配(206),則采取響應的動作(208)。例如,征兆預掃描結果可以被存儲,例如以便稍后用于響應于與征兆相關聯(lián)的搜索查詢。預掃描對于還沒有被預掃描的日志繼續(xù)進行(210),直到所有日志都已被處理為止。
圖3是圖示用以預掃描日志的系統(tǒng)和過程的實施例的框圖。在示出的示例中,相對于原始日志302執(zhí)行模式預掃描處理,從而產生模式預掃描結果304。模式預掃描結果304可以包括一個或者多個數(shù)據(jù)庫條目,其標識在其中已經發(fā)現(xiàn)模式匹配的日志(例如,感興趣的日志)、被匹配的模式等等。模式預掃描結果304用來例如通過進一步進行預掃描來標識在其中滿足頻率約束(例如,在規(guī)定時間段內給定模式匹配出現(xiàn)的規(guī)定數(shù)目)的感興趣的日志,并且生成和存儲征兆預掃描結果306。
圖4是圖示用以執(zhí)行基本預掃描處理的系統(tǒng)的實施例的框圖。在示出的示例中,一組原始日志數(shù)據(jù)包括已經被預掃描的日志402和還沒有被預掃描的日志404。指針或者其他數(shù)據(jù)結構、實體、或者構造(未示出)可以用來跟蹤哪些日志已經被預掃描(402)并且哪些還沒有被預掃描(404)。相對于還沒有被預掃描的日志404執(zhí)行基本預掃描處理406(例如,基本模式匹配、執(zhí)行在所觀察的/計算的值和對應閾值之間的基本比較等等)。感興趣的日志和/或相關聯(lián)的元數(shù)據(jù)被存儲在貯存庫408中,例如,被存儲在一個或者多個數(shù)據(jù)庫表和/或其分割中。在各種實施例中,一旦已經相對于日志執(zhí)行了預掃描處理,則該日志可能不被進一步掃描。替代地,與日志相關聯(lián)的預掃描結果(如果存在)可以與其他預掃描結果一同用于對掃描請求和/或其他搜索查詢進行響應,如以下更充分地描述的。
在各種實施例中,征兆可以至少部分通過對一個或者多個其他征兆的引用(例如,一個或者多個分層引用)來定義,所述征兆可以被稱為取決于所述一個或者多個其他征兆。
圖5a是圖示引用另一征兆的一個征兆的示例的框圖。在示出的示例中,征兆a包括例如在征兆a的定義中的對征兆b的引用。例如,在征兆a的定義中規(guī)定的一個或者多個準則可以涉及征兆b的出現(xiàn),和/或涉及與征兆b的出現(xiàn)相關聯(lián)的一個或者多個數(shù)據(jù)字段、數(shù)據(jù)值、和/或其他數(shù)據(jù)。例如,與某些過程、動作、事件等相關聯(lián)的征兆a結尾可以引用征兆b,所述征兆b的對應出現(xiàn)可以通過引用與對應出現(xiàn)相關聯(lián)的數(shù)據(jù)值(例如,過程或者其他標識符、端口號、設備或者其他實體標識符等等)來標識。
圖5b是圖示在征兆之間的多個分層引用的示例的框圖。在示出的示例中,征兆a引用征兆b,征兆b進而引用征兆c。對于要匹配的征兆a而言,可能要求征兆b的對應出現(xiàn),進而可能僅在發(fā)現(xiàn)了征兆c的對應出現(xiàn)的情況下發(fā)現(xiàn)征兆b出現(xiàn)。
圖5c是圖示其中一個征兆引用多個其他征兆的示例的框圖。在示出的示例中,征兆a直接引用征兆b和征兆c。對于要匹配的征兆a而言,例如,可能有必要使得征兆b和征兆c的對應出現(xiàn)被發(fā)現(xiàn)。在各種實施例中,征兆a的出現(xiàn)的一個或者多個屬性可以從與征兆b和征兆c中的一個或者兩者相關聯(lián)的數(shù)據(jù)值(例如,在征兆a的定義中規(guī)定的數(shù)據(jù)值)導出。
在各種實施例中,“缺陷”可以包括可以被標識和修復的任何事物。“缺陷”或者其他可修復問題定義可以規(guī)定招致缺陷和精確標識它的(一個或者多個)征兆的硬件模型和軟件版本。必須以特定次序并在特定時間段中發(fā)生的多個征兆可以被規(guī)定。在一些實施例中,測試缺陷定義的結果是真或者假;如果為真,則匹配的缺陷簽名(即,唯一標識缺陷出現(xiàn)的征兆數(shù)據(jù)的那個部分)可以作為證據(jù)被提供。
在一些實施例中,征兆可以是可以用布爾運算(諸如模式匹配或者比較)檢測的任何事物。取決于征兆定義,布爾運算可能需要在所規(guī)定時段(時間范圍)內成功達所規(guī)定數(shù)目的次數(shù)(最小到最大),以便整個征兆定義將測試為真。在一些實施例中,相同征兆可以被多個缺陷引用。
在一些實施例中,基于模式的征兆可以用于定義缺陷。模式可以被規(guī)定為正則表達式。征兆可以引用被另一征兆匹配的部分來規(guī)定其模式。
在一些實施例中,缺陷定義可以用于基于產品的屬性或者行為而標識所述產品。
圖6a和6b圖示諸如可能在缺陷定義中涉及到的征兆的示例。例如,缺陷定義可以針對與備份(或者其他)應用相關聯(lián)的問題創(chuàng)建,所述備份(或者其他)應用執(zhí)行在目標存儲系統(tǒng)上的相同源目錄內的“過多”重命名。圖6a是示出用于捕獲源目錄的名稱的征兆的征兆定義的元素的框圖。圖6b是示出征兆的征兆定義的元素的框圖,其用于檢測相對于與在圖6a中定義的征兆的出現(xiàn)相關聯(lián)的源目錄而言超過了重命名閾值。
在各種實施例中,通過由支持系統(tǒng)(諸如被配置成提供缺陷定義工具或者其他接口并且接收和存儲缺陷定義的系統(tǒng))自動生成的唯一標識符標識每個征兆。當在缺陷定義內引用時,征兆描述被加附到標識符。在一些實施例中,相同征兆可以由不同缺陷引用。以不同疾?。ɡ?,感冒、鏈球菌性喉炎和扁桃體炎)展現(xiàn)共同征兆(例如,咽喉痛)的相同方式,多個缺陷定義可以共享共同的征兆定義。
在一些實施例中,缺陷定義可以直接引用其自身引用一個或者多個其他征兆的征兆。在這樣的情況下,缺陷定義可以要求兩個或者更多征兆定義,即使僅一個被明確引用。
參考圖6a中示出的示例,征兆定義600包括描述602和“征兆數(shù)據(jù)”字段604,在其中規(guī)定要被掃描以用于匹配征兆定義的日志,在該示例中日志命名為“ddfs.info”。在一些實施例中,缺陷可以使用通過使用不同數(shù)據(jù)源定義的征兆;這使得缺陷能夠針對跨多個產品的解決方案而定義。
正則表達式被輸入在征兆模式字段606來規(guī)定感興趣的征兆。在一些實施例中,括號可以用來保存匹配于所圍起的模式的文本,以使得其可以用來規(guī)定另一征兆的模式。以下更詳細描述這種“向后引用”能力。
最小值和最大值字段規(guī)定在征兆被認為已經出現(xiàn)之前模式必須被匹配的次數(shù)。如果未規(guī)定,則至少必須出現(xiàn)1次匹配,即最小值是1,并且最大值是任何數(shù)。在示出的示例中,在圖6a中,只有最小值字段608有值,在該情況下是“1”,并且沒有頻率約束(見時間范圍字段610中的“無”),從而指示單個模式匹配滿足征兆。
時間范圍字段(數(shù)和單元)規(guī)定在征兆被認為已經出現(xiàn)之前模式必須被匹配的時間段。如果未規(guī)定,則不應用時間約束。如果規(guī)定,則如由最小值和最大值字段規(guī)定的匹配數(shù)目必須在征兆被認為已經出現(xiàn)之前在該時間段內出現(xiàn)。
在圖6a中示出的示例中,征兆600在ddfs.info日志中搜索至少一個模式匹配。其可以例如通過在括號中圍起要從匹配日志捕獲的文本來“捕獲”表示用于重命名操作的源目錄的文本,如以上描述的。參考圖6b,征兆定義可以涉及該被捕獲的文本,并且代替該被捕獲的文本來規(guī)定其模式。通過使用向后引用,征兆定義620有效地針對在日志數(shù)據(jù)中發(fā)現(xiàn)的每個源目錄定義了單獨的模式。
進一步參考圖6b,缺陷定義620包括描述622,并且包括附加字段,其在代替項(即,來自所引用的征兆的數(shù)據(jù)的代替項)被包括在征兆定義中時變得可用。
在示出的示例中,字符串字段624規(guī)定將用來在模式中指示向后引用的字符串。第一代替字符串可以默認為$1,即在本示例中使用的字符串。然而,如果需要模式來發(fā)現(xiàn)文本“$1”,則可以規(guī)定替換的代替字符串。
代替字段626、628和630規(guī)定當在模式中遇到時應該代替字符串使用的信息。存在多種類型的代替項,但是在該示例中,通過從下拉列表(626)選擇引用并且規(guī)定征兆號(628)來指示向后引用。所規(guī)定的征兆號必須包含具有“捕獲”匹配文本的至少一組括號的模式。要注意,模式可以具有多組括號,因此引用號指示哪一個(其在模式內的位置)。如果規(guī)定映射(630),則所捕獲的文本將在另一字符串在模式中被代替之前被映射到所述另一字符串。
要注意,模式可以規(guī)定來自多個征兆的向后引用。在一些實施例中,如果定義了附加代替項,則第二代替字符串默認為$2,第三代替字符串默認為$3,等等。
征兆620中的模式包含$1代替字符串,其在該示例中表示重命名操作中的源目錄,尤其是在圖6a的征兆600的所引用出現(xiàn)中捕獲了其名稱的源目錄。當至少10個重命名在5分鐘時段內出現(xiàn)(分別由最小值和時間范圍字段規(guī)定)時,征兆被認為已出現(xiàn)。
圖7是圖示用以針對至少部分由模式定義的、取決于所引用征兆的征兆執(zhí)行預掃描的系統(tǒng)的實施例的框圖。在示出的示例中,一組原始日志數(shù)據(jù)包括之前已經被預掃描的日志702和還沒有被預掃描的日志704。在處理一個取決于一個或者多個其他征兆的征兆(諸如圖6b的征兆620)時,在706處確定被預掃描的日志是否已經被預掃描以用于與所引用征兆相匹配。如果否,則在708處,相對于日志執(zhí)行基本的(或者如果所引用的征兆其本身引用其他征兆,則是較不基本的)預掃描以針對所引用征兆的出現(xiàn)而預掃描。與所引用征兆的任何匹配造成包括和/或標識感興趣的日志和/或其部分的數(shù)據(jù)被添加到貯存庫710,并且處理被返回到重新開始相對于包括(一個或者多個)引用的征兆進行預掃描。一旦任何(一個或者多個)所引用的征兆已經被預掃描(706),則執(zhí)行基本的預掃描以發(fā)現(xiàn)對于被包括在引用所引用征兆的征兆定義中的模式的潛在匹配(712),以及對于每個潛在匹配,執(zhí)行檢查以確定在將包括在模式定義中的占位符用與所引用征兆的對應出現(xiàn)相關聯(lián)的對應所引用數(shù)據(jù)代替時是否發(fā)現(xiàn)了完整匹配(714)。對于在來自所引用征兆的數(shù)據(jù)代替引用了所引用征兆的征兆的模式定義中的占位符之后發(fā)現(xiàn)的每個匹配,對應日志數(shù)據(jù)和/或相關聯(lián)的(例如,征兆匹配)元數(shù)據(jù)被存儲在貯存庫710中。
在一些實施例中,可以執(zhí)行與以上結合圖7描述的處理相似的處理,以針對引用和/或取決于其他征兆的征兆(而不是通過將引用與所引用的征兆相關聯(lián)的數(shù)據(jù)的占位符包括在定義征兆的模式中)預掃描。例如,在以上描述的基于比較的征兆中(在其中,操作的開始時間和結束時間被用來計算經過時間,所述經過時間然后與閾值相比較),與閾值相關聯(lián)的征兆可以引用用來檢測操作已經開始或者停止和/或用來捕獲相關聯(lián)的時間戳的其他征兆。在一些實施例中,如圖7中示出的重復性預掃描處理可以用來首先預掃描所引用的征兆,在該示例中是操作開始和停止事件,然后為了針對基于經過時間閾值比較的征兆進行預掃描,使用與出現(xiàn)所引用征兆相關聯(lián)的預掃描結果來計算經過時間。
圖8是圖示用以預掃描日志的過程的實施例的流程圖。在各種實施例中,圖8的過程可以用來針對匹配引用另一模式(例如,另一征兆)的某個模式的日志/條目進行預掃描。在示出的示例中,相對于模式的非占位符部分執(zhí)行基本掃描(802)。例如,假設高級征兆a被定義為“$1:leave”,其中,“$1”是征兆b“(ioc\d+):enter”的第一匹配的代替項。在該示例中,征兆a和征兆b可以用作相同設備的一對“進入”和“離開”,在該情況中所述相同設備是對應于標識符“d”的“i/o控制器”(或者“ioc”)。在一些實施例中,步驟802將包括在針對征兆a的預掃描中,針對用于表達用于定義征兆a的模式的正則表達式的非占位符部分執(zhí)行基本掃描,所述模式在該情況下是字符串“l(fā)eave”(或者,“:leave”)。如果發(fā)現(xiàn)了基本匹配(804),則獲取與占位符相關聯(lián)的所引用數(shù)據(jù)(806)。例如,相對于相同設備/系統(tǒng)的與征兆b相關聯(lián)的預掃描結果數(shù)據(jù)例如可以被取回,并且在與征兆b相關聯(lián)的以上模式中在括號中圍起的數(shù)據(jù),所述征兆b尤其是“ioc\d”,其可以例如包括對特定i/o控制器(諸如ioc1)的引用,可以被確定并且被用來進一步評估征兆a。如果在用來自所引用征兆的出現(xiàn)的對應數(shù)據(jù)代替當前正被評估的征兆的占位符數(shù)據(jù)時,確定已經滿足了其他征兆和/或征兆組檢測準則的匹配(808),則相關聯(lián)的日志或者其部分被標識為匹配(810),并且存儲預掃描結果數(shù)據(jù)。如果沒有滿足征兆或者征兆組檢測準則(808),則確定沒有發(fā)現(xiàn)匹配(812),并且重新開始對其他還沒有被掃描的日志和/或其部分的預掃描,直到所有日志都已經被預掃描或者該過程以其他方式結束(814)。
圖9是圖示響應于掃描請求或者其他搜索查詢的過程的實施例的流程圖。在各種實施例中,如本文中公開的那樣確定的預掃描結果可以在掃描/搜索時間處用于快速標識響應于掃描/搜索查詢的日志和其部分。在示出的示例中,接收搜索或者掃描準則(902)。例如,可以請求搜索/掃描來標識其中在征兆b的對應出現(xiàn)的規(guī)定時間內出現(xiàn)以上示例中的征兆a的日志;或者其中在之前規(guī)定的時間內在沒有征兆b的對應出現(xiàn)的情況下出現(xiàn)征兆a的日志;等等。如本文中公開的針對模式和/或征兆預掃描的結果被用來標識和返回結果(904)。例如,可以搜索存儲在諸如圖4的貯存庫408或者圖7的貯存庫710之類的貯存庫中的預掃描結果,來標識滿足搜索查詢的日志或者其部分。
在各種實施例中,將預掃描結果寫入到數(shù)據(jù)庫或者其他數(shù)據(jù)存儲庫可以通過首先將結果寫入到文件然后將結果整批上傳到數(shù)據(jù)庫來優(yōu)化。將數(shù)百萬匹配于模式的行直接上傳到數(shù)據(jù)庫中可能是耗時且低效的。例如greenplumtm的許多數(shù)據(jù)庫系統(tǒng)支持經由外部表上傳數(shù)據(jù)。在一些實施例中,在預掃描處理過程中,一旦標識了匹配的日志,它們就可以被首先寫入到文件中,并且稍后通過外部表上傳到數(shù)據(jù)庫。
在一些實施例中,如果原始日志條目被存儲在數(shù)據(jù)庫中,則可能需要例如大約一百億行的巨大的表。為了改進本文中公開的遞增預掃描的性能,在一些實施例中,日志id上的分割或者某個其他遞增增加的字段可以用來改進性能。
在一些實施例中,預掃描結果的數(shù)據(jù)庫表可以被分割,以改進性能。大的系統(tǒng)可以具有數(shù)百個模式。它們中的一些可以具數(shù)千萬個匹配。為了管理在文件或者數(shù)據(jù)庫中的這樣的大的結果,預掃描結果可以被分割。在各種實施例中,分割可以建立在模式id或者某個其他屬性上。大多數(shù)數(shù)據(jù)庫支持分割。對于文件而言,不同分割可以被表示為單獨的文件。
在一些實施例中,當征兆或者征兆組定義被更新,和/或新征兆和/或征兆組被創(chuàng)建時,執(zhí)行對在更新前已經被預掃描的原始日志數(shù)據(jù)的充分掃描。在一些實施例中,相對于新的和/或更新的定義執(zhí)行充分掃描。在發(fā)現(xiàn)匹配時,對應的預掃描結果被生成并且添加到預掃描結果數(shù)據(jù)庫。
在一些實施例中,當模式例如由管理員或者其他用戶更新或者刪除時,匹配的舊結果可能不再有用。然而,在一些實施例中,與作廢的模式相關聯(lián)的預掃描結果可能不被立即刪除。在一些實施例中,可以將標簽添加到舊結果或者分割中。垃圾收集過程用來異步刪除廢棄結果。垃圾收集可以被調度為在另外的空閑時段期間出現(xiàn),以平衡資源消耗。
在各種實施例中,本文中公開的模式和征兆預掃描技術可以使得匹配征兆和/或征兆組的日志或者其部分能夠在掃描/搜索時間處被快速標識。
盡管為了清楚理解起見已經相當詳細地描述了某些細節(jié)前述實施例,但是本發(fā)明不限于所提供的細節(jié)。存在實現(xiàn)本發(fā)明的許多替換方式。所公開的實施例是說明性的而不是限制性的。