本發(fā)明涉及日志處理技術(shù)領(lǐng)域,特別是涉及一種基于linux日志提取方法與裝置。
背景技術(shù):
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,計算機(jī)已經(jīng)成為人們?nèi)粘I?、學(xué)習(xí)和工作的一部分。隨著計算機(jī)的普及,隨之而來的不當(dāng)操作及行為也變得非常普遍,該不當(dāng)操作及行為可能會引起數(shù)據(jù)的嚴(yán)重?fù)p壞或者重要信息的丟失,從而造成嚴(yán)重影響。在linux系統(tǒng)中,日志文件提供了對計算機(jī)系統(tǒng)操作的記錄,可以記錄用戶登錄事件、登錄時間、進(jìn)行的操作等內(nèi)容。通過查看日志文件中的日志內(nèi)容,可以當(dāng)計算機(jī)系統(tǒng)崩潰或斷電時,依據(jù)該日志內(nèi)容恢復(fù)之前的數(shù)據(jù)狀態(tài),避免數(shù)據(jù)損壞,也可以從該日志文件中獲取到關(guān)于計算機(jī)系統(tǒng)是否被攻擊的操作行為。但是由于日志文件中記錄的信息量非常龐大,從海量又雜亂的日志文件中獲取所需的重要信息難度非常大。
傳統(tǒng)方式中,按照時間排序的方式記錄日志,當(dāng)從日志文件中進(jìn)行重要信息的檢索,例如,可以通過輸入關(guān)鍵詞的方式檢索,但是檢索的結(jié)果往往只能顯示包含該關(guān)鍵詞所在位置的信息。而該關(guān)鍵詞所在位置的信息可能無法包含用戶所需的完整的信息,用戶仍需要進(jìn)行進(jìn)一步的查找。
以進(jìn)程為例,由于系統(tǒng)運(yùn)行時一般會同時執(zhí)行多個進(jìn)程,則按照時間排序方式記錄的日志信息可能導(dǎo)致該多個進(jìn)程相關(guān)的日志信息摻雜在一起,例如,系統(tǒng)運(yùn)行時同時執(zhí)行進(jìn)程A、進(jìn)程B和進(jìn)程C,產(chǎn)生的日志中可能這一秒記錄的是進(jìn)程A的相關(guān)信息,下一秒記錄的可能是進(jìn)程B的相關(guān)信息,再下一秒可能又記錄進(jìn)程A的相關(guān)信息,再下一秒可能記錄進(jìn)程C的相關(guān)信息。當(dāng)用戶想要獲取某一個進(jìn)程對應(yīng)的信息時,通過搜索命令,可以檢索到該進(jìn)程所在的位置,但是由于該進(jìn)程與其他進(jìn)程摻雜在一起,用戶仍需進(jìn)一步的查找,才能獲取該進(jìn)程的完整信息。由于日志文件中包含的信息量較為龐大,使得用戶查找信息的難度增加,嚴(yán)重影響日志的重要信息檢索的工作效率。
可見,如何能夠快速有效的從海量又雜亂的日志文件中獲取所需的完整信息,是本領(lǐng)域技術(shù)人員亟待解決的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的是提供一種基于linux日志提取方法與裝置,可以快速有效的從海量又雜亂的日志文件中獲取所需的信息。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供一種基于linux日志提取方法,包括:
根據(jù)日志的預(yù)定信息確定數(shù)據(jù)項(xiàng);
設(shè)置所述數(shù)據(jù)項(xiàng)的數(shù)據(jù)結(jié)構(gòu);
依據(jù)所述數(shù)據(jù)項(xiàng)建立數(shù)據(jù)庫表;
依據(jù)所述數(shù)據(jù)結(jié)構(gòu)的格式要求將所述日志的預(yù)定信息導(dǎo)入所述數(shù)據(jù)庫表中。
可選的,所述根據(jù)日志的預(yù)定信息確定數(shù)據(jù)項(xiàng)包括:
依據(jù)所述日志中信息的重要程度確定出所述預(yù)定信息,設(shè)置所述預(yù)定信息對應(yīng)的數(shù)據(jù)項(xiàng)。
可選的,所述設(shè)置所述數(shù)據(jù)項(xiàng)的數(shù)據(jù)結(jié)構(gòu)包括:
根據(jù)所述數(shù)據(jù)項(xiàng)對應(yīng)的所述預(yù)定信息確定出所述數(shù)據(jù)項(xiàng)的數(shù)據(jù)類型。
可選的,所述依據(jù)所述數(shù)據(jù)項(xiàng)建立數(shù)據(jù)庫表包括:
將所述數(shù)據(jù)項(xiàng)作為所述數(shù)據(jù)庫表的列選項(xiàng)。
本發(fā)明實(shí)施例還提供一種基于linux日志提取裝置,包括確定單元、設(shè)置單元、建立單元和導(dǎo)入單元;
所述確定單元,用于根據(jù)日志的預(yù)定信息確定數(shù)據(jù)項(xiàng);
所述設(shè)置單元,用于設(shè)置所述數(shù)據(jù)項(xiàng)的數(shù)據(jù)結(jié)構(gòu);
所述建立單元,用于依據(jù)所述數(shù)據(jù)項(xiàng)建立數(shù)據(jù)庫表;
所述導(dǎo)入單元,用于依據(jù)所述數(shù)據(jù)結(jié)構(gòu)的格式要求將所述日志的預(yù)定信息導(dǎo)入所述數(shù)據(jù)庫表中。
可選的,所述確定單元具體用于依據(jù)所述日志中信息的重要程度確定出所述預(yù)定信息,設(shè)置所述預(yù)定信息對應(yīng)的數(shù)據(jù)項(xiàng)。
可選的,所述設(shè)置單元具體用于根據(jù)所述數(shù)據(jù)項(xiàng)對應(yīng)的所述預(yù)定信息確定出所述數(shù)據(jù)項(xiàng)的數(shù)據(jù)類型。
可選的,所述建立單元具體用于將所述數(shù)據(jù)項(xiàng)作為所述數(shù)據(jù)庫表的列選項(xiàng)。
由上述技術(shù)方案可以看出,根據(jù)日志的預(yù)定信息確定數(shù)據(jù)項(xiàng),不同類型的預(yù)定信息有其對應(yīng)的數(shù)據(jù)項(xiàng),可以依據(jù)該數(shù)據(jù)項(xiàng)建立數(shù)據(jù)庫表。通過設(shè)置數(shù)據(jù)項(xiàng)的數(shù)據(jù)結(jié)構(gòu),使得linux系統(tǒng)可以依據(jù)于所述數(shù)據(jù)結(jié)構(gòu)的格式要求將所述日志的預(yù)定信息導(dǎo)入到所述數(shù)據(jù)庫表中,此時,每個數(shù)據(jù)項(xiàng)中存儲的是該數(shù)據(jù)項(xiàng)所對應(yīng)類型的預(yù)定信息。通過數(shù)據(jù)庫快速搜索命令便可以從該數(shù)據(jù)庫表中獲取到用戶所需的完整信息,極大提高了日志的重要信息檢索的工作效率。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例,下面將對實(shí)施例中所需要使用的附圖做簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種基于linux日志提取方法的流程圖;
圖2為本發(fā)明實(shí)施例提供的一種基于linux日志提取裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下,所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)范圍。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實(shí)施方式對本發(fā)明作進(jìn)一步的詳細(xì)說明。
接下來,詳細(xì)介紹本發(fā)明實(shí)施例所提供的一種基于linux日志提取方法。圖1為本發(fā)明實(shí)施例提供的一種基于linux日志提取方法的流程圖,該方法包括:
S101:根據(jù)日志的預(yù)定信息確定數(shù)據(jù)項(xiàng)。
用于存儲日志的日志文件有其對應(yīng)的存儲路徑即日志路徑,根據(jù)該日志路徑,可以查找到相應(yīng)的日志文件,從而可以從該日志文件中獲取到記錄的日志。在具體實(shí)現(xiàn)中,可以通過編寫相關(guān)的日志提取程序,在該日志提取程序中設(shè)定好該日志路徑,從而使得linux系統(tǒng)可以依據(jù)該日志路徑自動獲取到日志文件中的日志。
在日志文件中記錄的信息量非常龐大,而有些信息對于系統(tǒng)分析并沒有太大的作用,導(dǎo)致重要信息可能會被淹沒在大量的日志記錄中。為了便于用戶查詢所需的重要信息,故此,可以先對日志文件中記錄的日志進(jìn)行篩選,選擇出預(yù)定信息,該預(yù)定信息可以是日志中的重要信息。
在日志記錄中,不同的日志信息其對應(yīng)的重要程度不同,在本發(fā)明實(shí)施例中,可以依據(jù)日志中信息的重要程度確定出所述預(yù)定信息,從而設(shè)置所述預(yù)定信息對應(yīng)的數(shù)據(jù)項(xiàng)。
數(shù)據(jù)項(xiàng)可以用于標(biāo)識預(yù)定信息的類型,不同類型的預(yù)定信息可以設(shè)置其對應(yīng)的數(shù)據(jù)項(xiàng)。確定數(shù)據(jù)項(xiàng)的目的在于,使得日志中重要信息可以按照該數(shù)據(jù)項(xiàng)進(jìn)行存儲,從而實(shí)現(xiàn)存儲的日志更加規(guī)范化,以便于用戶檢索。
其中,日志信息的重要程度可以根據(jù)歷史記錄中經(jīng)常被檢索的日志信息確定,或者是根據(jù)用戶需求確定,例如,用戶想要獲取到某一主機(jī)在某一時間段內(nèi)執(zhí)行了哪些進(jìn)程,依據(jù)用戶想要獲取的信息,可以從日志中確定出這些重要信息即預(yù)定信息,其中主機(jī)、時間和進(jìn)程可以看做是不同類型的重要信息,對于每種類型的重要信息可以設(shè)置相對應(yīng)的數(shù)據(jù)項(xiàng)。
在實(shí)際應(yīng)用中,日志檢索時往往涉及主機(jī)信息、事件發(fā)生的日期和時間、進(jìn)行的操作內(nèi)容,這些信息可以理解為是日志中的預(yù)定信息,根據(jù)該預(yù)定信息確定出的數(shù)據(jù)項(xiàng),可以包括主機(jī)(host)、日期(date)、時間(time)、程序(program)、信息(message)。其中,程序可以用于表示主機(jī)執(zhí)行了哪些進(jìn)程即進(jìn)程的名稱,信息可以用于表示進(jìn)程的具體執(zhí)行過程。
需要說明的是,在本發(fā)明實(shí)施例中,對于日志和日志信息可以理解為是同一個概念,對此不做區(qū)分。
S102:設(shè)置所述數(shù)據(jù)項(xiàng)的數(shù)據(jù)結(jié)構(gòu)。
數(shù)據(jù)結(jié)構(gòu)可以用于表示計算機(jī)存儲和組織數(shù)據(jù)的方式,可以理解為是數(shù)據(jù)項(xiàng)對應(yīng)的日志信息的數(shù)據(jù)格式。在本發(fā)明實(shí)施例中,可以根據(jù)所述數(shù)據(jù)項(xiàng)對應(yīng)的所述預(yù)定信息確定出所述數(shù)據(jù)項(xiàng)的數(shù)據(jù)類型。
數(shù)據(jù)類型可以理解為是數(shù)據(jù)結(jié)構(gòu)的一種名稱,數(shù)據(jù)結(jié)構(gòu)可以通過數(shù)據(jù)類型反映,依據(jù)數(shù)據(jù)類型便可以確定出數(shù)據(jù)項(xiàng)對應(yīng)的日志信息的數(shù)據(jù)格式。
由于每個數(shù)據(jù)項(xiàng)有其對應(yīng)類型的預(yù)定信息,不同類型的預(yù)定信息對應(yīng)的數(shù)據(jù)格式可能相同也可能不同,也即不同的數(shù)據(jù)項(xiàng)其對應(yīng)的數(shù)據(jù)結(jié)構(gòu)不盡相同。用戶需要查詢數(shù)據(jù)項(xiàng)對應(yīng)的預(yù)定信息時,需要按照所需查詢的數(shù)據(jù)項(xiàng)的數(shù)據(jù)格式進(jìn)行輸入,以便于系統(tǒng)可以識別出用戶輸入的信息,并查找到相對應(yīng)的數(shù)據(jù)項(xiàng)。為了簡化用戶查詢操作過程,在本發(fā)明實(shí)施例中,可以將各個數(shù)據(jù)項(xiàng)的數(shù)據(jù)類型設(shè)定為同一種數(shù)據(jù)類型,例如,字符串類型。用戶在查詢相關(guān)日志信息時,則只需按照字符串類型的格式進(jìn)行輸入即可。并且在后續(xù)操作中時,可以按照該數(shù)據(jù)格式將預(yù)定信息導(dǎo)入數(shù)據(jù)庫表。
S103:依據(jù)所述數(shù)據(jù)項(xiàng)建立數(shù)據(jù)庫表。
數(shù)據(jù)庫表可以用于存儲日志的預(yù)定信息。在上述S101中,可以確定出數(shù)據(jù)項(xiàng),由于預(yù)定信息的類型往往有多種,故此,確定出的數(shù)據(jù)項(xiàng)對應(yīng)的可以有多個。在建立數(shù)據(jù)庫表時,可以將所述數(shù)據(jù)項(xiàng)作為所述數(shù)據(jù)庫表的列選項(xiàng)即每一列對應(yīng)一個數(shù)據(jù)項(xiàng),在該列下存儲的是該數(shù)據(jù)項(xiàng)所對應(yīng)類型的預(yù)定信息。
需要說明的是,在本發(fā)明實(shí)施例中,對于S102和S103的執(zhí)行順序不做限定,可以是先執(zhí)行S102再執(zhí)行S103,或者是先執(zhí)行S103再執(zhí)行S102,也可以是同時執(zhí)行S102和S103。
S104:依據(jù)所述數(shù)據(jù)結(jié)構(gòu)的格式要求將所述日志的預(yù)定信息導(dǎo)入所述數(shù)據(jù)庫表中。
建立好數(shù)據(jù)庫表后,需要將預(yù)定信息導(dǎo)入到該數(shù)據(jù)庫表中,每一列表示一個數(shù)據(jù)項(xiàng),在該列下存儲的都是屬于同一個數(shù)據(jù)項(xiàng)的相關(guān)信息,例如,將數(shù)據(jù)表的第一列設(shè)置為數(shù)據(jù)項(xiàng)“主機(jī)”,則在該列中存儲的均是“主機(jī)”信息。并且數(shù)據(jù)庫表中每一行包含的日志信息可以由確定出的數(shù)據(jù)項(xiàng)組成。
為了便于對本發(fā)明技術(shù)方案的理解,下面以一個具體的實(shí)例進(jìn)行介紹,例如,根據(jù)預(yù)定信息確定出的數(shù)據(jù)項(xiàng)有5個,分別為“主機(jī)”、“日期”、“時間”、“程序”和“信息”,這5個數(shù)據(jù)項(xiàng)作為數(shù)據(jù)庫表的列表項(xiàng),即每一列對應(yīng)一個數(shù)據(jù)項(xiàng),在將預(yù)定信息存儲到該數(shù)據(jù)庫表時,以“信息”為例,該“信息”數(shù)據(jù)項(xiàng)中存儲的是每個進(jìn)程的完整信息,當(dāng)用戶想要查看某一個進(jìn)程的具體信息時,通過數(shù)據(jù)庫快速搜索命令,便可以從該數(shù)據(jù)庫表中獲取到該進(jìn)程的完整信息,相比于傳統(tǒng)方式中多個進(jìn)程摻雜在一起的情況,通過本發(fā)明實(shí)施例提供的日志提取方法,可以便于用戶快速獲取到所需的完整信息,無需在海量的日志進(jìn)行進(jìn)一步的查找,提高了日志檢索的效率。并且在該數(shù)據(jù)庫表中每一行存儲的信息均是按照這5個數(shù)據(jù)項(xiàng)的順序進(jìn)行存儲,用戶獲取到某一個數(shù)據(jù)項(xiàng)的信息,便可以知道該行中其他數(shù)據(jù)項(xiàng)的信息。
由上述技術(shù)方案可以看出,根據(jù)日志的預(yù)定信息確定數(shù)據(jù)項(xiàng),不同類型的預(yù)定信息有其對應(yīng)的數(shù)據(jù)項(xiàng),可以依據(jù)該數(shù)據(jù)項(xiàng)建立數(shù)據(jù)庫表。通過設(shè)置數(shù)據(jù)項(xiàng)的數(shù)據(jù)結(jié)構(gòu),使得linux系統(tǒng)可以依據(jù)于所述數(shù)據(jù)結(jié)構(gòu)的格式要求將所述日志的預(yù)定信息導(dǎo)入到所述數(shù)據(jù)庫表中,此時,每個數(shù)據(jù)項(xiàng)中存儲的是該數(shù)據(jù)項(xiàng)所對應(yīng)類型的預(yù)定信息。通過數(shù)據(jù)庫快速搜索命令便可以從該數(shù)據(jù)庫表中獲取到用戶所需的完整信息,極大提高了日志的重要信息檢索的工作效率。
圖2為本發(fā)明實(shí)施例提供的一種基于linux日志提取裝置的結(jié)構(gòu)示意圖,所述裝置包括確定單元21、設(shè)置單元22、建立單元23和導(dǎo)入單元24;
所述確定單元21,用于根據(jù)日志的預(yù)定信息確定數(shù)據(jù)項(xiàng)。
所述設(shè)置單元22,用于設(shè)置所述數(shù)據(jù)項(xiàng)的數(shù)據(jù)結(jié)構(gòu)。
所述建立單元23,用于依據(jù)所述數(shù)據(jù)項(xiàng)建立數(shù)據(jù)庫表。
所述導(dǎo)入單元24,用于依據(jù)所述數(shù)據(jù)結(jié)構(gòu)的格式要求將所述日志的預(yù)定信息導(dǎo)入所述數(shù)據(jù)庫表中。
可選的,所述確定單元具體用于依據(jù)所述日志中信息的重要程度確定出所述預(yù)定信息,設(shè)置所述預(yù)定信息對應(yīng)的數(shù)據(jù)項(xiàng)。
可選的,所述設(shè)置單元具體用于根據(jù)所述數(shù)據(jù)項(xiàng)對應(yīng)的所述預(yù)定信息確定出所述數(shù)據(jù)項(xiàng)的數(shù)據(jù)類型。
可選的,所述建立單元具體用于將所述數(shù)據(jù)項(xiàng)作為所述數(shù)據(jù)庫表的列選項(xiàng)。
以上對本發(fā)明所提供的一種基于linux日志提取方法與裝置進(jìn)行了詳細(xì)介紹。說明書中各個實(shí)施例采用遞進(jìn)的方式描述,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個實(shí)施例之間相同相似部分互相參見即可。對于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。
專業(yè)人員還可以進(jìn)一步意識到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。