日志管理方法和裝置的制造方法
【技術領域】
[0001]本發明涉及集群管理領域,尤其涉及一種日志管理方法和裝置。
【背景技術】
[0002]在集群管理系統中,系統需要循環檢測集群中各個資源的狀態(如IP資源、應用程序資源、服務資源等),同時會將檢測的結果記錄到日志文件中。由于檢測過程是不間斷循環進行的,因此會造成不停地記錄日志信息,導致日志信息隨時間推遲會變得非常龐大,甚至影響系統性能;另一方面,如果刪除這些日志,雖能減少日志數量,但會導致后期一旦出現問題時,無法有效定位分析問題,不能發揮日志信息的作用。
【發明內容】
[0003]本發明提供了一種日志管理方法和裝置,解決了日志數量過多影響系統性能的問題。
[0004]本發明提供了一種日志管理方法,包括:
[0005]維護一日志緩存隊列,在該日志緩存隊列中存儲已生成的日志;
[0006]在生成新日志時,檢查所述日志緩存隊列中是否存在與所述新日志相同的已有日志;
[0007]在存在與所述新日志相同的已有日志時,將所述新日志合并至所述已有日志,不在所述日志緩存隊列中添加所述新日志單獨對應的條目。
[0008]優選的,將所述新日志合并至所述已有日志具體為:
[0009]將所述已有日志的日志產生時間更新為所述新日志的產生時間。
[0010]優選的,在生成新日志時,檢查所述日志緩存隊列中是否存在與所述新日志相同的已有日志的步驟之后,還包括:
[0011 ] 當不存在與所述新日志相同的已有日志時,將所述新日志添加至所述日志緩存隊列中。
[0012]優選的,檢查所述日志緩存隊列中是否存在與所述新日志相同的已有日志具體為:
[0013]檢查所述日志緩存隊列中閾值時間內添加的日志中是否存在與所述新日志相同的已有日志。
[0014]優選的,所述日志緩存隊列為每條日志分配一個的條目,一個條目包含如下內容中的任一或任意多個:
[0015]日志產生時間,日志內容,日志累計出現次數。
[0016]優選的,該方法還包括:
[0017]按照日志產生時間排列所述日志緩存隊列中的日志。
[0018]優選的,該方法還包括:
[0019]在更新完所述已有日志的產生時間后,將該已有日志插入到隊列頭位置,并將該已有日志的日志累計出現次數增加I。
[0020]本發明還提供了一種日志管理裝置,包括:
[0021]隊列存儲模塊,用于維護一日志緩存隊列,在該日志緩存隊列中存儲已生成的日志;
[0022]檢索模塊,用于在生成新日志時,檢查所述日志緩存隊列中是否存在與所述新日志相同的已有日志;
[0023]日志更新模塊,用于在存在與所述新日志相同的已有日志時,將所述新日志合并至所述已有日志,不在所述日志緩存隊列中添加所述新日志單獨對應的條目。
[0024]優選的,所述日志更新模塊具體用于:
[0025]將所述已有日志的日志產生時間更新為所述新日志的產生時間。
[0026]優選的,所述日志更新模塊,還用于當不存在與所述新日志相同的已有日志時,將所述新日志添加至所述日志緩存隊列中。
[0027]本發明提供了一種日志管理方法和裝置,維護一日志緩存隊列,在該日志緩存隊列中存儲已生成的日志,在生成新日志時,檢查所述日志緩存隊列中是否存在與所述新日志相同的已有日志,在存在與所述新日志相同的已有日志時,將所述新日志合并至所述已有日志,不在所述日志緩存隊列中添加所述新日志單獨對應的條目。實現了日志信息的篩查管理,解決了日志數量過多影響系統性能的問題。
【附圖說明】
[0028]圖1為本發明的實施例1提供的一種日志管理方法的流程圖;
[0029]圖2為日志信息緩存隊列的結構示意圖;
[0030]圖3為新日志在緩存隊列中不存在時的處理流程圖;
[0031]圖4為新日志在緩存隊列中已存在時的處理流程圖;
[0032]圖5為本發明的實施例二提供的一種日志管理裝置的結構示意圖。
【具體實施方式】
[0033]由于檢測過程是不間斷循環進行的,因此會造成不停地記錄日志信息,導致日志信息隨時間推遲會變得非常龐大,甚至影響系統性能;另一方面,如果刪除這些日志,雖能減少日志數量,但會導致后期一旦出現問題時,無法有效定位分析問題,不能發揮日志信息的作用。
[0034]鑒于上述分析,設計一個高效智能的日志管理模塊將十分必要,它可以保證在能夠有效記錄日志信息的情況下,自動濾除重復且沒有參考分析價值的冗余日志信息,極大降低龐大的日志量對系統的影響和日志分析的難度。
[0035]為了解決上述問題,本發明的實施例提供了一種日志管理方法和裝置。下面將結合附圖及實施例對本發明的技術方案進行更詳細的說明。系統產生的日志信息將不直接無差別地記錄到日志文件中,而是首先通過該日志模塊進行分析過濾,將其中過多重復且無分析價值的日志過濾掉,只保留有參考價值的日志,舉例來說,如果某一條記錄資源狀態的日志在短時間內重復出現,則實際只有首次出現和最后出現的日志需要記錄,中間出現的日志只說明該狀態是循環檢測的,并未太大的分析價值,因此可以忽略。
[0036]需要說明的是,如果不沖突,本發明實施例以及實施例中的各個特征可以相互結合,均在本發明的保護范圍之內。另外,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執行所示出或描述的步驟。
[0037]首先結合附圖,對本發明的實施例一進行說明。
[0038]本發明實施例提供了一種日志管理方法,使用該方法完成日志管理的流程如圖1所示,包括:
[0039]步驟101、維護一日志緩存隊列,在該日志緩存隊列中存儲已生成的日志;
[0040]所述日志緩存隊列為每條日志分配一個的條目,一個條目包含如下內容中的任一或任意多個:
[0041]日志產生時間,日志內容,日志累計出現次數。
[0042]如圖2所示,創建日志信息緩存隊列,用于臨時存放日志信息,日志隊列中將保存日志信息的創建時間、日志的內容與日志出現的次數,新日志將插入到隊列頭部。
[0043]步驟102、在生成新日志時,檢查所述日志緩存隊列中是否存在與所述新日志相同的已有日志;
[0044]步驟103、當不存在與所述新日志相同的已有日志時,將所述新日志添加至所述日志緩存隊列中;
[0045]本步驟中,具體的,將所述已有日志的日志產生時間更新為所述新日志的產生時間。
[0046]如圖3所示,當系統產生一條新日志信息A后,根據日志A的內容,從隊列中查詢該日志是否已經存在,如果發現該日志在隊列中不存在,則將日志插入到隊列頭部,其中Atinre為產生該日志的時間,Atext為日志的具體內容,A_為該日志出現的次數,由于是第一次出現,因此A_的值為I。另一方面,第一次出現的日志將直接記錄到日志文件中。
[0047]步驟104、在存在與所述新日志相同的已有日志時,將所述新日志合并至所述已有日志,不在所述日志緩存隊列中添加所述新日志單獨對應的條目;
[0048]在更新完所述已有日志的產生時間后,將該已有日志插入到隊列頭位置,并將該已有日志的日志累計出現次數增加I。
[0049]如圖4所示,當新產生的日志B在隊列中已經存在時,則將先把隊列中的日志B從隊列中刪除,而后將B的產生時間由原來的時間更新為最新的時間,即將Bcild t更新為B_—t,同時將出現次數BnuJm I后,重新插入到隊列的頭部。通過這一過程,可以實現,重復出現的日志始終在靠近隊列頭部的位置,而不重復的日志將隨著時間推移,逐漸移動到隊列末尾的位置。
[0050]此外,本發明實施例中還可按照日志產生時間排列所述日志緩存隊列中的日志。[0051 ] 此外,可設置一閾值時間,檢查所述日志緩存隊列中閾值時間內添加的日志中是否存在與所述新日志相同的已有日志。具體的,采用遍歷的方式查看隊列中的日志是否已超過閾值時間T,即日志的產生時間與當前