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