路慎強(qiáng) 蘇衛(wèi) 牟菁 于明洋
摘要:首先,在云平臺的基礎(chǔ)上提出了日志服務(wù)的概念。其次,針對日志的概念,引入日志管理服務(wù)的必要性以及目前日志管理的現(xiàn)狀進(jìn)行了闡述和分析。最后,提出了一種適應(yīng)勝利云平臺的日志數(shù)據(jù)采集方案,進(jìn)行了示范應(yīng)用,取得了很好的應(yīng)用效果
【關(guān)鍵詞】日志 云平臺 數(shù)據(jù)采集
1 引言
為提升勝利油田勘探開發(fā)信息應(yīng)用系統(tǒng)的集成應(yīng)用水平,勝利油田設(shè)立勘探開發(fā)集成應(yīng)用云平臺建設(shè)項(xiàng)目,集成勘探、開發(fā)、采油工程等專業(yè)應(yīng)用系統(tǒng),將勘探開發(fā)綜合應(yīng)用服務(wù)平臺打造為油田信息集成應(yīng)用云服務(wù)平臺。該平臺可以實(shí)現(xiàn)油田勘探開發(fā)信息應(yīng)用系統(tǒng)的規(guī)范開發(fā)、集中管理、授權(quán)應(yīng)用,用以解決勝利油田信息應(yīng)用系統(tǒng)多、功能重復(fù)、平臺不統(tǒng)一、獨(dú)立部署、分散應(yīng)用等問題。伴隨著云平臺的建設(shè),傳統(tǒng)的日志服務(wù)也提升到了云日志的層次。云日志是云平臺的一個(gè)重要組成部分,正是云計(jì)算、云平臺才使云日志得以存在。實(shí)際上,一種新的部署模型已經(jīng)出現(xiàn):日志即服務(wù)( LaaS)。LaaS指的是提供者用云設(shè)置來提供日志記錄服務(wù)。也就是說,提供者獲取日志數(shù)據(jù),并代表其他人實(shí)施分析。
2 日志數(shù)據(jù)采集方案的設(shè)計(jì)
2.1 日志的定義
日志如何定義?半世紀(jì)前說起曰志,想到的是船長、操作員手里厚厚的筆記。如今計(jì)算機(jī)誕生使得日志產(chǎn)生與消費(fèi)無處不在服務(wù)器、路由器、傳感器、GPS、訂單、及各種IOT設(shè)備通過不同角度描述著我們生活的世界。借助于計(jì)算力量,通過收集、處理、使用日志,我們不斷更新對整個(gè)世界以及體系的認(rèn)知。從船長日志中可以發(fā)現(xiàn),日志除了帶一個(gè)記錄的時(shí)間戳外,可以包含幾乎任意的內(nèi)容,例如:一段記錄文字、一張圖片、天氣狀況、船行方向等。幾個(gè)世紀(jì)過去了,“船長日志”的方式已經(jīng)擴(kuò)展到一筆訂單、一項(xiàng)付款記錄、一次用戶訪問、一次數(shù)據(jù)庫操作等多樣的領(lǐng)域。日志這種廣泛使用模式只所以經(jīng)久不衰,在于:“日志是一種簡單的不能再簡單的存儲抽象”。它是一個(gè)只能增加的,完全按照時(shí)間排序的一系列記錄。日志(時(shí)間序列數(shù)據(jù))如圖1所示。
日志可以在末尾添加記錄,也可以從左到右讀取日志記錄。每一條記錄都指定了一個(gè)唯一的有一定順序的日志記錄編號。日志順序由“時(shí)間”來確定,從圖上可以看到日志從右到左的時(shí)間順序,新產(chǎn)生的事件被記錄,過去的事件漸漸遠(yuǎn)去,但它記錄了什么時(shí)間發(fā)生了什么事情,這無論對于計(jì)算機(jī)、人類、還是整個(gè)世界而言,都是認(rèn)知與推理的基礎(chǔ)。
2.2 油田日志管理服務(wù)的引入
在大數(shù)據(jù)時(shí)代,數(shù)據(jù)的來源急劇擴(kuò)張,一個(gè)移動終端一天可能會有幾十次的操作,一次網(wǎng)上購物可能會產(chǎn)生數(shù)十條日志,隨著數(shù)據(jù)存儲成本不斷降低,企業(yè)有了更大的經(jīng)濟(jì)動機(jī)來保存盡可能多的數(shù)據(jù),以便日后挖掘數(shù)據(jù)潛在的價(jià)值。日志系統(tǒng)就是用來收集盡可能多的業(yè)務(wù)日志和系統(tǒng)日志,而后對原始數(shù)據(jù)進(jìn)行分析、存儲,響應(yīng)數(shù)據(jù)分析查詢的需求。
在勝利油田目前使用的各類型應(yīng)用中,都包含日志管理功能。該功能與應(yīng)用具體的業(yè)務(wù)功能相對獨(dú)立,但又必須存在,導(dǎo)致在應(yīng)用研發(fā)時(shí),研發(fā)周期變長。在這樣的前提下,將日志管理功能從各個(gè)應(yīng)用中抽取出來,建設(shè)相應(yīng)的日志管理服務(wù),日志服務(wù)建設(shè)的目標(biāo)框圖如圖2所示。為相關(guān)應(yīng)用系統(tǒng)提供統(tǒng)一、穩(wěn)定、全面的日志管理和分析服務(wù),提高應(yīng)用系統(tǒng)的開發(fā)效率,降低維護(hù)成本是我們的最終目標(biāo)。
目前,日志管理服務(wù)提供的功能主要包括三方面:日志數(shù)據(jù)的采集存儲;日志數(shù)據(jù)的分析和挖掘;分析和挖掘結(jié)果數(shù)據(jù)的展示。本文主要討論的是日志數(shù)據(jù)的采集存儲方案的設(shè)計(jì)和實(shí)現(xiàn)。
2.3 油田日志數(shù)據(jù)采集現(xiàn)狀分析
目前,油田運(yùn)行的各種應(yīng)用系統(tǒng)都擁有自己的日志管理模塊,但是對日志的應(yīng)用還處于相對低級的階段,圖3為日志數(shù)據(jù)分析報(bào)表。日志的存儲都是使用SQL Server、Oracle等關(guān)系型網(wǎng)絡(luò)數(shù)據(jù)庫;日志的采集是通過對數(shù)據(jù)庫的操作來進(jìn)行。
當(dāng)將日志管理提升到云平臺的基礎(chǔ)服務(wù)時(shí),目前的日志數(shù)據(jù)采集存儲方案存在很大的問題,主要的問題有以下幾項(xiàng):
(1)為了數(shù)據(jù)分析和挖掘的需要,日志數(shù)據(jù)必須統(tǒng)一存放。然而日志數(shù)據(jù)的特點(diǎn)是只增加,不會存在刪除、更新數(shù)據(jù)的情況,當(dāng)應(yīng)用系統(tǒng)運(yùn)行多年以后,日志數(shù)據(jù)庫中龐大的日志數(shù)據(jù)量將會對日志分析和查詢效率帶來巨大的挑戰(zhàn)。
(2)目前直接操作數(shù)據(jù)庫來進(jìn)行日志采集的方式不適合下一階段應(yīng)用系統(tǒng)云化的發(fā)展。
針對上述問題,本文提出了針對云平臺的日志數(shù)據(jù)采集方案。
2.4 云平臺日志數(shù)據(jù)采集方案設(shè)計(jì)
日志管理服務(wù)采用分布式計(jì)算方式,各模塊之間都是項(xiàng)目獨(dú)立并支持橫向擴(kuò)展極大方便在云環(huán)境下的部署,如圖4所示。
2.4.1 日志數(shù)據(jù)的存儲
本文設(shè)計(jì)的日志數(shù)據(jù)存儲方案是使用基于linux文件系統(tǒng)來分布式存儲日志索引文件,這樣無需額外存儲系統(tǒng),在x86服務(wù)器(或虛擬機(jī))上掛接磁盤陣列,即可實(shí)現(xiàn)索引的分布式存儲及副本備份。
2.4.2 日志數(shù)據(jù)采集方案
云平臺日志管理服務(wù)中,日志數(shù)據(jù)的采集方案根據(jù)是否可以對應(yīng)用系統(tǒng)進(jìn)行代碼級別的改造而分為兩類:
(1)支持拉取mysql,oracle,sql server等數(shù)據(jù)庫信息(適用于無法改造的應(yīng)用系統(tǒng))。
(2)支持通過ws/api等服務(wù)接口來推送應(yīng)用系統(tǒng)日志(適用于可改造應(yīng)用系統(tǒng))。
3 日志數(shù)據(jù)采集功能的實(shí)現(xiàn)
根據(jù)日志服務(wù)的應(yīng)用需求,設(shè)計(jì)日志服務(wù)的實(shí)現(xiàn)框架,如圖5所示。下文將對方案中的關(guān)鍵技術(shù)內(nèi)容分別展開論述。
3.1 方案一:拉取日志數(shù)據(jù)
日志數(shù)據(jù)采集可以通過Agent來定時(shí)進(jìn)行數(shù)據(jù)庫數(shù)據(jù)抓取操作,如圖6所示。
該方案的實(shí)現(xiàn)需要原系統(tǒng)有日志管理功能,且日志數(shù)據(jù)己進(jìn)行本地或數(shù)據(jù)庫存儲;日志數(shù)據(jù)接入時(shí)需要了解日志數(shù)據(jù)表的結(jié)構(gòu)和字段含義;相應(yīng)的應(yīng)用系統(tǒng)無須進(jìn)行代碼級別的改動,日志數(shù)據(jù)采集所需的工作量較小。
3.2 方案二:推送日志數(shù)據(jù)
日志數(shù)據(jù)可以通過服務(wù)接口來進(jìn)行實(shí)時(shí)推送操作,如圖7所示。
該方案中,應(yīng)用系統(tǒng)需要進(jìn)行代碼級別的改動,開發(fā)的工作量較大;只要符合數(shù)據(jù)采集規(guī)范的日志數(shù)據(jù)都可以使用Json格式進(jìn)行推送,擴(kuò)展性好,可以支持云化擴(kuò)展和支持。
4 應(yīng)用實(shí)例
上述方案已經(jīng)在勝利云平臺的日志管理服務(wù)中進(jìn)行了示范應(yīng)用。目前通過拉取日志方式接入日志數(shù)據(jù)源3項(xiàng),通過服務(wù)接口推送方式接入日志數(shù)據(jù)源20余項(xiàng),系統(tǒng)運(yùn)行穩(wěn)定,日志數(shù)據(jù)采集正常,日志采集效果如圖8、圖9所示。
5 結(jié)論
通過對日志數(shù)據(jù)采集方案的研究、設(shè)計(jì)與實(shí)現(xiàn),為全油田范圍的應(yīng)用系統(tǒng)提供了日志數(shù)據(jù)采集和存儲功能。無論是現(xiàn)有應(yīng)用系統(tǒng)、新開發(fā)的系統(tǒng),已開發(fā)或者沒有日志管理的系統(tǒng)都可以為其提供支持。本技術(shù)的研究和實(shí)現(xiàn),大大縮短了信息系統(tǒng)項(xiàng)目建設(shè)周期,減少其時(shí)間和開發(fā)成本;還進(jìn)一步擴(kuò)大了應(yīng)用的運(yùn)維范圍,提高信息系統(tǒng)用戶身份及訪問管理工作效率,降低信息系統(tǒng)日志分析人工管理成本。
參考文獻(xiàn)
[1]徐娟娟,基于NoSQL的Web日志分析系統(tǒng)的設(shè)計(jì)[D].安徽理工大學(xué),201 2.
[2]李勝浩.基于MapReduce的Web文本挖掘系統(tǒng)的研究與實(shí)現(xiàn)[D].北京郵電大學(xué),2013.
[3]卓海藝,基于HBa se的海量數(shù)據(jù)實(shí)時(shí)查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].北京郵電大學(xué),2013 (02):4.
[4] Anton A.Chuvakin, Kcvin J.Schmidt,Christopher Phillips.日志管理與分析權(quán)威指南[C].機(jī)械工業(yè)出版社,201 4.
[5]張榆,馬友忠,孟小峰.一種基于HBa se的高效空間關(guān)鍵字查詢策略[J].小型微型計(jì)算機(jī)系統(tǒng),2012,33 (10):2141-2146。
[6]詹玲,馬駿,陳伯江等,分布式I/O日志收集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2010,46 (36):88-90.