摘要:隨著互聯(lián)網(wǎng)技術(shù)的蓬勃發(fā)展與數(shù)字化信息的快速增長,新媒體行業(yè)正邁入數(shù)智化時代[1],大數(shù)據(jù)技術(shù)為形式各異的數(shù)據(jù)提供了分析處理方式,賦予新媒體行業(yè)更全面、準(zhǔn)確的用戶洞察能力,提升了內(nèi)容生產(chǎn)和傳播的效率和精度,成為新媒體行業(yè)發(fā)生的重要驅(qū)動力。IDC(互聯(lián)網(wǎng)數(shù)據(jù)中心)預(yù)測,2025年全球數(shù)據(jù)總量將達(dá)到175 ZB,80%的數(shù)據(jù)都將以非結(jié)構(gòu)化形式存在[2],結(jié)構(gòu)化數(shù)據(jù)才是數(shù)據(jù)處理的關(guān)鍵性因素。數(shù)據(jù)量的快速增長、數(shù)據(jù)類型及位置的不斷變化,導(dǎo)致越來越多的企業(yè)對于數(shù)據(jù)采集、分析、利用的需求也越來越多樣化[3]。在媒體業(yè)務(wù)產(chǎn)生的數(shù)據(jù)呈指數(shù)級增長的形勢下,傳統(tǒng)的數(shù)據(jù)管理方式越來越無法適應(yīng)新媒體行業(yè)的時效性需求,容量受限、性能瓶頸、管理困難等問題亟須解決[4]。
關(guān)鍵詞:媒體;日志;數(shù)據(jù);互聯(lián)網(wǎng)
Structured Processing of Media Business Logs
XU Zhiliang
(Shanghai Oriental Media Technology Co., Ltd., Shanghai 200041, China)
Abstract: With the vigorous development of Internet technology and the rapid growth of digital information, the new media industry is entering the era of digitalization. Big data technology provides analysis and processing methods for various forms of data, giving the new media industry more comprehensive and accurate user insights, improving the efficiency and accuracy of content production and dissemination, and becoming an important driving force for the new media industry. IDC (Internet Data Center) predicts that the total global data volume will reach 175 ZB by 2025, and 80% of the data will exist in unstructured form. Structured data is the key factor in data processing. The rapid growth of data volume and the constant changes in data types and locations have led to more and more enterprises having increasingly diverse demands for data collection, analysis, and utilization. In the context of exponential growth in data generated by media business, traditional data management methods are increasingly unable to meet the timeliness requirements of the new media industry, and problems such as limited capacity, performance bottlenecks, and management difficulties urgently need to be solved.
Key words: media; log; data internet
上海文化廣播影視集團(tuán)作為信息傳播和內(nèi)容創(chuàng)作的重要單位,其包含的眾多軟硬件設(shè)備每時每刻都在產(chǎn)生大量的業(yè)務(wù)日志。如何對海量零散數(shù)據(jù)進(jìn)行結(jié)構(gòu)化處理,滿足低成本、高效率的智能運(yùn)維需求,已成為數(shù)據(jù)處理相關(guān)研究中的一個核心問題,這也是企業(yè)構(gòu)建協(xié)同生態(tài)的關(guān)鍵一環(huán)[5]。
1" "媒體業(yè)務(wù)日志現(xiàn)狀及趨勢分析
在“互聯(lián)網(wǎng)+”驅(qū)動產(chǎn)業(yè)創(chuàng)新的格局下,媒體行業(yè)經(jīng)歷從“去中心化”到“互聯(lián)網(wǎng)化”的數(shù)字化轉(zhuǎn)型,并迎來融合發(fā)展的新契機(jī)。大數(shù)據(jù)技術(shù)逐漸深入到媒體行業(yè)的各個應(yīng)用層面,為媒體行業(yè)提供了更多的數(shù)據(jù)源和分析手段,創(chuàng)造了新的媒體發(fā)展生態(tài),成為推動媒體融合發(fā)展的新引擎[6]。
在數(shù)字化轉(zhuǎn)型的浪潮中,非結(jié)構(gòu)化數(shù)據(jù)扮演著數(shù)字體驗(yàn)基石的重要角色,其數(shù)量之大、類型之多、生成之快的特性也決定了其利用價值及挖掘潛力之大,而機(jī)器學(xué)習(xí)算法為數(shù)據(jù)的處理提供了高效、精確的解決方案[7]。
基于此,本文主要介紹日志的結(jié)構(gòu)化處理過程、相關(guān)結(jié)構(gòu)化的算法以及在上海文化廣播影視集團(tuán)的具體應(yīng)用。
2" "結(jié)構(gòu)化處理流程
媒體業(yè)務(wù)系統(tǒng)在采集到非結(jié)構(gòu)化的原始數(shù)據(jù)后,根據(jù)內(nèi)置規(guī)則進(jìn)行自動識別,提取字段并與已有規(guī)則進(jìn)行匹配,如命中則返回結(jié)構(gòu)化數(shù)據(jù)。如果內(nèi)置規(guī)則無法匹配,則暫時存入事件容器進(jìn)行后續(xù)處理。
媒體業(yè)務(wù)系統(tǒng)可根據(jù)特定標(biāo)識符自動判斷是否為用戶自定義配置:如果是用戶自定義配置,則使用其配置的解析規(guī)則來處理,同時更新緩存;如果不是,則使用默認(rèn)規(guī)則并保留原始數(shù)據(jù),不提取任何字段,同時對比不同類型的解析規(guī)則嘗試匹配,如果匹配成功則生成結(jié)構(gòu)化數(shù)據(jù),同時更新緩存;如果不成功則繼續(xù)保留該數(shù)據(jù),并返回其他結(jié)構(gòu)化數(shù)據(jù)。
3" "結(jié)構(gòu)化處理技術(shù)
日志的結(jié)構(gòu)化處理,也稱日志模式解析,是指將日志從半結(jié)構(gòu)化數(shù)據(jù)解析為結(jié)構(gòu)化數(shù)據(jù)的一種算法,可以幫助我們快速了解大量日志的概貌,在日志的自動化分析過程中,常作為中間步驟,服務(wù)于日志后續(xù)的異常檢測等任務(wù)。結(jié)構(gòu)化處理相關(guān)技術(shù)如圖1所示:
以下是一些常見的日志模式解析算法:
3.1 基于規(guī)則的匹配算法
使用事先定義的規(guī)則或模式來匹配和解析日志數(shù)據(jù)。規(guī)則可以基于關(guān)鍵字、正則表達(dá)式、模板等進(jìn)行定義。算法簡單易懂,但需要手動定義規(guī)則,適用于已知的模式和結(jié)構(gòu)化的日志數(shù)據(jù)。
3.2 基于模板的算法
使用事先定義的模板來匹配和解析日志數(shù)據(jù)。模板包含固定的文本和占位符,用于表示可變的字段或參數(shù)。相對于規(guī)則匹配,模板提供了更靈活的方式來處理變化的日志格式。
3.3 基于機(jī)器學(xué)習(xí)的算法
使用機(jī)器學(xué)習(xí)技術(shù)對日志數(shù)據(jù)進(jìn)行訓(xùn)練和學(xué)習(xí),以自動發(fā)現(xiàn)和提取其中的模式??墒褂镁垲?、分類、序列標(biāo)注等機(jī)器學(xué)習(xí)方法。這種算法適應(yīng)不同的日志數(shù)據(jù)和模式變化,但需要大量的訓(xùn)練數(shù)據(jù)和合適的特征選擇。
3.4 基于序列模式挖掘的算法
通過挖掘日志數(shù)據(jù)中的序列模式,識別和提取其中的重復(fù)模式或規(guī)律性模式。序列模式挖掘算法可以幫助發(fā)現(xiàn)隱藏在日志數(shù)據(jù)中的重要模式和事件。
3.5 基于語義分析的算法
利用自然語言處理和語義分析技術(shù),對日志數(shù)據(jù)進(jìn)行分析和理解,從中提取有意義的模式和信息。該算法可以更深入地理解日志文本的含義,提取上下文相關(guān)的模式。
4" "媒體業(yè)務(wù)日志的結(jié)構(gòu)化處理
4.1 集中采集日志,建立標(biāo)準(zhǔn)模型庫
集中采集日志,根據(jù)業(yè)務(wù)區(qū)分,建立不同的日志解析模型,一個業(yè)務(wù)對應(yīng)一個模型,建立標(biāo)準(zhǔn)模型庫。項(xiàng)目包括網(wǎng)絡(luò)、安全、業(yè)務(wù)三大模塊,對涉及的業(yè)務(wù)按照索引進(jìn)行劃分,由此對細(xì)分出的53個業(yè)務(wù)建立53個對應(yīng)的索引。
4.2 截?cái)嗳罩局槐A舨糠秩罩?/p>
完整日志數(shù)據(jù)量較大,且日志訓(xùn)練會得到大量無用模式,為保障訓(xùn)練結(jié)果高效可用,需要對訓(xùn)練日志進(jìn)行進(jìn)一步的處理操作:截?cái)嗳罩绢^部的1 500字節(jié),并將其后半部分丟棄,再對日志進(jìn)行模式訓(xùn)練。
采用Heka進(jìn)行截?cái)?,過程如下:
默認(rèn)狀態(tài):
[RzyHttpOutput]
message_matcher = \"TRUE\" #默認(rèn)數(shù)據(jù)全部接入
address = \"http://172.22.0.245:5180/proto/?compressed=true\"
use_buffering = true
encoder = \"RzyProtobufEncoder\"
rate_limit = 0
worker = 0
進(jìn)行截?cái)嗪螅?/p>
[RzyHttpOutput]
message_matcher =" \"Payload =~ /^\\[\\d+-\\d+-\\d+\\s+\\d+:\\d+:\\d+\\],\\[\\w+\\]\\s+\\[\\d+-\\d+-\\d+\\s+\\d+:\\d+:\\d+\\,\\d+\\],\\[\\d{4}-\\d{2}-\\d{2}\\s+\\d{2}:\\d{2}:\\d{2}\\]/\"
寫法:
\"Payload =~ /xxx,xxx,xxxx,xxx/\"
4.3 使用路徑作為appname、tag字段內(nèi)容
文廣集團(tuán)原始日志存儲在同一個路徑下,同一路徑下包含大量業(yè)務(wù)日志,會造成數(shù)據(jù)采集效率低下,Heka自動將使用路徑作為appname、tag字段內(nèi)容,并進(jìn)行正則匹配,可直接采集數(shù)據(jù)并寫入索引。
###Other
[1_file_deocder]
type = \"PathDecoder\"
[1_file_input]
type = \"LogstreamerInput\"
#路徑
log_directory = \"/var/log/\"
#此處部分路徑作為appname、tag
file_match = '(?Plt;Appnamegt;\w+)/(?Plt;Taggt;\w+)/(?Plt;FilePrefixgt;\w+)\.log'
# 必須保證differentiator為Appname/Tag/xxx方式拼湊
differentiator = [\"Appname\", \"/\", \"Tag\", \"/\"," \"FilePrefix\", \".log\"]
decoder = \"1_file_deocder\"
oldest_duration = \"720h\"
樣例路徑:
/var/log/data/rizhiyi/test.log
4.4 手動遷移索引
#確認(rèn)當(dāng)前的配置,記錄下當(dāng)前值 x
curl \"master_ip:50051/_flags?flags=max_concurrent_rebalance\" amp;amp; echo
#關(guān)閉reblance功能
curl \"master_ip:50051/_flags?flags=max_concurrent_rebalance:0\" amp;amp; echo
#api自動遷移索引
curl -s -XPOST \"http://10.200.16.164:50051/_conf?index=ops-hhub-20210805\" -d '{\"node_filter\": {\"include\": {\"ip\": \"10.200.16.164,10.200.16.165,10.200.16.166,10.200.16.167,10.200.16.168\"}}}'
#使用bcli工具
#查看分片分布狀態(tài)
show shards ops-hhub-20210812
#查看索引config配置
show config ops-hhub-20210812
4.5 重做topic
完成上述操作后,工程師可利用后臺工具查看當(dāng)前topic記錄,停用collector,刪除原有topic信息,清理原有/data/rizhiyi/kafka下的數(shù)據(jù),再修改kafka的監(jiān)聽端口以外的端口,重啟kafka之后重新創(chuàng)建topic,確認(rèn)新建topic符合預(yù)期后再修改kafka的監(jiān)聽端口并重啟kafka。
4.6 個性化添加解析規(guī)則
技術(shù)工程師根據(jù)日志具體情況,還可以對日志進(jìn)行個性化解析操作,添加解析規(guī)則。
5" "結(jié)束語
數(shù)據(jù)的結(jié)構(gòu)化處理對媒體業(yè)務(wù)的深入分析具有重要的戰(zhàn)略及商業(yè)價值,根據(jù)不同業(yè)務(wù)的數(shù)據(jù)特征,有針對性地進(jìn)行分析及預(yù)測,有利于數(shù)據(jù)整合及復(fù)用,最大化程度地實(shí)現(xiàn)數(shù)據(jù)價值,幫助發(fā)現(xiàn)業(yè)務(wù)潛在問題及異常情況,及時采取相應(yīng)措施。同時,數(shù)據(jù)的結(jié)構(gòu)化降低了數(shù)據(jù)存儲成本,去除冗余信息之后的數(shù)據(jù)質(zhì)量也大幅提升,可以更好地支持決策并優(yōu)化業(yè)務(wù)流程[8]。今后,上海文化廣播影視集團(tuán)將進(jìn)一步利用日志數(shù)據(jù)來優(yōu)化運(yùn)營,提升運(yùn)維能力。
參考文獻(xiàn)
[1] 萬里鵬.非結(jié)構(gòu)化到結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換的研究與實(shí)現(xiàn)[D].成都:西南交通大學(xué),2013.
[2] 賈統(tǒng),李影,吳中海.基于日志數(shù)據(jù)的分布式軟件系統(tǒng)故障診斷綜述[J].軟件學(xué)報(bào),2020(7):1997-2018.
[3] 王霄.某中型企業(yè)數(shù)據(jù)中心日志分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2020.
[4] 潘世成,單愛民,覃炯聰.非結(jié)構(gòu)化機(jī)器數(shù)據(jù)范式化處理的研究[J].現(xiàn)代信息科技,2018(6):99-101.
[5] 萬欣隴.信息管理系統(tǒng)日志分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].濟(jì)南:山東大學(xué),2017.
[6] 曾恒.基于ELK的網(wǎng)絡(luò)安全日志管理分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2017.
[7] 印聰.面向非結(jié)構(gòu)化文本大數(shù)據(jù)預(yù)處理中間件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:武漢理工大學(xué),2015.
[8] 姜鋒.基于Hadoop平臺的海量數(shù)據(jù)處理研究及應(yīng)用[D].北京:北京郵電大學(xué),2013.
作者簡介:徐志亮(1983-),男,漢族,上海人,工程師,研究生,研究方向?yàn)樾畔踩髅健?/p>