一種日誌採集裝置及方法
2023-10-06 06:46:59 1
一種日誌採集裝置及方法
【專利摘要】本發明提供了一種日誌採集裝置及方法,其中,日誌採集裝置包括:日誌監控模塊,用於監控當前伺服器上的多個應用系統的日誌文件;確定各日誌文件新增的記錄,並保存各日誌文件以及新增的記錄;數據傳輸服務模塊,用於將新增的記錄進行跨網傳輸以導入雲平臺的Hadoop分布式文件系統功能,和/或,根據需要將保存的日誌文件進行跨網傳輸以導入雲平臺的Hadoop分布式文件系統功能。採用本發明,在滿足實時性要求的同時,可以避免垃圾數據的傳送,克服了現有技術不能及時斷點續傳、數據丟失的問題。
【專利說明】一種日誌採集裝置及方法
【技術領域】
[0001]本發明涉及數據採集領域,特別涉及一種日誌採集裝置及方法。
【背景技術】
[0002]在網際網路以及傳統行業,「大數據」時代已經來臨,各個公司、團體機構都在極力研宄、構建自己的大數據處理平臺,通過對海量數據的整合、分析、統計,充分利用數據中蘊含的價值,挖掘出對企業管理、業務改進、商機捕捉等更為有用的信息,或者輔助企業網站系統的運營。而這些大規模的數據都是需要從各個應用系統中獲取,對於規模較大的公司,應用系統眾多,數據生成、存儲方式、規範都有所不同,尤其是應用系統的日誌數據。如何可靠、實時的將大規模的日誌數據傳送到大數據平臺進行ETL(Extract-Transform-Load,萃取、轉置、加載)處理、統計、分析、挖掘,是構建大數據平臺必須面對的問題。
[0003]常見的日誌數據採集方式有:SNMP Trap (SNMP自陷;SNMP:Simple NetworkManagement Protocol,簡單網絡管理協議)機制採集、系統日誌(Syslog)協議的採集、Telnet採集及文本方式(Mail (郵件)或FTP(File Transfer Protocol,文本傳輸協議))採集等。而某些網際網路公司使用rsync (類unix系統下的數據鏡像備份工具)服務定時的將數據傳送到大數據平臺,然後由大數據平臺的監測程序完成數據入庫操作。
[0004]最近隨著大數據的不斷地被網際網路公司、學術機構認可並應用,開源的數據採集方案如Apache Flume和Kafka等越來越受業界關注。Cloudera開源出來的Flume可以實現點對點的實時數據傳輸,且支持多種數據源的採集。Linkedln的Kafka是一個分布式、分區的、多副本的、多訂閱者的「提交」日誌系統,採用的策略是:生產者把數據推到Kafka集群上,而消費者主動去集群上拉數據。
[0005]目前的日誌採集方案,不能在實時地進行日誌採集時,還能夠避免垃圾數據產生、數據丟失,並且能夠及時進行斷點續傳。
【發明內容】
[0006]本發明針對上述問題,提出了一種日誌採集裝置及方法,用以在實時地進行日誌採集時,能夠避免垃圾數據產生、數據丟失,並且還能夠及時進行斷點續傳。
[0007]本發明提供了一種日誌採集裝置,包括:
[0008]日誌監控模塊,用於監控當前伺服器上的多個應用系統的日誌文件;確定各日誌文件新增的記錄,並保存各日誌文件以及新增的記錄;
[0009]數據傳輸服務模塊,用於將新增的記錄進行跨網傳輸以導入雲平臺的HDFS功能,和/或,根據需要將保存的日誌文件進行跨網傳輸以導入雲平臺的HDFS功能。
[0010]本發明提供了一種日誌採集方法,包括如下步驟:
[0011]監控當前伺服器上的多個應用系統的日誌文件;
[0012]確定各日誌文件新增的記錄,並保存各日誌文件以及新增的記錄;
[0013]將新增的記錄進行跨網傳輸以導入雲平臺的HDFS功能,和/或,根據需要將保存的日誌文件進行跨網傳輸以導入雲平臺的HDFS功能。
[0014]本發明有益效果:
[0015]相對於現有技術中只能定時定點傳送的方案,由於在本發明實施例提供的技術方案中,在確定各日誌文件新增記錄後便將新增的記錄進行跨網傳輸導入雲平臺的HDFS(Hadoop Distributed File System,Hadoop分布式文件系統)功能,因此能夠滿足實時性要求,同時也能在數據量增加時能夠及時處理大規模的實時數據。
[0016]而對於點對點的實時數據傳輸,導致眾多垃圾數據傳送到大數據平臺以及不能及時斷點續傳、數據丟失的方案,由於在本發明實施例提供的技術方案中,僅傳輸各日誌文件新增的記錄,因此避免了垃圾數據的傳送;同時,由於在本發明實施例提供的技術方案中還保存了各日誌文件以及新增的記錄,使得原日誌文件以及上傳的記錄變化都是可以查詢獲知的,當需要進行斷點續傳或者重傳丟失的數據時,查詢獲取相應的數據重傳即可,克服了現有技術不能及時斷點續傳、以及數據丟失的問題。
【專利附圖】
【附圖說明】
[0017]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域的普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0018]圖1為本發明實施例中日誌採集裝置的結構示意圖;
[0019]圖2為本發明實施例中傳輸服務監控模塊的實施流程示意圖;
[0020]圖3為本發明實施例中日誌監控模塊的實施流程示意圖;
[0021]圖4為本發明實施例中數據傳輸服務模塊的實施流程示意圖;
[0022]圖5為本發明實施例中數據傳輸流示意圖;
[0023]圖6為本發明實施例中提供的日誌採集方法實施流程示意圖。
【具體實施方式】
[0024]為了使本發明的技術方案及優點更加清楚明白,以下結合附圖對本發明的示例性實施例進行進一步詳細的說明,顯然,所描述的實施例僅是本發明的一部分實施例,而不是所有實施例的窮舉。
[0025]發明人在發明過程中注意到:
[0026]常見的數據採集方式有著明顯的缺點。比如使用rsync服務採集日誌,只能定時定點傳送,不能滿足實時性要求。而且隨著業務的增加,定時任務的管理會越來越混亂。同時數據量的增加使得現有的方式不能及時處理大規模的實時數據。使用Syslog採集數據過分的依賴於Syslog服務,且該方案也僅適用於伺服器系統日誌數據採集。
[0027]Apache Flume缺點也很明顯,對數據的ETL功能有限,該方案會導致眾多垃圾數據傳送到大數據平臺,不但佔用網絡帶寬而且對大數據平臺的後續處理帶來壓力;而且,在Flume出現問題後不能及時從斷點續傳,數據會有丟失現象;同時,Flume對應用系統的侵入度太大,操作不當會毀損應用系統原有的文件;當數據量大時,數據會得不到及時,會在某個節點堆積數據,對該節點的存儲帶來極大壓力。
[0028]而該方案中的Kafka是一個消息傳輸的中間件,提供的簡單的API (Applicat1nProgramming Interface,應用程式編程接口),編程難度大,而且本身不具有採集數據的功能,只能作為數據傳輸的一個臨時通道。
[0029]基於現有技術的上述不足,本發明實施例中提供了一種日誌採集裝置,下面進行說明。
[0030]圖1為日誌採集裝置結構示意圖,如圖1所示,裝置中可以包括:
[0031]日誌監控模塊101,用於監控當前伺服器上的多個應用系統的日誌文件;確定各日誌文件新增的記錄,並保存各日誌文件以及新增的記錄;
[0032]數據傳輸服務模塊102,用於將新增的記錄進行跨網傳輸以導入雲平臺的HDFS功能,和/或,根據需要將保存的日誌文件進行跨網傳輸以導入雲平臺的HDFS功能。
[0033]實施中,日誌監控模塊用於實現對多點、多系統的日誌目錄的實時監控,提取新增的日誌記錄供數據傳輸服務模塊傳輸,具體實施中可以設置一個目錄,如本發明實施例中命名為spooldir的目錄,日誌監控模塊可以將提取的新增的日誌記錄放入數據傳輸服務模塊監控的spooldir目錄,數據傳輸服務模塊在該目錄監控到有新增文件後就進行發送。
[0034]數據傳輸服務模塊用於實現日誌數據跨網傳輸,以及將日誌數據導入HDFS功能。
[0035]實施中,還可以進一步包括:
[0036]傳輸服務監控模塊103,用於監控記錄和/或日誌文件的傳輸過程,以使數據傳輸服務模塊的傳輸進程處於運行狀態。
[0037]實施中,傳輸服務監控模塊用於監控數據傳輸服務的運行,保證傳輸Agent (代理)處於運行狀態;具體的,傳輸服務監控模塊是數據傳輸服務模塊運行狀態的監控模塊,負責該模塊的啟動,並保證該模塊的服務進程處於運行狀態。實施中,該模塊可以分為兩部分:(1)初始啟動數據傳輸服務(2)循環監控數據傳輸服務運行狀態。圖2為傳輸服務監控模塊的實施流程示意圖,如圖2所示,傳輸服務監控模塊具體的實施流程可以如下:
[0038]步驟201:開始。
[0039]步驟202:判斷數據傳輸伺服器是否啟動,若數據傳輸服務啟動,執行步驟205 ;若數據傳輸服務沒有啟動,執行步驟203。
[0040]步驟203:啟動傳輸服務。
[0041]步驟204:sleep 10s,即休眠10秒鐘,具體的休眠時間長度可以根據具體實施中的情況而確定,這裡休眠設為10秒鐘僅作示例說明,不作具體限定。
[0042]步驟205:sleep 5minutes,即休眠5分鐘,同上,具體的休眠時間長度可以根據具體實施中的情況而確定。
[0043]步驟206判斷數據傳輸伺服器是否啟動,即:再次判斷數據傳輸伺服器是否啟動,若此次數據傳輸服務啟動,執行步驟205 ;若此次數據傳輸服務沒有啟動,執行步驟207。
[0044]步驟207:啟動傳輸服務。
[0045]步驟208:判斷啟動傳輸服務是否成功,若啟動傳輸服務成功,執行步驟205 ;若啟動傳輸服務不成功,執行步驟209。
[0046]步驟:209:警報,即:以文字、聲音、圖像或其他能夠表示該警報信息的形式向日誌維護相關工作人員發出警報信息,便於及時對數據傳輸故障進行分析與解決。
[0047]實施中,日誌監控模塊還可以進一步用於通過監聽所監控的應用系統的文件的修改、或創建、或刪除事件的線程並響應來對應用系統進行監控。也即,日誌監控模通過監聽所監控的文件的修改、創建、刪除等事件的線程並響應來實現對文件的監控。
[0048]實施中,日誌監控模塊還可以進一步用於在保存各日誌文件以及新增的記錄時,在內存中保存各日誌文件以及新增的記錄,並標識已經處理或未處理;定時將已經處理或未處理的各日誌文件以及新增的記錄保存至磁碟文件。
[0049]具體的,日誌監控模塊主要負責監控當前伺服器上的多個應用系統的日誌文件。具體處理邏輯的流程如下述圖3所示。具體實施中,可以通過讓該模塊維護兩份記錄數據待處理的文檔隊列和已經處理過的文檔列表,例如在內存中以waitQueue和optedList形式存在,然後定期寫入磁碟文件中。
[0050]日誌監控模塊初次啟動將歷史日誌文件分批次拷貝到數據傳輸服務模塊,記錄各個文件傳輸點位置,保存到一個記錄板文件中。該模塊正常運行後,將日誌文件新增的記錄傳送到數據傳輸服務模塊,並保存各個文件的已讀取位置,以及屬於哪個系統等信息。該模塊的記錄板可以在整個服務出現故障後能夠及時恢復數據傳輸。同時模塊通過配置要監控的目錄、系統信息、採集頻率實現對多點多系統的日誌數據的可控傳輸。
[0051 ] 圖3為日誌監控模塊的實施流程示意圖,如圖3所示,日誌監控模塊具體的實施流程可以如下:
[0052]步驟301:啟動數據傳輸服務,即:啟動傳輸日誌數據的傳輸服務。
[0053]步驟302:讀取配置文件得到List〈MonitorDirConf>,即讀取日誌數據採集的配置文件,根據日誌數據採集的配置文件得到
[0054]List-配置的監測目錄列表,具體實施中,可以將得到的配置的監測目錄列表存儲在命名為「logsConf.xml」的xml文件中,也可以根據具體情況或需要以其他格式文件存儲並進行命名。
[0055]步驟303:根據MonitorDirConf初始化等待處理的文件隊列waitQueue、已經處理的文件隊列optedList,根據監測目錄的配置信息,將日誌數據進行初始化分類,將日誌數據待處理的文件歸入waitQueue,將已經處理過日誌數據的文件歸入optedList,從而得到記錄等待處理的文件隊列waitQueue.log和已經處理的文件隊列optedList.logo
[0056]步驟304:開始監控MonitorConf.Directory,即:開始監控根據日誌數據採集配置文件得到的監測目錄中的文件。
[0057]步驟305:判斷是否出現事件,這裡的事件具體是指文件創建、修改或刪除事件。若出現事件,執行步驟306、306』或306」 ;若未出現事件,執行步驟312。
[0058]步驟306:步驟305中出現的事件為onFileCreat,即出現創建文件的事件時,執行步驟307。
[0059]步驟306』:步驟305中出現的事件為onFileChange,即出現修改文件的事件時,執行步驟308。
[0060]步驟306」:步驟305中出現的事件為onFileDelete,即出現刪除文件的事件時,記錄該刪除文件記錄。
[0061]步驟307:將記錄元組(file_path,0)加入waitQueue,將創建文件事件日誌記錄涉及的文件路徑及該日誌記錄需跳過的字節數0加入到waitQueue中。
[0062]步驟308:判斷file_path是否在waitQueue中,即:判斷修改文件事件日誌記錄涉及的文件路徑是否在waitQueue中,若不在,執行步驟309。
[0063]步驟309:判斷file_path是否在optedList中,即:當判斷修改文件事件日誌記錄涉及的文件路徑不在waitQueue中,繼續判斷修該日誌記錄涉及的的文件路徑是否在optedList中,若在optedList中,執行步驟310 ;若步驟optedList中,執行步驟311。
[0064]步驟310:將 optedList 中的記錄元組(file_path,skip_bytes)移除,加入waitQueue,即,當判斷修改文件事件日誌記錄涉及的的文件路徑在optedList中,將optedList中的該文件路徑和該日誌記錄需跳過的字節數記錄移除,將optedList中的該文件路徑和該日誌記錄需跳過的字節數的記錄元組加入到waitQueue中。
[0065]步驟311:將記錄元組(file_path,0)加入waitQueue,即:當判斷修改文件事件日誌記錄涉及的的文件路徑不在optedList中時,說明該日誌記錄未被處理過,該日誌記錄需跳過的字節數為0,將該日誌記錄涉及的的文件路徑和該日誌記錄需跳過的字節數0加入到waitQueue中。
[0066]步驟312:繼續監控,S卩:當前沒有出現創建、修改或刪除文件的事件時,繼續監控有無創建、修改或刪除文件的事件發生。
[0067]步驟313:啟動日誌數據處理線程。
[0068]步驟314:處理並傳輸日誌數據。
[0069]步驟315:判斷是否waitQueue.size >0,即:判斷等待處理的文件隊列waitQueue大小是否大於0,若大於0,執行步驟316 ;若不大於0,執行步驟317:
[0070]步驟316:從waitQueue取出一個記錄元組(f ile_path,skip_bytes)讀取數據通過 Producer 放入 Kafka,即:從 waitQueue 中取一個記錄元組(f ile_path,skip_bytes),該記錄元組包括的信息為該日誌記錄涉及的文件路徑及該日誌記錄需跳過的字節數,依據此元組數據從相應日誌文件中讀取數據,由Kafka中的數據生產者(producer)放入Kafka的消息隊列中。
[0071]步驟317:Sleep(60s),即:休眠60秒,具體的休眠時間長度可以根據具體實施中的情況而確定,這裡僅作示例說明,不作具體限定。
[0072]步驟318:獲得CPU、內存、網絡情況,即:獲得伺服器的CPU、內存和/或網絡質量等情況。
[0073]步驟319:判斷是否可以處理並傳輸日誌數據,即:通過獲得的伺服器的CPU、內存和/或網絡質量確定是否可以處理並傳輸日誌數據,若可以處理並傳輸日誌數據,執行步驟321 ;若不可以處理並傳輸日誌數據,執行步驟322。
[0074]步驟320:判斷日誌處理線程是否是活的,若日誌處理線程是活的,執行步驟317 ;若日誌處理線程不是活的,執行步驟321。
[0075]步驟321:喚醒日誌處理線程。
[0076]步驟322:判斷日誌處理線程是否是活的,若日誌處理線程是活的,執行步驟323 ;若日誌處理線程不是活的,執行步驟325。
[0077]步驟323:使日誌處理線程休眠。
[0078]步驟324:獲得當前日誌的skip_bytes更新記錄元組(file_path,skip_bytes)保存到waitQueue,即:獲得當前日誌記錄需跳轉的字節數,將日誌記錄涉及的文件路徑及該當前日誌記錄需跳轉的字節數保存至待處理的文件隊列中。
[0079]步驟325:Sleep (60s),即:休眠60秒,具體的休眠時間長度可以根據具體實施中的情況而確定。
[0080]實施中,數據傳輸服務模塊還可以進一步用於採用分布式消息系統Kafka提供的應用程式編程接口 API暫時存儲所述日誌數據,在將所述日誌數據導入至Hadoop分布式文件系統時,使用Simple Consumer接口利用Zookeeper (分布式協調系統)同步機制保存對所述日誌數據消費的偏移量。
[0081]具體的,數據傳輸服務模塊作為數據採集的基礎層,實現日誌數據、交易數據的跨網傳輸,以及數據導入雲平臺的HDFS功能。此模塊可以採用Kafka提供的API接口實現數據的短暫存儲,確保數據可以重複消費,在數據導入HDFS時,使用SimpleConsumer的接口,利用Zookeeper的同步機制保存消費點OFFSET,對Kafka集群中的不同Topic的數據進行消費。Kafka是一種顯式的分布式系統。Kafka假設,數據生產者、代理(Brokers)和數據使用者(consumer)分散於多臺機器之上。由數據生產者發布關於某話題(topic)的消息,消息被發送至作為代理的伺服器。若干的數據使用者訂閱某個話題,然後數據生產者所發布的每條消息都會被發送給所有的使用者。具體實施流程如下述圖4所示。在數據接收模塊通過讀取配置文件,實現對不同日誌的ETL功能。
[0082]在實施中,數據傳輸模塊中Kafka可以使用其他消息中間件代替,只要能夠提供消息傳輸服務即可。
[0083]圖4為數據傳輸服務模塊的實施流程示意圖,如圖4所示,數據傳輸服務模塊具體的實施流程可以如下:數據傳輸服務模塊採用Kafka提供的API接口,有數據生產者對應的是圖4中的數據發送模塊401,數據發送模塊將數據發送至由多個代理(Broker)組成的Kafka集群402,數據使用者這裡對應的是圖4中的數據接收模塊403,數據接收模塊從Kafka集群中的代理處接收數據,進行消息消費。在Kafka中,由數據使用者負責維護反映哪些消息已被使用的狀態信息,通常用偏移量表示那些消息已被使用。典型情況下,Kafka使用者的庫會把狀態數據保存到Zooke印er404之中。通常Kafka是運行在集群中的伺服器上,沒有中央的「主」節點,代理彼此之間是對等的,不需要任何手動配置即可隨時添加或刪除。同樣,數據發送模塊和數據接收模塊可以在任何時候開啟。每個代理都可以在Zookeeper中註冊的一些元數據,例如,可用的主題。數據發送模塊和數據消費者可以使用Zookeeper發現主題和相互協調。
[0084]實施中,數據傳輸服務模塊還可以進一步用於在傳輸記錄和/或日誌文件至雲平臺伺服器時,當日誌採集裝置位於內網時,將記錄和/或日誌文件傳輸至雲平臺伺服器;或,當日誌採集裝置位於外網時,在內網設置單向傳輸的跳轉節點,通過跳轉節點傳輸記錄和/或日誌文件至雲平臺伺服器。
[0085]具體的,圖5為數據傳輸流示意圖,如圖5所示,為了要滿足跨網絡傳輸,即日誌採集裝置所在的日誌源伺服器500可能在公司內網也可能在外網,日誌源伺服器500中包括:傳輸服務監控模塊501、日誌監控模塊502和數據傳輸服務模塊503。通過在內網的伺服器上設置一個跳轉節點-跳轉伺服器510,在防火牆系統中為其開通單向傳輸的埠,跳轉伺服器510包括:傳輸服務監控模塊511和數據傳輸服務模塊512。其中對於外網日誌數據需要經過跳轉伺服器節點的過渡處理,間接傳送到雲平臺伺服器520然後導入HDFS,雲平臺伺服器520包括:傳輸服務監控模塊521和數據傳輸服務模塊522。內網的日誌數據直接通過數據傳輸服務模塊傳輸到雲平臺的伺服器上然後導入到HDFS中。
[0086]基於同一發明構思,本發明實施例中還提供了一種日誌採集方法。由於該方法解決問題的原理與一種日誌採集裝置相似,因此該方法的實施可以參見裝置的實施,重複之處不再贅述。
[0087]圖6為本發明實施例中提供的日誌採集方法實施流程示意圖,如圖6所示,可以包括如下步驟:
[0088]步驟601:監控當前伺服器上的多個應用系統的日誌文件;
[0089]步驟602:確定各日誌文件新增的記錄,並保存各日誌文件以及新增的記錄;
[0090]步驟603:將新增的記錄進行跨網傳輸以導入雲平臺的HDFS功能,和/或,根據需要將保存的日誌文件進行跨網傳輸以導入雲平臺的HDFS功能。
[0091 ] 實施中,還可以進一步包括:
[0092]監控記錄和/或日誌文件的傳輸過程,以使傳輸進程處於運行狀態。
[0093]實施中,監控當前伺服器上的多個應用系統的日誌文件,是通過監聽所監控的應用系統的文件的修改、或創建、或刪除事件的線程並響應來對應用系統進行監控的。
[0094]實施中,保存各日誌文件以及新增的記錄,可以包括:
[0095]在內存中保存各日誌文件以及新增的記錄,並標識已經處理或未處理;
[0096]定時將已經處理或未處理的各日誌文件以及新增的記錄保存至磁碟文件。
[0097]實施中,還可以進一步包括:
[0098]採用分布式消息系統Kafka提供的應用程式編程接口 API暫時存儲所述日誌數據,在將所述日誌數據導入至Hadoop分布式文件系統時,使用Simple Consumer接口利用Zookeeper同步機制保存對所述日誌數據消費的偏移量。
[0099]實施中,傳輸記錄和/或日誌文件至雲平臺伺服器,可以包括:
[0100]當監測的伺服器位於內網時,將記錄和/或日誌文件傳輸至雲平臺伺服器;或,當監測的伺服器位於外網時,在內網設置單向傳輸的跳轉節點,通過跳轉節點傳輸記錄和/或日誌文件至雲平臺伺服器。
[0101]由上述實施例可見,在本發明實施例提供的技術方案是一種基於大數據平臺的多點、可靠的大規模實時日誌數據採集方案。提供了文件監控的處理及其恢復機制;進一步的,使數據傳輸服務與Kafka的有機結合,借用其消息發布機制,開發完善的消息消費實現數據傳輸;進一步的,監控日誌文件可配置,並且實現多線程監控日誌目錄,多線程處理新增日誌發送到日誌傳輸服務。
[0102]由於在方案中對當前伺服器上的多個應用系統的日誌文件進行監控,因此可以多點採集,讓更多的系統為大數據平臺輸送數據。進一步的,可以通過配置日誌監控模塊式,便可以採集不同應用系統的多種日誌,每條記錄都有所屬系統、日誌種類的標記,豐富數據的採集;由於在傳輸各日誌文件新增的記錄的同時,還保存了各日誌文件以及新增的記錄,因此可以實現可靠、穩定傳輸,支持斷點續傳,出現故障後也能夠及時恢復數據傳輸。具體而言,一方面可以通過對waitQueue和optedList兩個記錄的維護,便可支持斷點續傳,進一步的,同時通過使用Kafka作為傳輸通過,所有的消息可以在Kafka集群上保留N天,可緩解大數據量對單點帶來的存儲壓力,另一方面服務監控模塊可以保證數據傳輸模塊的正常運行;由於通過監控,能夠實時發現各日誌文件的變動,因而也能對新增的變動實時傳輸,實現了實時的傳輸大規模數據,讓分析、挖掘系統能充分發揮數據的實時價值。
[0103]為了描述的方便,以上裝置的各部分以功能分為各種模塊或單元分別描述。當然,在實施本發明時可以把各模塊或單元的功能在同一個或多個軟體或硬體中實現。
[0104]本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限於磁碟存儲器、CD-ROM、光學存儲器等)上實施的電腦程式產品的形式。
[0105]本發明是參照根據本發明實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方框圖來描述的。應理解可由電腦程式指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些電腦程式指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0106]這些電腦程式指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0107]這些電腦程式指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0108]儘管已描述了本發明的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本發明範圍的所有變更和修改。
[0109]顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和範圍。這樣,倘若本發明的這些修改和變型屬於本發明權利要求及其等同技術的範圍之內,則本發明也意圖包含這些改動和變型在內。
【權利要求】
1.一種日誌採集裝置,其特徵在於,包括: 日誌監控模塊,用於監控當前伺服器上的多個應用系統的日誌文件;確定各日誌文件新增的記錄,並保存各日誌文件以及新增的記錄; 數據傳輸服務模塊,用於將新增的記錄進行跨網傳輸以導入雲平臺的Hadoop分布式文件系統HDFS功能,和/或,根據需要將保存的日誌文件進行跨網傳輸以導入雲平臺的HDFS功能。
2.如權利要求1所述的裝置,其特徵在於,進一步包括: 傳輸服務監控模塊,用於監控記錄和/或日誌文件的傳輸過程,以使數據傳輸服務模塊的傳輸進程處於運行狀態。
3.如權利要求1或2所述的裝置,其特徵在於,日誌監控模塊進一步用於通過監聽所監控的應用系統的文件的修改、或創建、或刪除事件的線程並響應來對應用系統進行監控。
4.如權利要求1所述的裝置,其特徵在於,日誌監控模塊進一步用於在保存各日誌文件以及新增的記錄時,在內存中保存各日誌文件以及新增的記錄,並標識已經處理或未處理;定時將已經處理或未處理的各日誌文件以及新增的記錄保存至磁碟文件。
5.如權利要求1所述的裝置,其特徵在於,數據傳輸服務模塊進一步用於採用分布式消息系統Kafka提供的應用程式編程接口 API暫時存儲所述日誌數據,在將所述日誌數據導入至Hadoop分布式文件系統時,使用Simple Consumer接口利用Zookeeper同步機制保存對所述日誌數據消費的偏移量。
6.如權利要求1所述的裝置,其特徵在於,數據傳輸服務模塊進一步用於在傳輸記錄和/或日誌文件至雲平臺伺服器時,當日誌採集裝置位於內網時,將記錄和/或日誌文件傳輸至雲平臺伺服器;或,當日誌採集裝置位於外網時,在內網設置單向傳輸的跳轉節點,通過跳轉節點傳輸記錄和/或日誌文件至雲平臺伺服器。
7.一種日誌採集方法,其特徵在於,包括如下步驟: 監控當前伺服器上的多個應用系統的日誌文件; 確定各日誌文件新增的記錄,並保存各日誌文件以及新增的記錄; 將新增的記錄進行跨網傳輸以導入雲平臺的HDFS功能,和/或,根據需要將保存的日誌文件進行跨網傳輸以導入雲平臺的HDFS功能。
8.如權利要求1所述的方法,其特徵在於,進一步包括: 監控記錄和/或日誌文件的傳輸過程,以使傳輸進程處於運行狀態。
9.如權利要求1或2所述的方法,其特徵在於,監控當前伺服器上的多個應用系統的日誌文件,是通過監聽所監控的應用系統的文件的修改、或創建、或刪除事件的線程並響應來對應用系統進行監控的。
10.如權利要求1所述的方法,其特徵在於,保存各日誌文件以及新增的記錄,包括: 在內存中保存各日誌文件以及新增的記錄,並標識已經處理或未處理; 定時將已經處理或未處理的各日誌文件以及新增的記錄保存至磁碟文件。
11.如權利要求1所述的方法,其特徵在於,進一步包括: 採用分布式消息系統Kafka提供的應用程式編程接口 API暫時存儲所述日誌數據,在將所述日誌數據導入至Hadoop分布式文件系統時,使用Simple Consumer接口利用Zookeeper同步機制保存對所述日誌數據消費的偏移量。
12.如權利要求1所述的方法,其特徵在於,傳輸記錄和/或日誌文件至雲平臺伺服器,包括: 當監測的伺服器位於內網時,將記錄和/或日誌文件傳輸至雲平臺伺服器;或,當監測的伺服器位於外網時,在內網設置單向傳輸的跳轉節點,通過跳轉節點傳輸記錄和/或日誌文件至雲平臺伺服器。
【文檔編號】H04L12/24GK104486107SQ201410742374
【公開日】2015年4月1日 申請日期:2014年12月5日 優先權日:2014年12月5日
【發明者】劉成, 惠潤海, 宋懷明 申請人:曙光信息產業(北京)有限公司