本篇介紹系統三7e平台之EOPS
隨著主機下移和小機下移,以及網路銀行的持續發展,系統三目前運維面臨了很多問題,這些問題包括:
一、監控工具BPPM/NETCOOL的問題
二、監控工具SCOM的問題
服務端在系統三配置,主要還是針對windows系統和微軟自己產品的告警,比如群集狀態、批量作業、SQLServer、IIS等,對裝在windows上的非微軟系的中間件無法監控
複雜的告警和監控邏輯支持不友好
三、自動化部署、配置、變更的問題
系統三並沒有集中的自動化的運維操作工具或平台,特別是針對Linux系統(SAS不好用,只能推腳本)
一般部署中間件、磁碟分區、建用戶、擴容等除了手工操作之外,就是一些自動化安裝配置腳本,沒有成平台的東西將整個流程串下來,主要還是堆人力
四、運維智能化程度不高的問題
運維首先要解決自動化,才能去考慮智能化,目前系統三的運維自動化程度還不高,智能化就更無從談起
通過監控分析預防攻擊、預測交易、容量規劃、應急處置等能力基本沒有,一般都是事後(收到告警或者有用戶投訴)才能發現故障,沒有任何故障預防、安全預防的能力
五、運維數據利用率不高的問題
其實生產上每天產生的監控數據和系統/應用日誌有很大的潛在利用價值,但目前基本上日誌打到伺服器上,就等著磁碟滿了刪掉,最多就是在處理投訴工單的時候查一下日誌(主要指中銀開放平台)、或者配合應用查一下系統故障,除了占空間基本再無其它用處
查日誌現在就是一台一台登上伺服器用vim/grep命令做,效率低到慘不忍睹,還面臨一個查出來的日誌怎麼發給開發去處理的問題(ECC拷到工位,再發給開發)
上述問題每一個都很實在,都是切膚之痛,因此x86平台亟需一個能解決、或者部分解決上述問題的、成體系架構的東西,它不能只是一個簡單工具或者一個平台,而應該是從方法論到平台實踐到流程管控的貫穿整個運維生命周期的一套技術體系。
系統三團隊自2016年開始的智能化運維轉型與實踐之路,主要的成果之一即分散式自動化運維平台EOPS。本篇重點講述EOPS的功能和架構規劃設計。
用一句話描述什麼是EOPS——系統三團隊完全自主研發的,以x86分散式系統為主要運維對象,基於開源軟體技術實現的一套分散式可擴展的,滿足標準化、自動化和平台化的,提供系統與組件部署、多維監控,以及日誌統計分析等功能在內的綜合運維管理平台
EOPS功能架構
EOPS整體功能上依賴於CMDB配置管理信息,系統三在2015年起建立了自己的CMDB,詳見系統三智能運維實踐之三——EIRMS資源管理平台。以CMDB為基礎,EOPS實現了如下主要功能:
基於企業級開源監控軟體Zabbix實現系統和組件的運行狀態監控
基於開源自動化工具Ansible實現系統與組件的部署配置管理、健康檢查與開門營業檢查等
基於開源的日誌分析套件ElasticStack(原來叫ELK)實現系統與組件的日誌集中收集與統計分析管理
對接系統三的運維大數據平台——EIDAS(下一篇文章論述),可基於Hadoop、Storm等大數據技術進行日誌分析,實現交易統計、動態基線、容量規劃、趨勢預測等功能
對接系統三的雲化資源管理平台——ECMS,為中國銀行分行託管雲,以及未來中國銀行雲平台基礎設施提供OpaaS,即IT運維服務,使得雲平台能夠通過EOPS提供的服務進行IaaS之上的系統、中間件、應用的部署、運維和管理
EOPS系統架構
EOPS整體架構由底向上分為三層:Server層(伺服器層),Service層(微服務層),平台層。
Server層
EOPS底層功能是基於若干開源軟體實現的。對於傳統銀行來說,如果既想節約成本,不想花錢購買昂貴的商業軟體,又沒有太多的人力精力像互聯網公司一樣完全從零開始研發一套運維工具,那麼最好的辦法就是基於開源軟體做二次開發。Zabbix、Ansible、ELK都是開源領域著名的運維軟體,而且他們都提供多種類型的API,我們完全可以基於這些API做一些定製開發,滿足系統三日常的運維需求。
EOPS的Server層主要由Zabbix、Ansible、ELK/Storm三大類集群構成。
Zabbix:強大的監控定製化能力,方便的界面配置操作,以及穩定的性能。目前按照系統三規劃,一個台Zabbix Server可承載1000個分區的監控,現在系統三總共有2台Zabbix Server
Ansible:基於SSH方式的遠程操作,避免了在客戶端安裝Agent。提供的copy、template、shell、service等各類基礎模塊,以及複雜的playbook配置,完全滿足日常系統及中間件的配置部署工作
ELK/Storm:該集群在部署上歸於EIDAS,EOPS為其提供前端門戶,本文不做架構介紹
Service層
開源軟體已經選好了,但此時我們又面臨如下需要考慮的問題:
Zabbix、Ansible、ELK在各自領域具有強大的功能,但畢竟還是各自獨立的、功能不同的工具軟體,如何才能將其統一規劃設計,組成一個整體架構?
Zabbix、Ansible、ELK各自具有其分散式特性——都支持集群部署、動態橫向擴展、故障隔離等,如何將其統一管理,特別是未來跨數據中心以後的一體化運維管理?
如何實現OpaaS,使其建成之後不僅僅是一個工具平台,而是成為一個能為整個數據中心所使用的IT服務提供者?
系統三在智能化運維轉型過程中,開發了諸多平台,各自承擔不同的功能,這些平台之間有何關聯?平台之間不是彼此割裂的,是有數據和功能上的交互的,比如EOPS需要使用CMDB的配置信息、虛擬化信息,運維大數據平台的流式告警需要發送到EOPS,雲化資源管理平台需要調用EOPS的自動化功能。它們之間如何交互如何調用?
在Service層,我們封裝了Zabbix、Ansible、ELK的常見操作,並且對上層提供統一的REST介面,這樣就將底層集群和上層服務解耦,平台開發者無需關心某個功能底層是如何實現的,也無需關心底層集群的可用性(掛了怎麼辦),因為服務層已經為其保證了高可用與負載均衡機制。
平台層
該層承載的功能主要包括:
平台的展示邏輯(封裝與組合微服務調用結果)
配置部署操作接收用戶的前端輸入,並組裝成消息報文發送給Ansible對應的微服務(平台和Ansible之間通過消息隊列互聯)
平台的許可權管理與ID管理,提供頁面級和介面級的許可權管理,並且對於生產伺服器的寫操作,提供平台隨機口令申請,經審批後可登錄EOPS進行操作(審批流程2018年完成開發上線)
其它平台端功能
EOPS主要功能概述
EOPS主要包括首頁、工作台、監控管理、事件管理、運維服務、運營分析、工具箱、平台管理幾大功能分區。下面選取幾個重要功能詳細介紹。
一、基於Storm和Websocket的交易量實時展示,如圖通過實時收集日誌,並經過Storm進行聚合統計,實現了網路銀行關鍵交易筆數監測、訪問量全國分布實時監測、當日交易量和訪問量實時統計等場景,並通過Websocket技術由Storm直接推送到前端頁面。不同於前端頁面定時刷新資料庫,該方式真正做到了實時性。該功能可為業務推廣進行運營分析支持。
二、個性化定製我的面板,如圖運維人員可以將自己感興趣和關心的指標監控在我的面板定義,更方便快捷使用。
三、我的系統概覽,如圖登錄用戶可看到自己的ABC角系統的告警概覽(7*24值班人員可看到所有系統),告警級別同ECC一體化監控保持一致,點擊告警色塊可看到告警詳細信息。EOPS的監控告警依賴於標準化的監控模板,目前EOPS提供涵蓋操作系統、中間件到應用在內的各類監控模板100多個,監控項50多萬。對於新增系統,只需直接應用監控模板即可完成全部伺服器的監控項配置,無需一台一台伺服器進行手工配置。
四、基於HTTP/PING/TCP的業務撥測,如圖按照批次分塊顯示,通過配置的URL監控,返回撥測結果,包括返回碼、返回時間、錯誤信息和響應速度等,還可查看歷史圖表。撥測可提供先於系統故障的預警功能,對於訪問緩慢、異常等可在用戶投訴之前提前發現並及時處理。
五、告警事件概覽,如圖該頁面主要給7*24值班人員查看所有告警信息,提供全局視角的告警概覽,便於快速處理。
六、基於圖資料庫Neo4j的系統拓撲自動發現,如圖通過腳本定時、自動收集伺服器TCP連接關係並存入圖資料庫,基於圖資料庫的Cypher語法可查詢系統內部、系統間拓撲連接關係,繪製出系統拓撲圖,並將監控和告警關聯至圖中節點。基於圖的拓撲發現功能徹底解放了以往根據部署方案手工畫架構圖的工作,對於流程複雜、交易鏈冗長、難以靠人工濾清關係的系統,可通過EOPS的拓撲自動發現自動繪製、更新系統關聯關係。
七、健康巡檢,如圖巡檢流程:選擇系統->選擇伺服器->選擇巡檢腳本->任務執行。並在此頁面查看巡檢結果,對每個伺服器的每個巡檢項以表格形式列出結果。相較於以往登錄伺服器進行手工巡檢,或者用SAS推送腳本再收集文本結果,EOPS的健康巡檢可快速配置巡檢腳本和目標伺服器,並在頁面直觀的顯示巡檢結果,哪台有問題、有什麼問題一目了然。
八、Web訪問統計,如圖自由定製想進行Web監控的伺服器,將該訪問該伺服器的來源IP進行TOP10統計,並將IP轉換成省市坐標。該功能主要為了監控類似DOS攻擊這樣的異常訪問。該功能上線以後成功在2017年預警過用戶中心的簡訊炸彈事件和APS系統的異常攻擊事件。
九、批量任務執行,如圖EOPS有標準化的腳本庫,用戶也可以上傳自定義的腳本,並通過EOPS推送到伺服器執行。
十、網路銀行訪問量動態基線預測,如圖基於LSTM深度學習演算法對歷史訪問量數據進行模型訓練,並於每日零時預測出當天的交易量帶狀閾值,上圖藍線是實時推送過來的交易量,當藍線超出灰色帶狀區域時可認為是訪問異常,可由人工或機器做後續處理。交易預測是系統三2017年在運維方面進行人工智慧的一次先期嘗試,2018年,系統三將就AI在運維領域的應用展開全面的場景規劃和研究實踐,敬請期待。
十一、.基於Activiti實現工作流引擎,結合Ansible定義的原子操作,提供運維全生命周期管理,包括簡化版的審批流程(2018待建)。
EOPS亮點介紹
自主可控:EOPS從底層到門戶全部由系統三自主研發,未使用任何一款商業付費軟體,全部基於開源實現,也無任何廠商支持,組件調優、故障處理、維護工作全部由系統三員工自行完成,具有完全自主知識產權
跨地域跨中心:底層開源組件支持跨地域跨中心的分散式部署,可滿足未來中國銀行四地五中心的一體化運維
容器與微服務:基於kubernetes構建了Service層(即微服務層),通過kubernetes進行服務的創建、發布、橫向擴展、負載均衡、服務掛掉後的自動漂移(保證高可用)。Service封裝了底層開源軟體的各種介面,使平台開發人員無需關心底層軟體的維護。目前在系統三,Zabbix/Ansible/ELK/Storm這些底層軟體有專門的同事進行維護、升級,和開發是不同的人員。
IT運維服務化:EOPS通過Service層封裝了運維操作,例如監控、部署、變更、批量執行腳本等,可為本團隊或其它團隊提供IT運維服務
兼容傳統商業軟體:對於運維目標,平台上兼容AIX、Linux、Windows,中間件除了開源的Apache、JBoss、Mysql等,還兼容IHS、WAS、Oracle等商業軟體
智能運維:EOPS提供的動態基線、交易量預測、交易量實時展示、訪問量全國分布、複雜告警、故障處理建議等應用場景,大幅提升了系統三運維智能化能力
EOPS建設成效
目前EOPS納管x86平台分區數1700+,每日生成並處理100+告警,累計監控項接近50萬,每日新增日誌250-300GB。
通過EOPS進行自動化運維,可使組件安裝與系統配置時間從1-2天縮短至10分鐘,日誌收集時間從3小時多縮短至1小時,批量啟停從20分鐘縮短至2分鐘,系統巡檢時間控制在10分鐘之內,整體操作效率至少提升10倍以上。
該項目2016年參加人民銀行科技發展獎獲二等獎
喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!
本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧! 請您繼續閱讀更多來自 x86weekly 的精彩文章:
※系統三智能運維實踐之二——基於Kubernetes的容器集群與微服務管理
TAG:x86weekly |