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