上官斌


摘要:如何將大型企業(yè)下各部門、各團(tuán)隊(duì)零散的監(jiān)控統(tǒng)一化,保障業(yè)務(wù)系統(tǒng)的穩(wěn)定運(yùn)行,提前發(fā)現(xiàn)隱患、及時(shí)發(fā)現(xiàn)及定位故障,通知運(yùn)維人員快速處理,成了業(yè)界迫切需要解決的問題。筆者在實(shí)際生產(chǎn)中通過主持物聯(lián)網(wǎng)集中監(jiān)控系統(tǒng)的自主開發(fā)實(shí)踐,上萬(wàn)臺(tái)IT硬件、數(shù)十個(gè)重點(diǎn)產(chǎn)品納入集中監(jiān)控,打通從基礎(chǔ)資源、應(yīng)用、業(yè)務(wù)、日志監(jiān)控IT全環(huán)節(jié),先于用戶發(fā)現(xiàn)并及時(shí)處置各類業(yè)務(wù)及系統(tǒng)故障60余起,取得良好成效。現(xiàn)總結(jié)了其中一些實(shí)踐性經(jīng)驗(yàn),供從業(yè)者參考。
關(guān)鍵詞:IT;集中;監(jiān)控;架構(gòu)
中圖分類號(hào): TP391.1? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)03-0110-02
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
1 平臺(tái)概述
隨著IT系統(tǒng)在各行各業(yè)的廣泛應(yīng)用的同時(shí),硬軟件故障給IT 系統(tǒng)的運(yùn)維部門帶來的巨大了挑戰(zhàn)。如何保障業(yè)務(wù)系統(tǒng)的穩(wěn)定運(yùn)行,提前發(fā)現(xiàn)隱患、解決隱患,如何提高IT資產(chǎn)利用率、將管理理論轉(zhuǎn)化成最佳生產(chǎn)力、提高管理效率、降低運(yùn)維成本,如何將大型企業(yè)下各部門、各團(tuán)隊(duì)零散的監(jiān)控統(tǒng)一化,成了業(yè)界迫切需要解決的問題。[1],[2]
集中監(jiān)控平臺(tái)作為中移物聯(lián)網(wǎng)公司最新一代的集運(yùn)維、監(jiān)控、分析一體的軟件。平臺(tái)目前支持多維度、多方式監(jiān)控和告警集成,通過7*24小時(shí)監(jiān)控中心集中監(jiān)控和短信郵件告警通知方式實(shí)現(xiàn)監(jiān)控統(tǒng)一化。同時(shí)將各零散系統(tǒng)的企業(yè)IT資源數(shù)據(jù)、資源運(yùn)行數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化,為IT資源分析提供數(shù)據(jù)基礎(chǔ)。
1.1? 技術(shù)概述
監(jiān)控平臺(tái)使用微服務(wù)框架開發(fā),支持單個(gè)周期(分鐘)億級(jí)數(shù)據(jù)采集、告警判定、歷史數(shù)據(jù)存儲(chǔ)和查詢。實(shí)現(xiàn)了告警合并、告警級(jí)別自定義、動(dòng)態(tài)告警閾值、告警恢復(fù)通知、維護(hù)周期自定義等功能。利用大數(shù)據(jù)技術(shù)進(jìn)行監(jiān)控指標(biāo)存儲(chǔ),支持海量監(jiān)控?cái)?shù)據(jù)接入存儲(chǔ)和快速查詢。提供快速便捷的接入能力和多樣的接入方式,實(shí)現(xiàn)跨部門、跨平臺(tái)的統(tǒng)一監(jiān)控、統(tǒng)一告警,并通過短信和郵件自動(dòng)通知到相關(guān)維護(hù)接口人。[3]
1.2 監(jiān)控范圍
2 集中監(jiān)控類型
2.1 基礎(chǔ)監(jiān)控
基礎(chǔ)監(jiān)控主要包含硬件和軟件兩部分,硬件監(jiān)控含網(wǎng)絡(luò)設(shè)備、主機(jī)、存儲(chǔ)設(shè)備等物理設(shè)備的相關(guān)硬件運(yùn)行狀態(tài),如CPU溫度、外界環(huán)境溫度、電源狀態(tài)、內(nèi)存條狀態(tài)、風(fēng)扇轉(zhuǎn)速、硬盤狀態(tài)等;軟件監(jiān)控含操作系統(tǒng)層面能獲取相關(guān)信息,如內(nèi)存使用率、CPU使用率、硬盤使用率、端口狀態(tài)、進(jìn)程狀態(tài)等。
硬件監(jiān)控:服務(wù)端向客戶端主動(dòng)發(fā)起數(shù)據(jù)采集請(qǐng)求,通過客戶端提供的認(rèn)證信息,經(jīng)SNMP或IPMI方式獲取硬件設(shè)備的運(yùn)行狀態(tài),并上傳至集中監(jiān)控平臺(tái);[4]
軟件監(jiān)控:客戶端部署監(jiān)控程序,由監(jiān)控程序從服務(wù)端獲取監(jiān)控指標(biāo)項(xiàng)后主動(dòng)獲取該客戶端的相關(guān)指標(biāo)數(shù)據(jù),并上傳至集中監(jiān)控平臺(tái)。
2.2 容器監(jiān)控
在K8S1.8之前的版本中,K8S默認(rèn)以及推薦的監(jiān)控體系是它自己的一套東西:Heapster + cAdvisor + Influxdb + Grafana,1.8后Heaspter由Metric-server替代。如果你部署了Dashboard,就能看到監(jiān)控?cái)?shù)據(jù),K8S 自身的 HPA (Horizontal Pod Autoscaler),默認(rèn)從 Heapster 中獲取數(shù)據(jù)進(jìn)行自動(dòng)伸縮,1.8版本以后,K8S希望將核心監(jiān)控指標(biāo)收攏到Metric API的形式,而自定義監(jiān)控指標(biāo),由Prometheus來實(shí)現(xiàn),Prometheus正式成為K8S推薦的監(jiān)控實(shí)現(xiàn)方案。因此,通過成熟的Prometheus來監(jiān)控容器,同時(shí)將Prometheus對(duì)接集中監(jiān)控平臺(tái),在集中監(jiān)控平臺(tái)實(shí)現(xiàn)統(tǒng)一告警、統(tǒng)一配置、數(shù)據(jù)統(tǒng)一展現(xiàn)。
2.3 應(yīng)用監(jiān)控
集中監(jiān)控平臺(tái)對(duì)操作系統(tǒng)層面之上的應(yīng)用層面監(jiān)控也全方位支持,如數(shù)據(jù)庫(kù)、集群系統(tǒng)、標(biāo)準(zhǔn)應(yīng)用、中間件、虛擬化等。同時(shí)支持自定義擴(kuò)展,按需定制插件對(duì)個(gè)性化應(yīng)用進(jìn)行監(jiān)控。
2.4 業(yè)務(wù)監(jiān)控
業(yè)務(wù)監(jiān)控主要從宏觀層面對(duì)具體業(yè)務(wù)指標(biāo)進(jìn)行實(shí)時(shí)監(jiān)控,通過閾值配置來觸發(fā)告警。我們提供平臺(tái)端主動(dòng)采集、業(yè)務(wù)端通過標(biāo)準(zhǔn)API推送兩種方式獲取數(shù)據(jù)。
平臺(tái)端主動(dòng)采集方式:集中監(jiān)控平臺(tái)每5分鐘會(huì)從配置好的數(shù)據(jù)源,按約定好的邏輯采集業(yè)務(wù)運(yùn)行數(shù)據(jù),通過平臺(tái)閾值配置觸發(fā)告警。
標(biāo)準(zhǔn)API推送:集中監(jiān)控平臺(tái)提供基于HTTP的API推送接口,業(yè)務(wù)端在平臺(tái)獲取授權(quán)后可將業(yè)務(wù)指標(biāo)數(shù)據(jù)通過API接口推送至集中監(jiān)控平臺(tái),通過平臺(tái)閾值配置觸發(fā)告警。
2.5 日志監(jiān)控
集中日志系統(tǒng)負(fù)責(zé)處理日志收集、日志展示、日志告警等工作。集中監(jiān)控平臺(tái)提供上層統(tǒng)一告警、統(tǒng)一展示、統(tǒng)一分析能力。日志系統(tǒng)可基于Kafka+Elasticsearch 搭建,客戶端將日志接入Kafka,并配置監(jiān)控關(guān)鍵字后即可在集中監(jiān)控平臺(tái)進(jìn)行告警觸發(fā)。
2.6 基于三方監(jiān)控系統(tǒng)集成監(jiān)控
像容器監(jiān)控一樣,并不是所有的平臺(tái)、系統(tǒng)的底層單元均需要通過部署監(jiān)控程序的方式來進(jìn)行監(jiān)控。為了各部門集中監(jiān)控需求的快速響應(yīng),可以提供直接將現(xiàn)有的三方產(chǎn)品、監(jiān)控系統(tǒng)產(chǎn)生的監(jiān)控?cái)?shù)據(jù)、告警數(shù)據(jù)直接集成到集中業(yè)控平臺(tái)的能力。如兼容不同的Zabbix、Open-Falon、Prometheus、北塔等監(jiān)控系統(tǒng)。
3 監(jiān)控接入方式
3.1 接口撥測(cè)
撥測(cè)系統(tǒng)利用分布于全國(guó)的撥測(cè)站點(diǎn),基于HTTP、HTTPS協(xié)議,可對(duì)網(wǎng)站、IP、域名、后臺(tái)程序接口等進(jìn)行自定義周期的探測(cè),通過獲取的可用率、延時(shí)等指標(biāo)隨時(shí)間區(qū)間變化來幫助分析撥測(cè)目標(biāo)的質(zhì)量情況,同時(shí)數(shù)據(jù)同步上傳至集中監(jiān)控平臺(tái),在平臺(tái)上對(duì)相關(guān)指標(biāo)進(jìn)行統(tǒng)一閾值配置,統(tǒng)一告警。同時(shí),統(tǒng)一的監(jiān)控?cái)?shù)據(jù)可視化呈現(xiàn)可幫助用戶及時(shí)對(duì)業(yè)務(wù)質(zhì)量做出反應(yīng),保證業(yè)務(wù)穩(wěn)定正常運(yùn)行。[5]
3.2 部署Agent
集中監(jiān)控平臺(tái)監(jiān)控agent是一款基于Zabbix agent、Prometheus Exporter、ES APM agent 二次開發(fā)、整合的全家桶,從而提供操作系統(tǒng)及之上層面的全方位監(jiān)控能力。被監(jiān)控設(shè)備只需部署相關(guān)agent后,就可在平臺(tái)側(cè)實(shí)現(xiàn)統(tǒng)一配置、統(tǒng)一告警、數(shù)據(jù)統(tǒng)一展現(xiàn)。
3.3 基于SNMP協(xié)議
SNMP是一個(gè)通用的網(wǎng)絡(luò)管理協(xié)議。通過它,我們可以獲取到服務(wù)器、網(wǎng)絡(luò)設(shè)備的各種信息。實(shí)際中,服務(wù)器、網(wǎng)絡(luò)設(shè)備的型號(hào)、廠商不一致,無(wú)法適配到通用的數(shù)據(jù)采集程序,且監(jiān)控應(yīng)用無(wú)法嵌入至設(shè)備的內(nèi)置系統(tǒng),因此使用SNMP作為客戶端能很好地解決上面的問題。一方面,SNMP作為通用協(xié)議,存在漏洞的可能性非常小,一旦出現(xiàn)漏洞,修復(fù)的速度也會(huì)非常的快;另一方面,作為通用協(xié)議,SNMP在各個(gè)平臺(tái)都有完備的解決方案,不用再為可能的兼容問題而頭疼。被監(jiān)控設(shè)備只需提供具有查詢響應(yīng)監(jiān)控項(xiàng)權(quán)限的團(tuán)體名和設(shè)備管理ip,集中監(jiān)控平臺(tái)即可主動(dòng)獲取監(jiān)控?cái)?shù)據(jù),并在監(jiān)控平臺(tái)側(cè)實(shí)現(xiàn)統(tǒng)一告警、統(tǒng)一配置、數(shù)據(jù)統(tǒng)一展現(xiàn)。
3.4 標(biāo)準(zhǔn)API
集中監(jiān)控平臺(tái)提供基于HTTP協(xié)議的監(jiān)控指標(biāo)推送接口和告警指標(biāo)推送接口。
通過監(jiān)控指標(biāo)推送接口推送的數(shù)據(jù)可在平臺(tái)側(cè)進(jìn)行告警配置、數(shù)據(jù)呈現(xiàn),并享受集中監(jiān)控平臺(tái)的所有功能。
通過告警指標(biāo)推送接口推送的數(shù)據(jù)可在平臺(tái)側(cè)進(jìn)行告警通知人配置、通知方式配置(短信、郵件),并享受監(jiān)控中心7x24小時(shí)監(jiān)控保障服務(wù)。
4 實(shí)例成效評(píng)估
基于IT全面集中監(jiān)控架構(gòu),我們自主開發(fā)了IT全面集中監(jiān)控系統(tǒng),首先將2.7萬(wàn)臺(tái)IT硬件及虛擬化服務(wù)器、網(wǎng)絡(luò)設(shè)備全面納入監(jiān)控,其次將61個(gè)重點(diǎn)業(yè)務(wù)產(chǎn)品重要進(jìn)程、功能及性能指標(biāo)納入集中監(jiān)控,開展7X24小時(shí)運(yùn)行監(jiān)控,平均月度共監(jiān)控到1600余項(xiàng)緊急告警,告警處理及時(shí)率96.7%。先于用戶發(fā)現(xiàn)并及時(shí)處置各類業(yè)務(wù)及系統(tǒng)故障60余起。
5 結(jié)束語(yǔ)
提高集中監(jiān)控能力是一個(gè)永無(wú)止境的工作。實(shí)際工作中,我們會(huì)不斷推廣系統(tǒng)覆蓋率,推動(dòng)所有業(yè)務(wù)部門的重要業(yè)務(wù)系統(tǒng)100%納入監(jiān)控。同時(shí)不斷完善告警信息的閉環(huán)能力,通過自動(dòng)工單,IVR自動(dòng)語(yǔ)音等手段提升及時(shí)通知及閉環(huán)管理效率;通過告警歸類、告警壓縮及根因分析,不斷壓縮告警數(shù)量,提升故障準(zhǔn)確定位能力,推動(dòng)緊急告警工單處理及時(shí)率提升到99%以上。從而全面提升企業(yè)的重要業(yè)務(wù)系統(tǒng)故障管理能力,提升客戶滿意度,具有重要意義。
參考文獻(xiàn):
[1] 譚敏,李國(guó)徽,譚家興,等.一種智能化IT運(yùn)維系統(tǒng)的研究與實(shí)現(xiàn)[J].電信工程技術(shù)與標(biāo)準(zhǔn)化,2019,32(9):60-63.
[2] 董繼宏,仲兆桉.淺談可視化大數(shù)據(jù)運(yùn)維平臺(tái)在企業(yè)中的應(yīng)用[J].科學(xué)與信息化,2020(27):30-34.
[3] 王培東.數(shù)字有機(jī)體系統(tǒng)用戶信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2009.
[4] 赫樂.基于CDH對(duì)HDFS監(jiān)控預(yù)警系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].呼和浩特:內(nèi)蒙古大學(xué),2018.
[5] 華為技術(shù)有限公司.一種公有云的撥測(cè)方法和裝置.CN106936659A[P].發(fā)明專利.2015-12-28[2021-8-16]
【通聯(lián)編輯:梁書】