任立男,段桂華,譚荻,王建新
?
面向銀行業(yè)務(wù)的交易監(jiān)控可視化系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
任立男,段桂華,譚荻,王建新
(中南大學(xué) 信息科學(xué)與工程學(xué)院,湖南 長(zhǎng)沙,410083)
針對(duì)銀行日益增長(zhǎng)的異構(gòu)交易系統(tǒng)產(chǎn)生的海量交易日志結(jié)構(gòu)復(fù)雜、提取困難、分析效率低以及不能及時(shí)發(fā)現(xiàn)交易異常等問(wèn)題,設(shè)計(jì)與實(shí)現(xiàn)一個(gè)面向銀行業(yè)務(wù)的交易實(shí)時(shí)監(jiān)控系統(tǒng),并提供交易數(shù)據(jù)的可視化分析。首先,系統(tǒng)對(duì)交易日志中關(guān)鍵共性指標(biāo)進(jìn)行采集并結(jié)構(gòu)化存儲(chǔ);然后,通過(guò)機(jī)器學(xué)習(xí)方法對(duì)交易量進(jìn)行實(shí)時(shí)預(yù)測(cè),提供交易量異常告警;最后,通過(guò)可視化方式對(duì)異構(gòu)交易系統(tǒng)實(shí)時(shí)監(jiān)控,并對(duì)交易數(shù)據(jù)提供多角度的可視化分析。研究結(jié)果表明:該系統(tǒng)界面美觀(guān)、交互良好、性能優(yōu)異,能很好地滿(mǎn)足銀行工作人員的業(yè)務(wù)分析需求。
交易日志;實(shí)時(shí)監(jiān)控;交易量預(yù)測(cè);可視化分析
近年來(lái),銀行業(yè)迅速發(fā)展,銀行各項(xiàng)業(yè)務(wù)已成為國(guó)民生活的重要組成部分。用戶(hù)在銀行的交易過(guò)程中,產(chǎn)生了大量的交易日志,包括用戶(hù)信息、業(yè)務(wù)信息等交易的相關(guān)信息。如何采集、存儲(chǔ)、監(jiān)控和可視化這類(lèi)交易數(shù)據(jù)成為了各大銀行分析人員關(guān)注的焦點(diǎn)之一。一些研究人員提出了相關(guān)的日志數(shù)據(jù)采集、存儲(chǔ)與可視化方法,來(lái)提高日志信息數(shù)據(jù)采集和分析的效率。CHAMARTHI等[1]實(shí)現(xiàn)了splunk在電信部門(mén)的應(yīng)用,splunk實(shí)時(shí)采集和存儲(chǔ)不同節(jié)點(diǎn)的日志數(shù)據(jù),提供交互式檢索和可視化分析,找出移動(dòng)互聯(lián)網(wǎng)中的異常電話(huà)號(hào)碼和用戶(hù)。BIRJALI等[2]提出了基于A(yíng)pache Flume從社交網(wǎng)絡(luò)中采集社交媒體數(shù)據(jù)的方法,并將預(yù)處理的數(shù)據(jù)存儲(chǔ)在Hadoop中,最后使用InfoSphere BigInsights對(duì)該數(shù)據(jù)進(jìn)行分析和可視化。BAI[3]結(jié)合Flume提出了一種實(shí)時(shí)的大數(shù)據(jù)搜索方法,該方法首先使用Flume代理從終端收集日志,然后通過(guò)ElasticSearch根據(jù)需求生成rowkey列表,最后Hbase根據(jù)rowkey直接從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)。該方法在大數(shù)據(jù)日志搜索中具有較好的可行性。SANJAPPA等[4]介紹了一種使用Logstash方法收集日志的系統(tǒng),該系統(tǒng)能夠處理多種類(lèi)型的日志數(shù)據(jù),幫助識(shí)別網(wǎng)絡(luò)中的惡意活動(dòng)。BAJER[5]提出了基于ELK(Elastisearch,Logstash和Kibana)的開(kāi)源技術(shù)在物聯(lián)網(wǎng)數(shù)據(jù)中的應(yīng)用方法,以提取和可視化有關(guān)建筑運(yùn)營(yíng)的有意義的見(jiàn)解。銀行交易日志來(lái)源于大量的異構(gòu)交易系統(tǒng),為了可實(shí)時(shí)監(jiān)控各交易系統(tǒng)的關(guān)鍵指標(biāo),需要構(gòu)建可交互的系統(tǒng)關(guān)聯(lián)性結(jié)構(gòu)視圖,以達(dá)到分析人員快速定位到某異常指標(biāo)所屬交易系統(tǒng)的目的,從而進(jìn)一步追蹤和分析異常原因并解決問(wèn)題。SHAHZAD等[6]介紹和比較了HTML5,jQuery,D3.js,GOJS,JSmol,Highchart和Bootstrap等基于Web的工具和庫(kù),用于基于瀏覽器的交互式可視化。BOONNAVASIN等[7]結(jié)合GOJS框架提出了構(gòu)建可交互家系圖方案,成為了醫(yī)生了解病人家庭信息的重要診斷工具,并提供了有效的存儲(chǔ)和檢索方法。同時(shí),銀行交易數(shù)據(jù)具有很強(qiáng)的時(shí)間關(guān)聯(lián)性,屬于典型的時(shí)序數(shù)據(jù),目前對(duì)于銀行交易量等時(shí)序數(shù)據(jù)的預(yù)測(cè)方法已比較成熟并廣泛應(yīng)用于各領(lǐng)域[8]。綜上所述,現(xiàn)有的日志采集、存儲(chǔ)和可視化分析方法更多采用主splunk,F(xiàn)lume和ELK方法。雖然splunk整合了大量豐富的數(shù)據(jù)采集和可視化工具,但是使用成本較高,檢索速度較慢且價(jià)格昂貴。ELK棧使用和維護(hù)成本較低,被廣泛應(yīng)用于日志數(shù)據(jù)的采集和存儲(chǔ)應(yīng)用中,但是Logstash存在啟動(dòng)慢、不穩(wěn)定等缺點(diǎn),需要進(jìn)一步改進(jìn)。上述研究的可視化分析多采用統(tǒng)計(jì)分析方法,且缺乏交互性。本文圍繞上述問(wèn)題展開(kāi)研究工作,設(shè)計(jì)并實(shí)現(xiàn)了面向銀行業(yè)務(wù)的交易監(jiān)控系統(tǒng),采用Kafka[9],Logstash[10],Elasticsearch[11?12]和Spark Streaming[13]等技術(shù)實(shí)現(xiàn)交易日志的采集和存儲(chǔ),通過(guò)機(jī)器學(xué)習(xí)方法對(duì)交易量進(jìn)行預(yù)測(cè)并提供告警,完成可交互的監(jiān)控和可視化分析任務(wù)。系統(tǒng)主要貢獻(xiàn)如下:1) 基于已有開(kāi)源日志采集、結(jié)構(gòu)化存儲(chǔ)和可視化技術(shù)方案,提出了采集過(guò)程和數(shù)據(jù)流處理過(guò)程的優(yōu)化方案;2) 提出了交易量預(yù)測(cè)方法,能夠在監(jiān)控過(guò)程中有效提供異常告警;3) 提供了業(yè)務(wù)分類(lèi)、趨勢(shì)曲線(xiàn)、數(shù)據(jù)對(duì)比分析、具體交易信息定位和交易明細(xì)等豐富的可視化方法,提高分析效率;4) 設(shè)計(jì)了豐富的交互操作,包括交易系統(tǒng)間關(guān)聯(lián)結(jié)構(gòu)圖的創(chuàng)建與管理(用于主監(jiān)控窗口,提高交易實(shí)時(shí)監(jiān)控的用戶(hù)體驗(yàn))、時(shí)間控制、數(shù)據(jù)指標(biāo)選擇、交易查詢(xún)等。
本文的樣本數(shù)據(jù)來(lái)源于某銀行網(wǎng)銀渠道、EIX(enterprise information exchange server,企業(yè)信息交換服務(wù)器)、外聯(lián)前置和非稅前置4個(gè)交易系統(tǒng)的日志數(shù)據(jù)。原始數(shù)據(jù)包含用戶(hù)信息和交易信息,結(jié)合系統(tǒng)的分析目標(biāo)以及用戶(hù)隱私,本文只提取了其中的交易信息,并對(duì)數(shù)據(jù)進(jìn)行了預(yù)處理,預(yù)處理后的數(shù)據(jù)共有1 981.3萬(wàn)條交易記錄,時(shí)間跨度為5月。
交易信息主要包括交易卡號(hào)、交易時(shí)間、交易系統(tǒng)、業(yè)務(wù)編碼、業(yè)務(wù)描述、交易渠道、交易金額、交易響應(yīng)碼(成功碼、失敗碼)、響應(yīng)碼描述、交易延時(shí)等,本文針對(duì)這些交易信息的屬性做了可視化分析。
本文采用B/S架構(gòu)設(shè)計(jì),主要通過(guò)采集多個(gè)異構(gòu)交易系統(tǒng)的日志并提取關(guān)鍵指標(biāo)結(jié)構(gòu)化存儲(chǔ)后,實(shí)現(xiàn)了交易系統(tǒng)監(jiān)控與交易數(shù)據(jù)可視化分析等功能。系統(tǒng)功能結(jié)構(gòu)包括多系統(tǒng)聯(lián)合監(jiān)控模塊、單系統(tǒng)監(jiān)控與可視化分析模塊、事件列表模塊、統(tǒng)計(jì)報(bào)表模塊、交易追蹤模塊和系統(tǒng)配置模塊,如圖1所示。
1) 多系統(tǒng)聯(lián)合監(jiān)控模塊包括多系統(tǒng)關(guān)聯(lián)性結(jié)構(gòu)圖創(chuàng)建子模塊、多交易系統(tǒng)實(shí)時(shí)監(jiān)控與告警子模塊以及系統(tǒng)間交易數(shù)據(jù)對(duì)比分析子模塊3個(gè)部分。
①多系統(tǒng)關(guān)聯(lián)性結(jié)構(gòu)圖創(chuàng)建子模塊可根據(jù)用戶(hù)自行構(gòu)建的系統(tǒng)關(guān)聯(lián)拓?fù)浣Y(jié)構(gòu)圖,實(shí)時(shí)呈現(xiàn)自定義的監(jiān)控主界面。
②多交易系統(tǒng)實(shí)時(shí)監(jiān)控與告警子模塊的功能是顯示單位時(shí)間內(nèi)的系統(tǒng)名稱(chēng)、交易量、業(yè)務(wù)成功率、技術(shù)成功率和平均交易延時(shí)等交易指標(biāo)信息,根據(jù)服務(wù)器的推送數(shù)據(jù)實(shí)時(shí)完成指標(biāo)刷新,并對(duì)異常數(shù)據(jù)和服務(wù)器推送中斷做異常標(biāo)記,同時(shí)向相關(guān)人員發(fā)送告警信息。
③系統(tǒng)間交易數(shù)據(jù)對(duì)比分析子模塊可通過(guò)圖表等可視化方式顯示多個(gè)交易系統(tǒng)間的交易量、交易延時(shí)、交易成功率3個(gè)指標(biāo)的對(duì)比結(jié)果,并提供直觀(guān)分析環(huán)境。
2) 單系統(tǒng)監(jiān)控與可視化分析模塊包含單系統(tǒng)關(guān)鍵指標(biāo)實(shí)時(shí)監(jiān)控、交易業(yè)務(wù)與渠道對(duì)比分析2個(gè)功能。
①單系統(tǒng)關(guān)鍵指標(biāo)實(shí)時(shí)監(jiān)控功能是對(duì)單個(gè)交易系統(tǒng)的交易量、交易延時(shí)、交易成功率這3大指標(biāo)進(jìn)行可視化展示,并對(duì)數(shù)據(jù)實(shí)時(shí)刷新以達(dá)到實(shí)時(shí)監(jiān)控 效果。
②交易業(yè)務(wù)與渠道對(duì)比分析功能是以可視化的方式展示交易業(yè)務(wù)和渠道指標(biāo)在交易中的分布差異,便于分析人員發(fā)現(xiàn)問(wèn)題。
3) 事件列表模塊包含告警展示和告警統(tǒng)計(jì)分析2個(gè)功能。
①告警展示是在系統(tǒng)指標(biāo)異常時(shí)進(jìn)行告警,告警信息包含系統(tǒng)名稱(chēng)、異常指標(biāo)類(lèi)型、異常值、發(fā)生異常時(shí)間,該信息以列表的形式按告警時(shí)間顯示給用戶(hù)。該模塊提供了交易系統(tǒng)和指標(biāo)類(lèi)型篩選功能,供分析人員集中了解特定告警信息。
②告警統(tǒng)計(jì)分析可分別按交易系統(tǒng)和告警類(lèi)型以圖表等可視化的方式展示告警量的統(tǒng)計(jì),供分析人員直觀(guān)分析告警規(guī)律和趨勢(shì)。
4) 統(tǒng)計(jì)報(bào)表模塊提供了將監(jiān)控?cái)?shù)據(jù)快速生成報(bào)表的功能,分析人員可根據(jù)時(shí)間范圍選擇任意時(shí)間段的報(bào)表結(jié)果,如日?qǐng)?bào)、月報(bào)等。
5) 交易追蹤模塊提供了關(guān)鍵字查詢(xún)功能,分析人員可根據(jù)當(dāng)前需要對(duì)業(yè)務(wù)、渠道、系統(tǒng)、金額、時(shí)間等已知交易屬性進(jìn)行查詢(xún),并根據(jù)查詢(xún)結(jié)果快速定位到不明確交易的詳細(xì)記錄。
6) 系統(tǒng)配置模塊包括告警規(guī)則配置和自定義可視化儀表板2個(gè)功能。
①告警規(guī)則配置為分析人員提供了配置告警指標(biāo)類(lèi)型、頻率、最大告警次數(shù)、閾值、告警時(shí)間范圍等規(guī)則的功能,系統(tǒng)將根據(jù)給定規(guī)則提供告警。
②自定義可視化儀表板為分析人員提供了自定義可視化分析擴(kuò)展接口,系統(tǒng)根據(jù)交易數(shù)據(jù)分析需求提供大量組合的可視化儀表板接口,分析人員可按照添加規(guī)則配置接口,從而獲取滿(mǎn)足需求的可視化結(jié)果;若沒(méi)有接口可滿(mǎn)足,則向系統(tǒng)管理員發(fā)送申請(qǐng),管理員審核通過(guò)后將為其開(kāi)放可視化接口。
根據(jù)以上功能需求,本文提出了如圖2所示的系統(tǒng)架構(gòu),系統(tǒng)由Kafka系統(tǒng)[10]、ELK協(xié)議棧[12]、Spark Streaming數(shù)據(jù)流處理器[14]、數(shù)據(jù)庫(kù)存儲(chǔ)服務(wù)器和Web應(yīng)用服務(wù)器組成。
圖2 交易監(jiān)控系統(tǒng)架構(gòu)圖
1) Kafka系統(tǒng)。采用分布式訂閱消息隊(duì)列方式監(jiān)聽(tīng)和收集各交易應(yīng)用系統(tǒng)的交易日志數(shù)據(jù),完成數(shù)據(jù)聚合和傳輸過(guò)程,保證采集過(guò)程中的高效性、易維護(hù)性和穩(wěn)定性。
2) ELK協(xié)議棧。由Kafka采集的數(shù)據(jù)傳輸至日志采集解析工具Logstash,Logstash通過(guò)正則規(guī)則對(duì)系統(tǒng)名稱(chēng)、交易時(shí)間、交易類(lèi)型、交易機(jī)構(gòu)、外聯(lián)單位、交易時(shí)長(zhǎng)、響應(yīng)碼、響應(yīng)碼描述、交易金額共9個(gè)指標(biāo)進(jìn)行過(guò)濾完成數(shù)據(jù)結(jié)構(gòu)化后,分別存儲(chǔ)至Elasticsearch和輸出至Spark Streaming;Elasticsearch為Kibana提供數(shù)據(jù)監(jiān)聽(tīng)和訪(fǎng)問(wèn)接口,Kibana通過(guò)內(nèi)部封裝的多種圖表工具,如表格、柱狀圖、餅狀圖、折線(xiàn)圖等,對(duì)存儲(chǔ)在Elasticsearch中的數(shù)據(jù)進(jìn)行深入挖掘分析與可視化。
3) Spark Streaming數(shù)據(jù)流處理器。Spark Streaming負(fù)責(zé)對(duì)上述Logstash結(jié)構(gòu)化的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和預(yù)測(cè)等實(shí)時(shí)計(jì)算處理,最終將處理結(jié)果匯總后存入Elasticsearch和MySQL數(shù)據(jù)庫(kù)。
4) 數(shù)據(jù)庫(kù)存儲(chǔ)服務(wù)器。數(shù)據(jù)庫(kù)存儲(chǔ)服務(wù)器負(fù)責(zé)系統(tǒng)數(shù)據(jù)的持久化存儲(chǔ),主要存儲(chǔ)用戶(hù)信息、交易量預(yù)測(cè)分析結(jié)果以及與用戶(hù)交互頻繁的數(shù)據(jù)信息等。系統(tǒng)采用了較為主流的MySQL數(shù)據(jù)庫(kù),MySQL具有質(zhì)量小、高效、易擴(kuò)展和易維護(hù)的優(yōu)點(diǎn)。
5) Web應(yīng)用服務(wù)器。用戶(hù)通過(guò)Internet與Web應(yīng)用服務(wù)器進(jìn)行交互。Web應(yīng)用服務(wù)器采用MVC(Model View Controller)模式將表示層、數(shù)據(jù)模型和控制器解耦合,表示層向用戶(hù)提供友好的可視化界面,控制器用來(lái)接收用戶(hù)提交的請(qǐng)求,將請(qǐng)求中傳來(lái)的json數(shù)據(jù)轉(zhuǎn)換成模型中對(duì)應(yīng)的數(shù)據(jù)模型,然后調(diào)用相應(yīng)的業(yè)務(wù)方法并根據(jù)調(diào)用結(jié)果選擇返回的視圖。本文表示層基于MVC的設(shè)計(jì)思想,采用MVVM (Model-View-ViewModel)模式[15?16]將HTML DOM視圖層(View)與數(shù)據(jù)模型(Model)分離,ViewModel負(fù)責(zé)處理業(yè)務(wù)邏輯,并分別于View和Model雙向通信,該模式使視圖層功能單一化,用于大量交易日志的可視化中,極大提高了頁(yè)面的加載和渲染效率。
1.4.1 多系統(tǒng)聯(lián)合監(jiān)控
銀行各異構(gòu)應(yīng)用系統(tǒng)之間的交易具有一定的關(guān)聯(lián)性,如網(wǎng)銀渠道內(nèi)的交易信息會(huì)包含一部分外聯(lián)前置和非稅前置的交易流水。因此,基于多個(gè)關(guān)聯(lián)系統(tǒng)的聯(lián)合監(jiān)控可以讓用戶(hù)更直觀(guān)地了解全局監(jiān)控信息,提高用戶(hù)體驗(yàn)。本文通過(guò)對(duì)各類(lèi)交易系統(tǒng)日志的分析,提取交易筆數(shù)、交易延時(shí)、技術(shù)成功率和業(yè)務(wù)成功率4個(gè)共性指標(biāo),為分析人員提供創(chuàng)建多系統(tǒng)關(guān)聯(lián)性結(jié)構(gòu)圖的交互性過(guò)程,最后通過(guò)數(shù)學(xué)統(tǒng)計(jì)與機(jī)器學(xué)習(xí)等方法實(shí)現(xiàn)多系統(tǒng)的聯(lián)合監(jiān)控。
1) 創(chuàng)建多系統(tǒng)關(guān)聯(lián)性結(jié)構(gòu)圖。本文采用基于HTML5的交互圖形庫(kù)GOJS[17]來(lái)實(shí)現(xiàn)多系統(tǒng)關(guān)聯(lián)性結(jié)構(gòu)圖的創(chuàng)建,GOJS是一種模型?視圖結(jié)構(gòu),視圖是模型的可視化,模型是視圖的數(shù)據(jù)體現(xiàn),模型通過(guò)2個(gè)數(shù)組結(jié)構(gòu)存儲(chǔ),分別為節(jié)點(diǎn)數(shù)組和連接線(xiàn)數(shù)組,節(jié)點(diǎn)數(shù)組存儲(chǔ)應(yīng)用系統(tǒng)的基本信息和關(guān)鍵指標(biāo)數(shù)據(jù),連線(xiàn)數(shù)組存儲(chǔ)應(yīng)用系統(tǒng)之間的關(guān)聯(lián)關(guān)系。圖3所示為多系統(tǒng)關(guān)聯(lián)性結(jié)構(gòu)圖創(chuàng)建過(guò)程。
用戶(hù)通過(guò)拖拽組件菜單將父容器組件拖拽到畫(huà)布指定位置,添加應(yīng)用系統(tǒng)名稱(chēng)后,客戶(hù)端會(huì)向服務(wù)器發(fā)送請(qǐng)求,獲取該系統(tǒng)的交易量、交易延時(shí)、技術(shù)成功率和業(yè)務(wù)成功率4個(gè)關(guān)鍵指標(biāo),然后系統(tǒng)將指標(biāo)信息按系統(tǒng)規(guī)范放入子容器組件中,應(yīng)用系統(tǒng)節(jié)點(diǎn)(NodeDataArray)創(chuàng)建完成。用戶(hù)可通過(guò)連接線(xiàn)(LinkedDataArray)繪制應(yīng)用系統(tǒng)之間的拓?fù)潢P(guān)系,并為應(yīng)用系統(tǒng)添加備注說(shuō)明,完成拓?fù)鋱D(view model)的創(chuàng)建,系統(tǒng)將創(chuàng)建的拓?fù)鋱D結(jié)構(gòu)(Data Model)存儲(chǔ)在數(shù)據(jù)庫(kù)中。用戶(hù)完成拓?fù)鋱D創(chuàng)建后,即可實(shí)時(shí)監(jiān)控所有應(yīng)用系統(tǒng)的交易狀態(tài)。本文采用輪詢(xún)方式監(jiān)聽(tīng)服務(wù)器中指標(biāo)數(shù)據(jù)變化,實(shí)時(shí)將返回?cái)?shù)據(jù)通過(guò)刷新Data Model的方法更新節(jié)點(diǎn)模板(NodeTemplates)和連接線(xiàn)模板(LinkedTemplate),以達(dá)到實(shí)時(shí)監(jiān)控的效果。
圖3 多系統(tǒng)關(guān)聯(lián)性結(jié)構(gòu)圖創(chuàng)建過(guò)程
2) 多系統(tǒng)聯(lián)合監(jiān)控與告警。本文采集的交易數(shù)據(jù)源是離散的,需經(jīng)過(guò)Spark Streaming實(shí)時(shí)計(jì)算將各交易系統(tǒng)的交易數(shù)據(jù)統(tǒng)計(jì)和匯總,并有序地存儲(chǔ)到MySQL數(shù)據(jù)庫(kù)服務(wù)器中,Web應(yīng)用服務(wù)器以輪詢(xún)的方式向MySQL請(qǐng)求實(shí)時(shí)數(shù)據(jù)并顯示在多系統(tǒng)關(guān)聯(lián)結(jié)構(gòu)圖中,以達(dá)到監(jiān)控的目的。本文結(jié)合對(duì)時(shí)序數(shù)據(jù)交易量的實(shí)時(shí)預(yù)測(cè)和人為配置告警規(guī)則的干預(yù)提供告警機(jī)制,告警類(lèi)型包括4個(gè)關(guān)鍵指標(biāo),其中交易延時(shí)、技術(shù)成功率和業(yè)務(wù)成功率的基線(xiàn)通過(guò)人為配置來(lái)定義,交易量的基線(xiàn)值通過(guò)機(jī)器學(xué)習(xí)方法的預(yù)測(cè)結(jié)果 得到。
本文通過(guò)統(tǒng)計(jì)分析外聯(lián)前置系統(tǒng)某一周內(nèi)的交易流水?dāng)?shù)據(jù),發(fā)現(xiàn)該系統(tǒng)的交易量和時(shí)間存在明顯的相關(guān)性,并具有一定周期性,最后選定Spark決策樹(shù)回歸模型來(lái)進(jìn)行交易量的預(yù)測(cè)。圖4所示為外聯(lián)前置系統(tǒng)2017?06?04—12(包含上一個(gè)周日和下一個(gè)周一)的交易量趨勢(shì)圖。
從圖4所示的趨勢(shì)圖可以發(fā)現(xiàn):交易量在1 d內(nèi)8點(diǎn)至10點(diǎn)持續(xù)增長(zhǎng),之后開(kāi)始有下降趨勢(shì),下午1點(diǎn)到3點(diǎn)又一次持續(xù)增長(zhǎng)后逐漸下降,凌晨左右交易量處于1 d中較低狀態(tài)并持續(xù)到8點(diǎn)左右。1周內(nèi)工作日交易量總體較高,周末交易量相對(duì)較低。在節(jié)假日,交易量相對(duì)于非節(jié)假日較低,節(jié)假日結(jié)束后的第1 d的交易量也會(huì)相對(duì)較低。因此,本文提出了一種告警機(jī)制中的交易量預(yù)測(cè)方法,其過(guò)程如圖5所示。
圖4 外聯(lián)前置系統(tǒng)一周內(nèi)交易量趨勢(shì)圖
圖5 交易量預(yù)測(cè)過(guò)程
首先,將交易系統(tǒng)、1周中的第幾天、1 d中的小時(shí)值、小時(shí)中的第幾個(gè)十分鐘、是否節(jié)假日、是否臨近節(jié)假日這個(gè)6個(gè)特征作為歷史數(shù)據(jù)的特征標(biāo)簽。然后,通過(guò)進(jìn)一步分析外聯(lián)前置系統(tǒng)的交易量發(fā)現(xiàn),在系統(tǒng)正常的情況下交易量在某個(gè)時(shí)段有激增情況,該激增點(diǎn)會(huì)對(duì)預(yù)測(cè)產(chǎn)生一定影響,使得對(duì)應(yīng)時(shí)刻的預(yù)測(cè)值也會(huì)激增,而實(shí)際交易量遠(yuǎn)低于預(yù)測(cè)值產(chǎn)生誤報(bào)警。所以本文根據(jù)正態(tài)分布的3σ原則對(duì)歷史數(shù)據(jù)進(jìn)行去噪。最后,對(duì)歷史數(shù)據(jù)打上特征標(biāo)簽并去噪后,采用Spark決策樹(shù)回歸模型[18?20]對(duì)歷史數(shù)據(jù)進(jìn)行訓(xùn)練并將結(jié)果實(shí)時(shí)存儲(chǔ)至Elasticsearch,將需要告警的數(shù)據(jù)信息存儲(chǔ)至MySQL。
1.4.2 單系統(tǒng)監(jiān)控與可視化分析
本文采用Kibana可視化工具監(jiān)聽(tīng)Elasticsearch中的交易數(shù)據(jù),使用其內(nèi)部豐富的圖表庫(kù)與Web應(yīng)用服務(wù)器相結(jié)合實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)監(jiān)控與可視化分析。圖6所示為基于Kibana的交易數(shù)據(jù)可視化過(guò)程。
Kibana可視化依賴(lài)Elasticsearch數(shù)據(jù)聚合的兩種類(lèi)型:量聚合和刻度聚合。量聚合用于面積圖、餅圖的分析結(jié)果,刻度聚合用于折線(xiàn)圖、柱形圖等以坐標(biāo)軸為刻度的分析結(jié)果。Kibana通過(guò)配置索引匹配模式實(shí)時(shí)監(jiān)聽(tīng)Elasticsearch相關(guān)數(shù)據(jù)集,運(yùn)用面積圖,以線(xiàn)性時(shí)間為橫軸、交易量為縱坐標(biāo)、按響應(yīng)碼分類(lèi)對(duì)交易量可視化;運(yùn)用折線(xiàn)圖,以線(xiàn)性時(shí)間為橫軸、交易量為縱坐標(biāo)、按交易分類(lèi)對(duì)交易延時(shí)可視化;運(yùn)用餅圖對(duì)交易業(yè)務(wù)占比可視化;運(yùn)用表格對(duì)交易詳情可視化。以上指標(biāo)的可視化圖表是獨(dú)立的Visualize,最后將多個(gè)Visualize整合到Dashboard儀表板,生成URI接口,供Web應(yīng)用服務(wù)器調(diào)用,分析人員可設(shè)定篩選指標(biāo)和時(shí)間范圍得到可視化的查詢(xún)結(jié)果。
圖6 基于Kibana的交易數(shù)據(jù)可視化過(guò)程
1.4.3 交易追蹤
本文采用關(guān)鍵指標(biāo)檢索機(jī)制,為分析人員制定交易可視化結(jié)果的靈活查詢(xún)。系統(tǒng)提供交易系統(tǒng)名稱(chēng)、交易金額、交易時(shí)間、交易描述(成功、失敗等)、渠道(機(jī)構(gòu))、交易延時(shí)6個(gè)指標(biāo)的查詢(xún)接口,根據(jù)輸入的查詢(xún)條件進(jìn)行過(guò)濾篩選,返回可視化結(jié)果,如圖7所示。首先,Kibana根據(jù)查詢(xún)指標(biāo)制定3個(gè)Visualize(可視化圖表),一是對(duì)交易量制定統(tǒng)計(jì)標(biāo)簽,二是對(duì)交易量趨勢(shì)制定柱形圖,三是對(duì)滿(mǎn)足查詢(xún)條件的數(shù)據(jù)制定詳細(xì)列表。這3個(gè)Visualize組合生成Dashboard(可視化儀表板)并創(chuàng)建格式規(guī)范的接口。然后,當(dāng)用戶(hù)請(qǐng)求查詢(xún)時(shí),Web服務(wù)器接收查詢(xún)條件,根據(jù)條件拼接查詢(xún)語(yǔ)句,調(diào)用Kibana接口,最后返回給用戶(hù)可視化 結(jié)果。
圖7 交易追蹤時(shí)序
本節(jié)根據(jù)系統(tǒng)設(shè)計(jì),實(shí)現(xiàn)了面向銀行業(yè)務(wù)的交易監(jiān)控系統(tǒng)。分析人員可通過(guò)Web瀏覽器的主監(jiān)控界面觀(guān)察數(shù)據(jù)指標(biāo)變化,當(dāng)交易出現(xiàn)異常,監(jiān)控主界面會(huì)給出告警標(biāo)記,分析人員可點(diǎn)擊進(jìn)入出現(xiàn)異常的系統(tǒng),對(duì)當(dāng)前交易數(shù)據(jù)進(jìn)行分析并定位異常交易區(qū)域,隨后可在交易追蹤中迅速定位交易明細(xì),分析異常原因。
多系統(tǒng)聯(lián)合監(jiān)控模塊為分析人員提供了根據(jù)異構(gòu)系統(tǒng)間的關(guān)聯(lián)性構(gòu)建系統(tǒng)拓?fù)浣Y(jié)構(gòu)圖的交互過(guò)程,以明確交易數(shù)據(jù)流向,系統(tǒng)則根據(jù)分析人員構(gòu)建的關(guān)聯(lián)關(guān)系顯示實(shí)時(shí)監(jiān)控內(nèi)容。圖8所示為針對(duì)網(wǎng)銀渠道、EIX、外聯(lián)前置和非稅前置4個(gè)交易系統(tǒng)的實(shí)時(shí)監(jiān)控儀表板,儀表板會(huì)在交易量異常和系統(tǒng)故障時(shí)標(biāo)出告警標(biāo)記。
圖9所示為外聯(lián)前置系統(tǒng)12 h內(nèi)的交易量預(yù)測(cè)結(jié)果與實(shí)際交易量值的對(duì)比分析曲線(xiàn)。結(jié)果表明該段時(shí)間內(nèi)交易量預(yù)測(cè)結(jié)果和實(shí)際值變化趨勢(shì)基本擬合,預(yù)測(cè)值也在閾值浮動(dòng)范圍內(nèi),效果良好。
下面以外聯(lián)前置系統(tǒng)4 h內(nèi)的交易監(jiān)控?cái)?shù)據(jù)可視化為例,對(duì)單系統(tǒng)監(jiān)控與可視化模塊的實(shí)現(xiàn)進(jìn)行描述。如圖10所示,可視化數(shù)據(jù)按照用戶(hù)自定義的頻率進(jìn)行更新,默認(rèn)每10 s更新。交易量和交易延時(shí)以折線(xiàn)圖按時(shí)間為橫軸顯示交易趨勢(shì),如圖10(a)~(b)所示,交易量曲線(xiàn)中不同曲線(xiàn)代表不同交易響應(yīng)碼(成功或失敗等描述);交易延時(shí)中不同曲線(xiàn)代表不同業(yè)務(wù)類(lèi)型,表現(xiàn)不同業(yè)務(wù)在交易操作時(shí)所需時(shí)間的趨勢(shì);交易量在業(yè)務(wù)中的分布情況用餅圖展示,如圖10(c)所示。分析人員可按照需求選中感興趣的區(qū)域,選中后系統(tǒng)會(huì)只提供所選區(qū)域的可視化結(jié)果,供用戶(hù)做進(jìn)一步分析,同時(shí)可查看監(jiān)控視圖所提供的交易明細(xì)表(見(jiàn)圖10(d)),用戶(hù)根據(jù)選擇刷新頻率和時(shí)間范圍可切換實(shí)時(shí)監(jiān)控模式和報(bào)表模式。
圖8 系統(tǒng)實(shí)時(shí)監(jiān)控圖
1—交易量預(yù)測(cè)值;2—交易量實(shí)際值。
(a) 交易量曲線(xiàn)(交易響應(yīng));(b) 交易延時(shí)曲線(xiàn)(業(yè)務(wù)類(lèi)型);(c) 交易業(yè)務(wù)占比;(d) 交易明細(xì)
1) 本文設(shè)計(jì)的面向銀行業(yè)務(wù)的交易監(jiān)控可視化系統(tǒng)針對(duì)銀行交易類(lèi)型日志進(jìn)行采集、結(jié)構(gòu)化存儲(chǔ)、多維度可視化分析與交易量預(yù)測(cè)和告警,為業(yè)務(wù)分析人員提供了方便直觀(guān)的監(jiān)控環(huán)境,解決了以前對(duì)交易問(wèn)題定位慢、反饋慢以及分析和解決不及時(shí)等問(wèn)題,極大地提高了工作效率。
2) 本文提出的系統(tǒng)架構(gòu)和可視化方法可用于多種類(lèi)型日志的采集與可視化分析中,具有較高的移植性、擴(kuò)展性與復(fù)用性。
[1] CHAMARTHI, PRASAD S, MAGESH S. Application of splunk towards log files analysis and monitoring of mobile communication nodes[J]. International Journal of Applied Science and Engineering Research, 2014, 3(2): 478?483.
[2] BIRJALI M, BENI-HSSANE A, ERRITALI M. Analyzing social media through big data using infosphere biginsights and apache flume[J]. Procedia Computer Science, 2017, 113: 280?285.
[3] BAI J. Feasibility analysis of big log data real time search based on Hbase and ElasticSearch[C]//Ninth International Conference on Natural Computation (ICNC). Shenyang, China:IEEE, 2013: 1166?1170.
[4] SANJAPPA S, AHMED M. Analysis of logs by using logstash[C]//Proceedings of the 5th International Conference on Frontiers in Intelligent Computing: Theory and Applications. Singapore: Springer, 2017: 579?585.
[5] BAJER M. Building an IoT Data Hub with Elasticsearch, Logstash and Kibana[C]//IEEE 5th International Conference on Future Internet of Things and Cloud Workshops (FiCloudW). Prague, Czech Republic: IEEE, 2017: 63?68.
[6] SHAHZAD F, SHELTAMI T R, SHAKSHUKI E M, et al. A review of latest web tools and libraries for state-of-the-art visualization[J]. Procedia Computer Science, 2016, 98: 100?106.
[7] BOONNAVASIN M, RATTANATAMRONG P. EnGeno: Towards enabling a medical genogram library for supporting home-visit patient diagnosis[C]//IEEE 5th Global Conference on Consumer Electronics. Kyoto, Japan: IEEE, 2016: 1?4.
[8] AIGNER W, MIKSCH S, SCHUMANN H, et al. Visualization of time-oriented data[M]. London: Springer, 2011: 45?68.
[9] KREPS J, NARKHEDE N, RAO J. Kafka: A distributed messaging system for log processing[C]//Proceedings of the NetDB. Athens, Greece: ACM, 2011: 1?7.
[10] WANG G, KOSHY J, SUBRAMANIAN S, et al. Building a replicated logging system with Apache Kafka[J]. Proceedings of the Vldb Endowment, 2015, 8(12): 1654?1655.
[11] GORMLEY C, TONG Z. Elasticsearch the definitive guide: a distributed real-time search and analytics engine[M]. Sebastopol California, USA: O’Reilly Media Inc, 2015: 61?127.
[12] ANDREASSEN O Φ, CHARRONDIèRE C, DE DIOS FUENTE A. Monitoring mixed-language applications with elasticsearch, logstash and kibana (ELK)[C]//Proceedings of the 15th International Conference on Accelerator and Large Experimental Physics Control Systems. Melbourne, Australia, 2015: 786?789.
[13] LIAO Xinyi, GAO Zhiwei, JI Weixing, et al. An enforcement of real time scheduling in spark streaming[C]//Sixth International Green and Sustainable Computing Conference.Las Vegas, NV, USA: IEEE, 2016: 1?6.
[14] BIFET A, MANIU S, QIAN J, et al. StreamDM: advanced data mining in spark streaming[C]//IEEE International Conference on Data Mining Workshop. Atlantic City, NJ, USA: IEEE, 2015: 1608?1611.
[15] LI Xiaolong, CHANG Daliang, PENG Hui, et al. Application of MVVM design pattern in MES[C]//Cyber Technology in Automation, Control, and Intelligent Systems (CYBER). Shenyang, China: IEEE, 2015: 1374?1378.
[16] SORENSEN E, MIKAILESC M. Model-view-viewmodel (MVVM) design pattern using windows presentation foundation (WPF) technology[J]. MegaByte Journal, 2010, 9(4): 1?19.
[17] GoJS-Interactive Diagrams for JavaScript and HTML[EB/OL]. [2017?08?30]. https://gojs.net/latest/index.html
[18] GULLER M. Machine Learning with Spark[M]. Berkeley, CA. USA: Apress, 2015: 153?205.
[19] MENG X, BRADLEY J, YAVUZ B, et al. Mllib: machine learning in apache spark[J]. The Journal of Machine Learning Research, 2016, 17(1): 1235?1241.
[20] GUAN Lei, HU Guangjun, WANG Zhuan. Research on network security situational awareness technology based on big data[J]. Netinfo Security, 2016, 16(9): 16?22.
(編輯 楊幼平)
Design and implementation of transaction monitoring visualization system oriented to banking business
REN Linan, DUAN Guihua, TAN Di, WANG Jianxin
(School of Information Science & Engineering, Central South University, Changsha 410083, China)
Due to the complex structure, difficulty of extraction, low efficiency of analysis and the failure of timely detection of transaction abnormalities caused by the growing heterogeneous bank transaction system, a real-time transaction monitoring system for banking business that provides the visual analysis of transaction data was designed and realized. Firstly, the system collected the key common indicators from the transaction log and stored them in a structured way, and then predicted the volume of transactions through machine learning and provided alerts of abnormal volume, and finally heterogeneous trading systems were monitored in real time through visualization and multi-perspective visual analysis of transaction data were provided. The system has a beautiful interface, good interaction and excellent performance, which can well meet the analyst's needs of banking analysis.
transaction log; real-time monitoring; trading volume forecasting; visual analysis
10.11817/j.issn.1672?7207.2018.10.016
TP393
A
1672?7207(2018)10?2490?08
2017?12?12;
2018?01?24
國(guó)家自然科學(xué)基金資助項(xiàng)目(61572530,61602171)(Projects(61572530, 61602171) supported by the Natural National Science Foundation of China)
段桂華,博士,副教授,從事計(jì)算機(jī)網(wǎng)絡(luò)、網(wǎng)絡(luò)安全研究;E-mail:duangh@csu.edu.cn