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