聊聊基于實(shí)時(shí)流處理技術(shù)的監(jiān)控閾值計(jì)算引擎建設(shè)實(shí)踐
引言
監(jiān)控工具是生產(chǎn)系統(tǒng)安全運(yùn)營(yíng)、確保業(yè)務(wù)連續(xù)穩(wěn)定的關(guān)鍵一環(huán)。G行監(jiān)控領(lǐng)域已經(jīng)使用Zabbix、ITM、Nagios等成熟監(jiān)控工具,有效支撐絕大多數(shù)監(jiān)控需求場(chǎng)景,為G行運(yùn)維工作提供堅(jiān)實(shí)保障。然而,隨著業(yè)務(wù)發(fā)展和技術(shù)環(huán)境迭代升級(jí),生產(chǎn)系統(tǒng)規(guī)??焖僭鲩L(zhǎng)帶來的海量運(yùn)維數(shù)據(jù),以及新技術(shù)和新組件的引入,對(duì)監(jiān)控平臺(tái)工具建設(shè)提出了更高的要求。我們逐漸發(fā)現(xiàn)傳統(tǒng)監(jiān)控工具在以下領(lǐng)域存在短板:監(jiān)控配置管理分散導(dǎo)致變更繁瑣,非標(biāo)監(jiān)控需求支持能力偏弱,在處理海量運(yùn)維數(shù)據(jù)方面性能不足,影響了監(jiān)控效率提升和監(jiān)控質(zhì)量。這些挑戰(zhàn)促使我們探索新的運(yùn)維工具,與傳統(tǒng)工具相輔相成,提升監(jiān)控系統(tǒng)的靈活性和效率。
傳統(tǒng)監(jiān)控工具痛點(diǎn)分析
配置分散管理影響效率
傳統(tǒng)監(jiān)控工具的配置文件和工具部署實(shí)例綁定,多實(shí)例部署的監(jiān)控工具其配置文件在多個(gè)服務(wù)節(jié)點(diǎn)中分散管理。這種配置管理方式在實(shí)施批量監(jiān)控策略部署和調(diào)整場(chǎng)景下, 管理員需要逐個(gè)節(jié)點(diǎn)對(duì)配置文件進(jìn)行修改、驗(yàn)證,不僅效率低且步驟繁瑣容易引發(fā)操作風(fēng)險(xiǎn)。此外,在實(shí)施復(fù)雜非標(biāo)場(chǎng)景監(jiān)控部署時(shí),運(yùn)維人員需要對(duì)配置文件進(jìn)行深度修改,而配置文件分散管理會(huì)大幅增加人員工作量,容易引發(fā)文件修改錯(cuò)誤的操作風(fēng)險(xiǎn)。
特殊需求場(chǎng)景支持能力不足
傳統(tǒng)監(jiān)控工具中有閉源商業(yè)產(chǎn)品,也有開源社區(qū)軟件,均有廣泛的使用基礎(chǔ)和成熟的生態(tài)環(huán)境,在所擅長(zhǎng)領(lǐng)域?yàn)?5%以上的監(jiān)控需求提供了解決方案,剩下5%的監(jiān)控需求有較為明顯的非標(biāo)特點(diǎn),傳統(tǒng)監(jiān)控工具所提供的通用解決方案在適配此類需求時(shí)缺乏靈活性。例如一些場(chǎng)景需要支持監(jiān)控策略有靈活的生效時(shí)間,另一些場(chǎng)景需要支持同一個(gè)監(jiān)控指標(biāo)能夠配置多個(gè)數(shù)據(jù)計(jì)算公式等。要有效滿足這些需求場(chǎng)景,需要通過設(shè)計(jì)和實(shí)現(xiàn)新的監(jiān)控工具來解決。
成熟產(chǎn)品存在性能瓶頸
隨著業(yè)務(wù)發(fā)展,生產(chǎn)系統(tǒng)的規(guī)模越來越大,復(fù)雜性也越來越高,監(jiān)控工具需要采集和處理的數(shù)據(jù)量也急劇增大。要持續(xù)滿足監(jiān)控報(bào)警準(zhǔn)確、高效、及時(shí)的要求,工具的處理性能也需要不斷提高。傳統(tǒng)監(jiān)控工具大多都已存在了數(shù)十年,受限于設(shè)計(jì)理念和軟件架構(gòu),性能瓶頸在技術(shù)浪潮的推進(jìn)下日益凸顯。
解決方案
針對(duì)以上傳統(tǒng)監(jiān)控工具的痛點(diǎn),我們提出以自主研發(fā)為基礎(chǔ),整合行內(nèi)運(yùn)維數(shù)據(jù)資產(chǎn),引入大數(shù)據(jù)處理技術(shù)構(gòu)建新的監(jiān)控工具:閾值計(jì)算引擎,其核心組件包括配置管理臺(tái)、策略驅(qū)動(dòng)、計(jì)算引擎。閾值計(jì)算引擎設(shè)計(jì)要點(diǎn)和嵌入監(jiān)控系統(tǒng)后的工作機(jī)制如下:
設(shè)計(jì)要點(diǎn)
高頻數(shù)據(jù)計(jì)算:采用流處理技術(shù)實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)采集、處理和告警,確保故障及時(shí)發(fā)現(xiàn)。
集中式配置管理臺(tái):設(shè)計(jì)實(shí)現(xiàn)集中式的配置管理臺(tái),統(tǒng)一管理監(jiān)控配置,解綁監(jiān)控配置和監(jiān)控工具,提高監(jiān)控配置變更效率。
分布式計(jì)算引擎:計(jì)算模塊實(shí)例采用分布式架構(gòu)部署,支持大規(guī)模并行數(shù)據(jù)處理,且可依據(jù)數(shù)據(jù)規(guī)模的變化進(jìn)行彈性擴(kuò)縮容,有效應(yīng)對(duì)各種監(jiān)控需求。
立足自主研發(fā):結(jié)合G行監(jiān)控運(yùn)維現(xiàn)狀,立足自主研發(fā),從多維度拓展工具能力,能夠覆蓋各種標(biāo)準(zhǔn)監(jiān)控場(chǎng)景,同時(shí)靈活支持各種非標(biāo)監(jiān)控需求。
計(jì)算引擎上下游架構(gòu)層次
數(shù)據(jù)采集層:利用G行統(tǒng)一數(shù)據(jù)采集系統(tǒng)完成各設(shè)備終端日志、性能數(shù)據(jù)和事件數(shù)據(jù)采集上報(bào)。
數(shù)據(jù)傳輸層:依托G行實(shí)時(shí)數(shù)據(jù)總線實(shí)現(xiàn)運(yùn)維數(shù)據(jù)高效、可靠傳輸。
資源調(diào)度層:大數(shù)據(jù)處理任務(wù)的資源供給站,以Container為單元向計(jì)算任務(wù)提供CPU、內(nèi)存、網(wǎng)絡(luò)等資源切片。
數(shù)據(jù)處理層:基于流處理框架實(shí)現(xiàn)日志、性能數(shù)據(jù)和監(jiān)控策略數(shù)據(jù)的實(shí)時(shí)匹配和計(jì)算,對(duì)符合告警條件的數(shù)據(jù)輸出告警,并將告警信息傳遞給統(tǒng)一監(jiān)控管理平臺(tái)告警管理中心。
告警通知層:根據(jù)計(jì)算結(jié)果生成告警,通過多種渠道通知運(yùn)維人員。支持告警分級(jí)和告警抑制,減少誤報(bào)和重復(fù)告警。
策略驅(qū)動(dòng):負(fù)責(zé)將配置管理中心的策略、公式、設(shè)備信息通過緩存通道同步至計(jì)算引擎,與設(shè)備性能數(shù)據(jù)進(jìn)行匹配計(jì)算。
配置管理臺(tái):集中式的監(jiān)控配置管理臺(tái),負(fù)責(zé)統(tǒng)一維護(hù)和管理監(jiān)控策略、設(shè)備信息和指標(biāo)計(jì)算公式。
圖片
圖片
通過統(tǒng)一監(jiān)控管理平臺(tái)集中配置策略和查看告警信息,整個(gè)工具實(shí)現(xiàn)了從策略配置到數(shù)據(jù)計(jì)算再到告警推送的全流程管理。
閾值計(jì)算引擎特點(diǎn)
配置管理集中化
通過將監(jiān)控部署工藝流程中配置入口、策略管理、變更操作進(jìn)行集中化管理,實(shí)現(xiàn)一站式監(jiān)控策略上下線。
配置入口集中化:用戶通過統(tǒng)一監(jiān)控管理平臺(tái)頁(yè)面作為設(shè)備信息和監(jiān)控策略的管理入口,集中管理監(jiān)控配置信息。
策略管理集中化:通過配置管理臺(tái)統(tǒng)一管理云上、云下監(jiān)控策略,無需按照領(lǐng)域進(jìn)行策略分類維護(hù),降低管理成本。
變更操作集中化:用戶只需將準(zhǔn)備好的監(jiān)控策略文件和設(shè)備信息進(jìn)行一鍵導(dǎo)入和綁定,即可完成策略變更操作。
具備個(gè)性化支持能力
通過實(shí)現(xiàn)非標(biāo)數(shù)據(jù)規(guī)范化模塊和拓展監(jiān)控策略數(shù)據(jù)模型提升個(gè)性化場(chǎng)景監(jiān)控需求支持能力。
非標(biāo)數(shù)據(jù)規(guī)范化:該模塊基于動(dòng)態(tài)腳本語言、以及可配置化數(shù)據(jù)預(yù)處理模塊,用于統(tǒng)一各種非標(biāo)準(zhǔn)監(jiān)控場(chǎng)景下所采集監(jiān)控?cái)?shù)據(jù)的格式。支持用戶在線交互式地?cái)?shù)據(jù)預(yù)覽和標(biāo)準(zhǔn)化工作。對(duì)接不同格式的監(jiān)控?cái)?shù)據(jù)時(shí),用戶可以在線預(yù)覽數(shù)據(jù)樣例,編寫數(shù)據(jù)處理腳本,驗(yàn)證數(shù)據(jù)處理效果。
多維度調(diào)整監(jiān)控策略模型:通過優(yōu)化監(jiān)控策略數(shù)據(jù)模型,擴(kuò)展時(shí)間等維度屬性和實(shí)現(xiàn)策略模板的分組管理,完善個(gè)性化監(jiān)控需求支持能力。
高效處理大規(guī)模數(shù)據(jù)
計(jì)算引擎設(shè)計(jì)上采用分布式彈性可擴(kuò)展的部署模式,實(shí)現(xiàn)大規(guī)模數(shù)據(jù)計(jì)算的高吞吐和低延遲。計(jì)算模型設(shè)計(jì)模式升級(jí)和數(shù)據(jù)處理任務(wù)內(nèi)存使用效率優(yōu)化,進(jìn)一步提升了任務(wù)執(zhí)行效率。
高吞吐和低延遲:閾值計(jì)算引擎在數(shù)據(jù)處理方面具備高吞吐和低延遲特性,能夠及時(shí)處理海量運(yùn)維數(shù)據(jù),確保告警信息高效、及時(shí)地通知到位。具體來說流處理技術(shù)的引入可以將監(jiān)控?cái)?shù)據(jù)處理延遲提高到秒級(jí)。另外工作節(jié)點(diǎn)靈活擴(kuò)展能夠依據(jù)數(shù)據(jù)處理量級(jí)快速對(duì)數(shù)據(jù)處理節(jié)點(diǎn)進(jìn)行大規(guī)模擴(kuò)容,滿足海量數(shù)據(jù)處理需求。
時(shí)間窗性能優(yōu)化:很多監(jiān)控需求的實(shí)現(xiàn)都基于時(shí)間窗概念,所謂時(shí)間窗是在指定時(shí)間范圍內(nèi)捕獲無界的流動(dòng)數(shù)據(jù)進(jìn)行分析處理的技術(shù),時(shí)間窗可以按一定步長(zhǎng)向前滑動(dòng)或滾動(dòng)。從G行監(jiān)控運(yùn)維實(shí)際情況出發(fā),我們實(shí)現(xiàn)了自適應(yīng)時(shí)間窗,只在捕獲異常數(shù)據(jù)時(shí)才創(chuàng)建窗口。Flink內(nèi)置的時(shí)間窗存在多窗口之間的數(shù)據(jù)拷貝和窗口步長(zhǎng)固定問題,降低了流處理任務(wù)的內(nèi)存使用效率和需求場(chǎng)景支持靈活度。立足實(shí)際需求場(chǎng)景的自研時(shí)間窗支持時(shí)間窗動(dòng)態(tài)移動(dòng)步長(zhǎng),同時(shí)避免時(shí)間窗在滑動(dòng)時(shí)的數(shù)據(jù)拷貝和重復(fù)計(jì)算,提高了窗口數(shù)據(jù)計(jì)算和告警判斷的效率,也避免了內(nèi)存密集型任務(wù)頻繁Full GC對(duì)任務(wù)性能的影響,有效提升工具運(yùn)行穩(wěn)定性。
圖片
應(yīng)用效果
隨著新監(jiān)控工具閾值計(jì)算引擎的投產(chǎn)運(yùn)行,實(shí)現(xiàn)監(jiān)控配置統(tǒng)一管理、快速下發(fā)、動(dòng)態(tài)配置。目前G行實(shí)時(shí)監(jiān)控超過10000臺(tái)服務(wù)器的系統(tǒng)容量指標(biāo),與傳統(tǒng)工具保持并行監(jiān)控、交叉驗(yàn)證,提供7*24實(shí)時(shí)監(jiān)控服務(wù),運(yùn)行狀態(tài)穩(wěn)定可靠。閾值計(jì)算引擎建設(shè)收益主要包括以下幾點(diǎn):
監(jiān)控實(shí)施效率提升:在上百臺(tái)設(shè)備批量新增、調(diào)整監(jiān)控策略的變更場(chǎng)景下,相較于傳統(tǒng)監(jiān)控工具需要逐臺(tái)操作監(jiān)控服務(wù)而言,閾值計(jì)算引擎采用配置集中化管理,并為批量設(shè)備增加獨(dú)立的管理標(biāo)簽,通過配置管理中心把標(biāo)簽與監(jiān)控策略進(jìn)行綁定,即可完成策略調(diào)整,達(dá)到簡(jiǎn)化監(jiān)控變更實(shí)施工藝流程、提升實(shí)施效率的效果。
告警延遲降低:閾值計(jì)算引擎底層基于流處理技術(shù),是實(shí)時(shí)數(shù)據(jù)驅(qū)動(dòng)的工作模式,可以將數(shù)據(jù)處理時(shí)效達(dá)到秒級(jí),有效降低告警延遲。
個(gè)性化監(jiān)控水平提升:閾值計(jì)算引擎可以通過非標(biāo)數(shù)據(jù)規(guī)范化模塊使用戶在線交互式的完成數(shù)據(jù)標(biāo)準(zhǔn)化處理,同時(shí)拓展監(jiān)控策略多維度屬性信息來豐富策略使用場(chǎng)景,有效支持個(gè)性化監(jiān)控需求。
誤報(bào)率降低:完成傳統(tǒng)監(jiān)控工具部分功能模塊替換和升級(jí),消除因產(chǎn)品缺陷導(dǎo)致的告警誤報(bào)。
后續(xù)優(yōu)化和擴(kuò)展
接下來,閾值計(jì)算引擎將在以下幾個(gè)方面進(jìn)一步優(yōu)化和擴(kuò)展:
自服務(wù)能力建設(shè):建設(shè)閾值計(jì)算引擎的自服務(wù)能力,進(jìn)一步優(yōu)化監(jiān)控變更實(shí)施自動(dòng)化率,提升運(yùn)維效率。
監(jiān)控預(yù)警和動(dòng)態(tài)閾值:探索基于算法的監(jiān)控預(yù)警和動(dòng)態(tài)閾值調(diào)整能力,適應(yīng)業(yè)務(wù)波動(dòng)和系統(tǒng)負(fù)載變化,更早發(fā)現(xiàn)系統(tǒng)異常。
拓展覆蓋領(lǐng)域:在逐步推動(dòng)云下環(huán)境監(jiān)控場(chǎng)景全覆蓋基礎(chǔ)上,盡快開展云上環(huán)境監(jiān)控對(duì)接,實(shí)現(xiàn)閾值計(jì)算引擎對(duì)生產(chǎn)環(huán)境的統(tǒng)一監(jiān)控納管。
持續(xù)建設(shè)非標(biāo)場(chǎng)景監(jiān)控能力:當(dāng)前金融科技數(shù)字化轉(zhuǎn)型如火如荼,新技術(shù)、新場(chǎng)景、新架構(gòu)日新月異,傳統(tǒng)監(jiān)控工具面臨諸多挑戰(zhàn),快速滿足非標(biāo)場(chǎng)景監(jiān)控需求的能力需要更加完善和成熟。
基于大數(shù)據(jù)技術(shù)的閾值計(jì)算引擎為實(shí)時(shí)監(jiān)控提供了一種全新的解決方案。它解決了G行傳統(tǒng)監(jiān)控工具的痛點(diǎn),有效提升監(jiān)控實(shí)時(shí)性、準(zhǔn)確性和效率。隨著技術(shù)的不斷演進(jìn),閾值計(jì)算引擎將在G行IT系統(tǒng)的運(yùn)維中發(fā)揮更加重要的作用,為業(yè)務(wù)的穩(wěn)定運(yùn)行保駕護(hù)航。
圖片
作者:申晨
目前是一名監(jiān)控管理員,負(fù)責(zé)統(tǒng)一監(jiān)控管理平臺(tái)系統(tǒng)建設(shè)與運(yùn)行維護(hù)工作,在程序設(shè)計(jì)與數(shù)據(jù)分析領(lǐng)域有較為豐富的工作經(jīng)驗(yàn),歡迎交流。
圖片
編輯:鄭偉曼
目前從事監(jiān)控運(yùn)營(yíng)管理工作,主要負(fù)責(zé)應(yīng)用監(jiān)控指標(biāo)標(biāo)準(zhǔn)化和監(jiān)控未達(dá)事件管理相關(guān)工作,最近愛好健身和烘焙,希望與大家積極交流!