王嘯 上海浦東發(fā)展銀行
關(guān)鍵字:網(wǎng)絡(luò)報(bào)文 應(yīng)用監(jiān)控 交易追蹤
引言:隨著全球金融業(yè)務(wù)的快速增長(zhǎng),金融系統(tǒng)的交易和業(yè)務(wù)的復(fù)雜性也在不斷增加。各應(yīng)用功能組件化、服務(wù)化后,銀行系統(tǒng)逐漸轉(zhuǎn)變?yōu)槊嫦蚍?wù)的松耦合應(yīng)用架構(gòu),一筆業(yè)務(wù)的完成,貫穿于多個(gè)生產(chǎn)系統(tǒng)之間,監(jiān)控、管理和故障排查的難度大大增加?;诰W(wǎng)絡(luò)報(bào)文的應(yīng)用監(jiān)控系統(tǒng)能夠利用網(wǎng)絡(luò)的數(shù)據(jù)真實(shí)性特點(diǎn),快速及時(shí)的分析應(yīng)用數(shù)據(jù),自動(dòng)分析并定位問(wèn)題根源,并統(tǒng)計(jì)出問(wèn)題影響。
1.1 目前生產(chǎn)上存在的一些異常,通常在網(wǎng)絡(luò)層出現(xiàn)問(wèn)題,在應(yīng)用上查看不到有用的信息,如交易請(qǐng)求已到達(dá)服務(wù)器端但是因服務(wù)器端口資源占滿(mǎn)而應(yīng)用無(wú)法獲取交易。而本系統(tǒng)能夠從網(wǎng)絡(luò)流量數(shù)據(jù)上分析出網(wǎng)絡(luò)層、應(yīng)用層的報(bào)錯(cuò)信息,有效協(xié)助開(kāi)展異常的及時(shí)發(fā)現(xiàn)和分析排查。
1.2 普通的基于日志的應(yīng)用監(jiān)控系統(tǒng)如果應(yīng)用日志中沒(méi)有打印足夠的有效信息,或者部分交易根本不打印日志,則無(wú)法實(shí)現(xiàn)對(duì)應(yīng)用的有效監(jiān)控。本系統(tǒng)完全從網(wǎng)絡(luò)流量數(shù)據(jù)中獲取信息,不依賴(lài)于應(yīng)用日志打印信息的多少,完全真實(shí)的反應(yīng)了交易質(zhì)量情況。
1.3 目前主流的應(yīng)用監(jiān)控方式,對(duì)被監(jiān)控和分析系統(tǒng)的應(yīng)用存在著一定的改造工作。系統(tǒng)改造既存在各開(kāi)發(fā)項(xiàng)目組是否配合的問(wèn)題,又存在改造所需時(shí)間和工作量的問(wèn)題,有時(shí)推進(jìn)速度很慢,導(dǎo)致監(jiān)控缺失。本系統(tǒng)取的是網(wǎng)絡(luò)鏡像流量數(shù)據(jù),對(duì)源系統(tǒng)不存在任何改造工作,能夠達(dá)到系統(tǒng)上線(xiàn)即監(jiān)控的目的。
1.4 無(wú)論是寫(xiě)應(yīng)用日志還是應(yīng)用上發(fā)送監(jiān)控?cái)?shù)據(jù),如果處理不當(dāng)可能會(huì)對(duì)源系統(tǒng)的性能產(chǎn)生影響。本系統(tǒng)取的是網(wǎng)絡(luò)鏡像流量數(shù)據(jù),直接從交易機(jī)旁路數(shù)據(jù)至本系統(tǒng),對(duì)源系統(tǒng)的性能沒(méi)有任何影響。
2.1 唯一交易確認(rèn)與交易報(bào)文串接
金融系統(tǒng)間的聯(lián)機(jī)通訊報(bào)文所使用的傳輸層協(xié)議通常為T(mén)CP/IP協(xié)議,此協(xié)議的特點(diǎn)為確保了傳輸?shù)臏?zhǔn)確性和完整性。其中TCP協(xié)議包含了傳輸?shù)脑炊丝诤湍康亩丝?,而IP協(xié)議包含了傳輸?shù)脑碔P和目的IP。在一定時(shí)間段內(nèi),指定源IP源端口目的IP目的端口這4個(gè)參數(shù)的交易是唯一的。通常情況下,一筆交易由2筆報(bào)文組成,分別為交易的請(qǐng)求報(bào)文和交易的響應(yīng)報(bào)文。為了將指定的請(qǐng)求報(bào)文和響應(yīng)報(bào)文串接成一筆交易,系統(tǒng)除了利用上述提到的交易唯一性特點(diǎn)外,還需要限定交易的超時(shí)時(shí)間。在特定超時(shí)時(shí)間范圍內(nèi),源IP端口和目的IP端口正好相反的時(shí)間差最小的報(bào)文為一筆交易的請(qǐng)求與響應(yīng)報(bào)文??紤]到請(qǐng)求報(bào)文端口的隨機(jī)性,所以超時(shí)時(shí)間可以根據(jù)生產(chǎn)實(shí)際情況,設(shè)定為交易平均響應(yīng)時(shí)間的10倍左右比較合適。
但有些應(yīng)用系統(tǒng)比較特殊,會(huì)使用固定的端口來(lái)發(fā)送大量的請(qǐng)求報(bào)文,且支持異步接收響應(yīng)報(bào)文,通過(guò)以上報(bào)文網(wǎng)絡(luò)協(xié)議的特性則無(wú)法確定一筆唯一交易,此時(shí)需要利用報(bào)文體內(nèi)的應(yīng)用字段來(lái)協(xié)助定位交易的唯一性。這類(lèi)特殊的交易一般在應(yīng)用報(bào)文體內(nèi)會(huì)包含順序號(hào)和子順序號(hào)之類(lèi)的字段,且這類(lèi)順序號(hào)、子順序號(hào)字段由應(yīng)用自動(dòng)生成,在一天內(nèi)基本不可能重復(fù)。利用以上的應(yīng)用特性,系統(tǒng)可以將順序號(hào)、子順序號(hào)等能夠確定交易唯一性的字段組合成交易唯一序號(hào),并結(jié)合交易的源目IP端口來(lái)確定唯一一筆交易。通過(guò)以上應(yīng)用交易的特性,也能使一筆交易從上下游系統(tǒng)串接起來(lái),形成一條交易路徑,清晰的顯示一筆交易在每個(gè)系統(tǒng)節(jié)點(diǎn)的耗時(shí)大小與變化。
2.2 靈活的監(jiān)控配置
應(yīng)用監(jiān)控系統(tǒng)最重要的功能就是監(jiān)控報(bào)警,而監(jiān)控報(bào)警必須依賴(lài)于監(jiān)控配置。系統(tǒng)每分鐘將現(xiàn)有業(yè)務(wù)性能情況匹配一次所有規(guī)則,若符合告警規(guī)則則發(fā)出警報(bào)。本系統(tǒng)使用的告警規(guī)則為閾值告警。
閾值告警僅針對(duì)一個(gè)系統(tǒng),總共分為數(shù)據(jù)來(lái)源、觸發(fā)條件、告警周期和告警內(nèi)容四部分。數(shù)據(jù)來(lái)源定義了數(shù)據(jù)所屬系統(tǒng)和交易各維度的范圍,可設(shè)置黑名單和白名單,根據(jù)每個(gè)維度的值不同在白名單和黑名單中填入不同的值。如在交易代碼維度的白名單中添加指定交易代碼來(lái)監(jiān)控這些交易代碼的交易,在交易渠道維度黑名單中添加指定渠道代碼來(lái)不監(jiān)控這些渠道的交易。觸發(fā)條件部分分為觸發(fā)條件和持續(xù)時(shí)間兩塊,應(yīng)用管理員可以定義4個(gè)性能指標(biāo)中任意個(gè)指標(biāo)高于或低于閾值的組合、返回碼等于指定閾值,及滿(mǎn)足條件的持續(xù)發(fā)生時(shí)間。如持續(xù)兩分鐘交易成功率低于50%及交易量高于10000筆的條件。告警周期可以定義告警發(fā)生的周期,日期可按照日、月、年、周、旬、季度的維度來(lái)定義,時(shí)間可添加多個(gè)時(shí)間段。告警內(nèi)容允許應(yīng)用管理員添加告警的說(shuō)明,使收到告警通知的人員能夠清楚了解告警發(fā)生的原因,時(shí)間等告警關(guān)鍵信息。
本文通過(guò)針對(duì)基于網(wǎng)絡(luò)報(bào)文的監(jiān)控系統(tǒng)的新特點(diǎn)進(jìn)行分析,明確系統(tǒng)的特性與優(yōu)勢(shì),提出并分析解決了系統(tǒng)的技術(shù)特點(diǎn)和難點(diǎn)。無(wú)論在特殊業(yè)務(wù)場(chǎng)景,還是日常運(yùn)維監(jiān)控,本系統(tǒng)均能勝任相關(guān)需求,對(duì)復(fù)雜架構(gòu)的數(shù)據(jù)中心系統(tǒng)運(yùn)維自動(dòng)化提供了豐富支撐。