一種日志數(shù)據(jù)系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,特別是涉及一種日志數(shù)據(jù)系統(tǒng)。
【背景技術(shù)】
[0002]目前大部分的應(yīng)用系統(tǒng)為了提升自身性能,可以采用分布式等方式將不同的功能模塊分布在不同的服務(wù)器節(jié)點,這種方式可以理解為多節(jié)點部署。比如說,隨著應(yīng)用系統(tǒng)的規(guī)模逐漸擴大,通常會對應(yīng)用服務(wù)器進行橫向擴展,把應(yīng)用程序部署到多臺服務(wù)器上。規(guī)模龐大的系統(tǒng)甚至達到幾十、幾百臺服務(wù)器。
[0003]在多節(jié)點部署的應(yīng)用系統(tǒng)中,節(jié)點中程序在運行時,會實時輸出反應(yīng)程序運行情況的數(shù)據(jù),這種數(shù)據(jù)可以稱為日志數(shù)據(jù),日志數(shù)據(jù)會對應(yīng)用系統(tǒng)的運維起到重要作用。
[0004]在這種多節(jié)點部署的結(jié)構(gòu)下,傳統(tǒng)的保存日志數(shù)據(jù)的方式是,各個節(jié)點將輸出的日志數(shù)據(jù)保存到各自的本地。一旦應(yīng)用系統(tǒng)的程序出現(xiàn)問題,應(yīng)用系統(tǒng)需要依賴各個相關(guān)節(jié)點的日志數(shù)據(jù)進行分析,根據(jù)分析結(jié)果來幫助定位出導(dǎo)致問題發(fā)生的原因。然而節(jié)點的日志數(shù)據(jù)都保存在本地,需要應(yīng)用系統(tǒng)到每臺服務(wù)器上逐一檢查日志數(shù)據(jù),效率非常低下。
【發(fā)明內(nèi)容】
[0005]為了解決上述技術(shù)問題,本發(fā)明提供了一種日志數(shù)據(jù)系統(tǒng),以使得將各個節(jié)點的日志數(shù)據(jù)統(tǒng)一存儲在日志服務(wù)器中,提高了在出現(xiàn)問題時,檢查日志數(shù)據(jù)的效率。
[0006]本發(fā)明實施例公開了如下技術(shù)方案:
[0007]—種日志數(shù)據(jù)系統(tǒng),應(yīng)用于多節(jié)點部署的應(yīng)用系統(tǒng),所述日志數(shù)據(jù)系統(tǒng)包括第一收集中間件,所述第一收集中間件包括日志收集器、日志存儲器和日志發(fā)送器:
[0008]所述日志收集器用于接收多個日志數(shù)據(jù),所述日志數(shù)據(jù)與所述應(yīng)用系統(tǒng)中部署的節(jié)點--對應(yīng);
[0009]所述日志發(fā)送器用于向日志服務(wù)器發(fā)送所述日志收集器接收的日志數(shù)據(jù);
[0010]所述日志存儲器用于存儲尚未發(fā)送的日志數(shù)據(jù),所述尚未發(fā)送的日志數(shù)據(jù)為所述日志收集器接收的,且尚未被所述日志發(fā)送器發(fā)送的日志數(shù)據(jù)。
[0011]可選的,所述日志收集器接收的日志數(shù)據(jù)由所述應(yīng)用系統(tǒng)中對應(yīng)的節(jié)點所發(fā)送,其中,所述應(yīng)用系統(tǒng)中對應(yīng)的節(jié)點在輸出日志數(shù)據(jù)時,通過觸發(fā)指令將輸出的日志數(shù)據(jù)向所述日志收集器發(fā)送。
[0012]可選的,所述日志數(shù)據(jù)系統(tǒng)還包括第二收集中間件:
[0013]所述第一收集中間件的日志收集器接收的日志數(shù)據(jù)由所述第二收集中間件的日志發(fā)送器所發(fā)送,其中,所述第二收集中間件的日志發(fā)送器所發(fā)送的日志數(shù)據(jù)為所述第二收集器所接收的日志數(shù)據(jù)。
[0014]可選的,所述日志存儲器包括內(nèi)存存儲模塊、數(shù)據(jù)庫存儲模塊和文件存儲模塊中的任意一種或多種的組合,所述內(nèi)存存儲模塊以內(nèi)存作為存儲介質(zhì)緩存日志數(shù)據(jù),所述數(shù)據(jù)庫存儲模塊以數(shù)據(jù)庫為存儲介質(zhì)存儲日志數(shù)據(jù),所述文件存儲模塊以文件為存儲介質(zhì)存儲日志數(shù)據(jù)。
[0015]可選的,所述日志數(shù)據(jù)系統(tǒng)還包括日志分析中間件,所述日志分析中間件包括日志展示模塊、日志預(yù)警模塊和日志分析模塊:
[0016]所述日志展示模塊用于對所述日志服務(wù)器中的日志數(shù)據(jù)進行展示;
[0017]所述日志預(yù)警模塊用于當(dāng)錯誤日志數(shù)據(jù)的個數(shù)超出閾值時進行預(yù)警;
[0018]所述日志分析模塊用于在接收到查詢請求時,根據(jù)所述查詢請求在所述日志服務(wù)器進行查詢。
[0019]可選的,
[0020]所述日志數(shù)據(jù)包括日志的輸出級別、輸出格式、輸出日志的應(yīng)用名稱、對應(yīng)節(jié)點所在服務(wù)器的標(biāo)識任意一個或多個的組合,以及日志內(nèi)容。
[0021]由上述技術(shù)方案可以看出,日志數(shù)據(jù)系統(tǒng)應(yīng)用在多節(jié)點部署的應(yīng)用系統(tǒng)中,所述日志數(shù)據(jù)系統(tǒng)的第一收集中間件包括日志收集器、日志存儲器和日志發(fā)送器,通過第一收集中間件的日志收集器接收多個節(jié)點發(fā)來的多個日志數(shù)據(jù),再通過日志發(fā)送器將接收到的日志數(shù)據(jù)發(fā)送到用于統(tǒng)一存儲日志數(shù)據(jù)的日志服務(wù)器,而且,第一收集中間件的日志存儲器可以將接收到,且尚未向所述日志服務(wù)器發(fā)送的日志數(shù)據(jù)進行妥善保存,由此將多節(jié)點部署的應(yīng)用系統(tǒng)中各個節(jié)點的日志數(shù)據(jù)統(tǒng)一存儲在所述日志服務(wù)器中,在應(yīng)用系統(tǒng)的程序出現(xiàn)問題時,可以直接在所述日志服務(wù)器上檢查日志數(shù)據(jù),效率得到了提高。
【附圖說明】
[0022]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0023]圖1為本發(fā)明實施例提供的一種日志數(shù)據(jù)系統(tǒng)的系統(tǒng)結(jié)構(gòu)圖;
[0024]圖2為本發(fā)明實施例提供的一種日志數(shù)據(jù)系統(tǒng)的系統(tǒng)結(jié)構(gòu)圖;
[0025]圖3為本發(fā)明實施例提供的一種收集中間件的結(jié)構(gòu)圖;
[0026]圖4為本發(fā)明實施例提供的一種日志分析中間件的結(jié)構(gòu)圖;
[0027]圖5為本發(fā)明實施例提供的一種日志數(shù)據(jù)系統(tǒng)的場景應(yīng)用示意圖。
【具體實施方式】
[0028]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0029]目前大部分的應(yīng)用系統(tǒng)為了提升自身性能,可以采用分布式等方式將不同的功能模塊分布在不同的服務(wù)器節(jié)點,這種方式可以理解為多節(jié)點部署。在多節(jié)點部署的應(yīng)用系統(tǒng)中,節(jié)點中程序在運行時,會實時輸出反應(yīng)程序運行情況的數(shù)據(jù),這種數(shù)據(jù)可以稱為日志數(shù)據(jù),日志數(shù)據(jù)會對應(yīng)用系統(tǒng)的運維起到重要作用。在這種多節(jié)點部署的結(jié)構(gòu)下,傳統(tǒng)的保存日志數(shù)據(jù)的方式是,各個節(jié)點將輸出的日志數(shù)據(jù)保存到各自的本地。一旦應(yīng)用系統(tǒng)的程序出現(xiàn)問題,應(yīng)用系統(tǒng)需要依賴各個相關(guān)節(jié)點的日志數(shù)據(jù)進行分析,根據(jù)分析結(jié)果來幫助定位出導(dǎo)致問題發(fā)生的原因。然而節(jié)點的日志數(shù)據(jù)都保存在本地,沒有集中存儲和管理,需要應(yīng)用系統(tǒng)到每臺服務(wù)器上逐一檢查日志數(shù)據(jù),效率非常低下。
[0030]為此,本發(fā)明實施例提供了一種日志數(shù)據(jù)系統(tǒng),所述日志數(shù)據(jù)系統(tǒng)應(yīng)用在多節(jié)點部署的應(yīng)用系統(tǒng)中,所述日志數(shù)據(jù)系統(tǒng)的第一收集中間件包括日志收集器、日志存儲器和日志發(fā)送器,通過第一收集中間件的日志收集器接收多個節(jié)點發(fā)來的多個日志數(shù)據(jù),再通過日志發(fā)送器將接收到的日志數(shù)據(jù)發(fā)送到用于統(tǒng)一存儲日志數(shù)據(jù)的日志服務(wù)器,而且,第一收集中間件的日志存儲器可以將接收到,且尚未向所述日志服務(wù)器發(fā)送的日志數(shù)據(jù)進行妥善保存,由此將多節(jié)點部署的應(yīng)用系統(tǒng)中各個節(jié)點的日志數(shù)據(jù)統(tǒng)一存儲在所述日志服務(wù)器中,在應(yīng)用系統(tǒng)的程序出現(xiàn)問題時,可以直接在所述日志服務(wù)器上檢查日志數(shù)據(jù),效率得到了提高。
[0031]實施例一
[0032]本發(fā)明實施例提供的日志數(shù)據(jù)系統(tǒng)可以包括一個或多個收集中間件。這里所述的中間件可以理解為一種可以直接使用而不用關(guān)注其具體實現(xiàn)細(xì)節(jié)的技術(shù)實現(xiàn)。所述收集中間件包括日志收集器(log-collector)、日志存儲器(log-channel)和日志發(fā)送器(log-sender)。所述收集中間件用于將收集到的各個節(jié)點的日志數(shù)據(jù)發(fā)送到日志服務(wù)器,由日志服務(wù)器統(tǒng)一保存。這樣在應(yīng)用系統(tǒng)的程序出現(xiàn)問題時,可以在日志服務(wù)器中查找日志數(shù)據(jù),而不用在多個服務(wù)器上逐一查找。接下來將對日志數(shù)據(jù)系統(tǒng)中的收集中間件進行描述。
[0033]圖1為本發(fā)明實施例提供的一種日志數(shù)據(jù)系統(tǒng)的系統(tǒng)結(jié)構(gòu)圖,應(yīng)用于多節(jié)點部署的應(yīng)用系統(tǒng),所述日志數(shù)據(jù)系統(tǒng)包括第一收集中間件100,所述第一收集中間件包括日志收集器101、日志存儲器102和日志發(fā)送器103:
[0034]所述日志收集器101用于接收多個日志數(shù)據(jù),所述日志數(shù)據(jù)與所述應(yīng)用系統(tǒng)中部署的節(jié)點對應(yīng)。
[0035]舉例說明,所述日志數(shù)據(jù)可以包括日志的輸出級別、輸出格式、輸出日志的應(yīng)用名稱、對應(yīng)節(jié)點所在服務(wù)器的標(biāo)識任意一個或多個的組合,以及日志內(nèi)容。
[0036]其中,節(jié)點上運行的可以是應(yīng)用程序(英文-Applicat1n,縮寫:APP)。
[0037]所述日志發(fā)送器103用于向日志服務(wù)器發(fā)送所述日志收集器101接收的日志數(shù)據(jù)。其中,所述日志服務(wù)器可以是分布式文件系統(tǒng)(英文:Hadoop Distributed FileSystem,縮寫:HDFS),
[0038]所述日志存儲器102用于存儲尚未發(fā)送的日志數(shù)據(jù),所述尚未發(fā)送的日志數(shù)據(jù)為所述日志收集器101接收的,且尚未被所述日志發(fā)送器103發(fā)送的日志數(shù)據(jù)。
[0039]舉例說明,本發(fā)明并不具體限定所述日志收集器101所接收的日志數(shù)據(jù)的來源,該日志數(shù)據(jù)既可以直接來自所述應(yīng)用系統(tǒng)的節(jié)點,也可以來自所述日志數(shù)據(jù)系統(tǒng)中的其他收集中間件。
[0040]也就是說,可選的,所述日志收集器接收的日志數(shù)據(jù)由所述應(yīng)用系統(tǒng)中對應(yīng)的節(jié)點所發(fā)送,其中,所述應(yīng)用系統(tǒng)中對應(yīng)的節(jié)點在輸出日志數(shù)據(jù)時,通過觸發(fā)指令將輸出的日志數(shù)據(jù)向所述日志收集器發(fā)送。
[0041]或者,可選的,所述日志數(shù)據(jù)系統(tǒng)還包括第二收集中間件:
[0042]所述第一收集中間件的日志收集器接收的日志數(shù)據(jù)由所述第二收集中間件的日志發(fā)送器所發(fā)送,其中,所述第二收集中間件的日志發(fā)送器所發(fā)送的日志數(shù)據(jù)為所述第二收集器所接收的日志數(shù)據(jù)。通過把日志數(shù)據(jù)發(fā)送到下一個日志收集器。把日志收集中間件串聯(lián)起來,這樣可以減輕單個日志收集中間件的壓力。
[0043]這里需要說明的是,所述第一收集中間件的日志收集器所接收的日志數(shù)據(jù)的來源至少可以包括三種可能。第一種可能,所述第一收集中間件的日志收集器所接收的所