Prometheus最香?大型銀行用Zabbix做監(jiān)控也杠杠的!
引言
隨著G行業(yè)務(wù)的高速發(fā)展,業(yè)務(wù)系統(tǒng)的規(guī)模日益增長(zhǎng),監(jiān)控管理的成本也隨之升高,現(xiàn)有的監(jiān)控手段已無(wú)法很好的滿(mǎn)足監(jiān)控管理的需求。因此G行啟動(dòng)了ZABBIX開(kāi)源監(jiān)控項(xiàng)目,通過(guò)該項(xiàng)目的建設(shè)工作,在節(jié)約監(jiān)控管理成本的同時(shí),也完善了國(guó)產(chǎn)軟件和開(kāi)源軟件的監(jiān)控手段,提升了G行的自動(dòng)化監(jiān)控能力和自主可控能力。
一、ZABBIX開(kāi)源監(jiān)控建設(shè)背景
不少行業(yè)和單位都使用商業(yè)監(jiān)控軟件實(shí)現(xiàn)本單位的信息系統(tǒng)的日常運(yùn)行監(jiān)控,但商業(yè)監(jiān)控軟件在管理上存在較多痛點(diǎn)。
圖1 監(jiān)控管理的痛點(diǎn)
為了解決傳統(tǒng)監(jiān)控管理在日常運(yùn)維中存在的痛點(diǎn)和問(wèn)題,G行通過(guò)對(duì)數(shù)款開(kāi)源監(jiān)控軟件的監(jiān)控能力、靈活性、兼容性以及易用性等多方面進(jìn)行對(duì)比選型,最終選擇ZABBIX作為行內(nèi)今后主要的監(jiān)控工具。ZABBIX是一款功能強(qiáng)大的開(kāi)源監(jiān)控軟件,它操作簡(jiǎn)單,適用于多種平臺(tái),能夠支持虛擬化、云環(huán)境等多種場(chǎng)景的監(jiān)控,且提供開(kāi)放的、通用的API接口,在各個(gè)行業(yè)都有廣泛的使用。
- 支持多平臺(tái)的企業(yè)級(jí)分布式開(kāi)源監(jiān)控;
- 可實(shí)現(xiàn)復(fù)雜多條件告警;
- 提供多種API接口,支持二次開(kāi)發(fā);
- 自動(dòng)發(fā)現(xiàn)和低級(jí)別發(fā)現(xiàn)功能;
- 有豐富的社區(qū)資源支持。
圖2 ZABBIX支持多種監(jiān)控場(chǎng)景
二、G行ZABBIX開(kāi)源監(jiān)控項(xiàng)目
經(jīng)過(guò)前期的調(diào)研選型,確定選用ZABBIX作為行內(nèi)主要監(jiān)控工具,并以開(kāi)源軟件監(jiān)控、開(kāi)發(fā)測(cè)試環(huán)境監(jiān)控為起點(diǎn),逐步推進(jìn)到總、分行生產(chǎn)環(huán)境所有主機(jī)、所有監(jiān)控指標(biāo)全部覆蓋,平穩(wěn)替換行內(nèi)傳統(tǒng)商業(yè)監(jiān)控軟件,并且在其基礎(chǔ)上逐步實(shí)現(xiàn)平臺(tái)化、自動(dòng)化的監(jiān)控統(tǒng)一管理。下面分別從監(jiān)控部署架構(gòu)、監(jiān)控采集方法、監(jiān)控告警策略和監(jiān)控自動(dòng)化四個(gè)方面,介紹G行在ZABBIX開(kāi)源監(jiān)控的實(shí)踐歷程。
1、監(jiān)控部署架構(gòu)
根據(jù)總、分行以及生產(chǎn)、測(cè)試劃分使用多套ZABBIX軟件,并采用Server-Proxy-Agent的分布式監(jiān)控架構(gòu),有效地降低Server端的采集壓力;同時(shí),根據(jù)不同環(huán)境的特性采用不同的監(jiān)控方案:
圖3 總分行生產(chǎn)、測(cè)試環(huán)境監(jiān)控架構(gòu)
1)開(kāi)發(fā)測(cè)試環(huán)境
監(jiān)控策略的開(kāi)發(fā)測(cè)試與驗(yàn)證環(huán)境,同時(shí)結(jié)合開(kāi)發(fā)測(cè)試環(huán)境的特性(被監(jiān)控主機(jī)的生命周期較短),采用自動(dòng)發(fā)現(xiàn)+自動(dòng)注冊(cè)的監(jiān)控方式進(jìn)行自動(dòng)監(jiān)控。
2)總行生產(chǎn)
按監(jiān)控對(duì)象類(lèi)型進(jìn)行分組,每組Proxy承擔(dān)不同的監(jiān)控職責(zé),實(shí)現(xiàn)監(jiān)控壓力的平衡,并準(zhǔn)確定位不同組件的作用范圍。
3)分行生產(chǎn)
- ZABBIX Server部署在總行,集中化統(tǒng)一管理。
- 按地域劃分,每家分行部署獨(dú)立Proxy,Proxy各模塊容器化部署,靈活調(diào)度、易于遷移和擴(kuò)展。
- Proxy與Server之間數(shù)據(jù)采用壓縮模式、加密傳輸,保障網(wǎng)絡(luò)無(wú)壓力和數(shù)據(jù)安全。
2、全面支持開(kāi)源/信創(chuàng)
依賴(lài)ZABBIX開(kāi)源屬性,全面支持行內(nèi)開(kāi)源軟件及信創(chuàng)產(chǎn)品的監(jiān)控納管,推進(jìn)監(jiān)控自主可控,具體包括:
- 操作系統(tǒng):中標(biāo)麒麟LINUX,銀河麒麟ARM等;
- 數(shù)據(jù)庫(kù):DAMENG,MySQL,KINGBASE等;
- 中間件:寶蘭德,NGINX,ROCKETMQ等;
- 大數(shù)據(jù):KAFKA,SPARK,ES等。
3、監(jiān)控采集方法
ZABBIX支持多種采集方式,根據(jù)監(jiān)控項(xiàng)的不同自由定制:
- 使用Agent或SSH、WMI監(jiān)控服務(wù)器軟件運(yùn)行情況。
- 使用DBforBix插件、JDBC協(xié)議或Agent監(jiān)控?cái)?shù)據(jù)庫(kù)。
- 使用JMX(java管理擴(kuò)展)、T3協(xié)議監(jiān)控java類(lèi)服務(wù)。
- 使用ping及web檢測(cè)監(jiān)控WEB應(yīng)用。
- 使用log日志主動(dòng)監(jiān)控及時(shí)發(fā)現(xiàn)應(yīng)用的異常。
- 使用system.run調(diào)度現(xiàn)有監(jiān)控腳本與工具,保證現(xiàn)有監(jiān)控工具的順利切換。
- 使用相關(guān)項(xiàng)與預(yù)處理功能對(duì)監(jiān)控結(jié)果解析解析拆分使用,實(shí)現(xiàn)一次采集多次使用,提高監(jiān)控效率,降低被監(jiān)控端性能壓力。
圖4 異構(gòu)對(duì)象全面監(jiān)控
4、監(jiān)控告警策略
ZABBIX支持通過(guò)郵件、短信、微信、接口等方式發(fā)送到指定人,行通過(guò)調(diào)用ZABBIX API,讀取告警數(shù)據(jù),對(duì)告警數(shù)據(jù)進(jìn)行規(guī)則解析、豐富處理和維護(hù)期處理,告警數(shù)據(jù)推統(tǒng)一監(jiān)控管理平臺(tái)后進(jìn)行集中展示和告警。
5、監(jiān)控自動(dòng)化
G行數(shù)據(jù)中心的管理已實(shí)現(xiàn)標(biāo)準(zhǔn)化,標(biāo)準(zhǔn)化是實(shí)現(xiàn)監(jiān)控自動(dòng)化的前提。
- ZABBIX Agent通過(guò)母帶、SMDB下發(fā)或腳本一鍵式自動(dòng)部署。
- Agent開(kāi)機(jī)自啟動(dòng)、狀態(tài)檢測(cè),支持遠(yuǎn)程重啟及停用。
- LLD自動(dòng)發(fā)現(xiàn),可自動(dòng)發(fā)現(xiàn)系統(tǒng)分區(qū)、網(wǎng)卡,還可自定義發(fā)現(xiàn)主機(jī)上的數(shù)據(jù)庫(kù)或中間件多實(shí)例。
- 自動(dòng)注冊(cè),自動(dòng)監(jiān)控新設(shè)備、創(chuàng)建主機(jī)、關(guān)聯(lián)模板、開(kāi)啟監(jiān)控。
- 通過(guò)API實(shí)現(xiàn)批量添加監(jiān)控主機(jī),關(guān)聯(lián)監(jiān)控模版。
- 統(tǒng)一的監(jiān)控模版與組合告警觸發(fā)器相結(jié)合,滿(mǎn)足多種監(jiān)控場(chǎng)景。
- 簡(jiǎn)單故障自愈功能,可對(duì)報(bào)警進(jìn)行分類(lèi)、分級(jí),結(jié)合腳本對(duì)一些低級(jí)本的告警固化處理方法,滿(mǎn)足條件即可自動(dòng)進(jìn)行相應(yīng)操作(如指定文件清理、服務(wù)拉起等),達(dá)到快速恢復(fù)故障,保障系統(tǒng)可用率。
三、ZABBIX開(kāi)源監(jiān)控階段性成果
經(jīng)過(guò)四期持續(xù)的建設(shè),G行基本完成對(duì)商業(yè)軟件的監(jiān)控覆蓋,在開(kāi)源軟件監(jiān)控能力、監(jiān)控自服務(wù)能力等各方面都取得長(zhǎng)足的進(jìn)展,豐富并完善監(jiān)控手段,并在總、分行生產(chǎn)系統(tǒng)監(jiān)控管理中發(fā)揮重要作用。ZABBIX已完成開(kāi)發(fā)測(cè)試環(huán)境、總行、39家分行監(jiān)控全覆蓋,使用ZABBIX系統(tǒng)對(duì)生產(chǎn)環(huán)境HPUX系統(tǒng)進(jìn)行細(xì)粒度監(jiān)控,實(shí)現(xiàn)對(duì)商業(yè)監(jiān)控軟件的能力替代,同時(shí)完成39家分行的全面覆蓋,正在進(jìn)行商業(yè)監(jiān)控軟件的全面替換。
圖5 ZABBIX階段性建設(shè)成果
四、總結(jié)與展望
數(shù)字化銀行離不開(kāi)強(qiáng)有力的科技支撐。我們將不斷緊跟新技術(shù)發(fā)展步伐,從基礎(chǔ)設(shè)施、技術(shù)架構(gòu)、新技術(shù)應(yīng)用等多領(lǐng)域夯實(shí)科技基礎(chǔ)支撐能力,為眾多新技術(shù)、新架構(gòu)的引入,提供全方位的監(jiān)控服務(wù)。
- 監(jiān)控思維的轉(zhuǎn)變
數(shù)字化思維需要運(yùn)維人員建立數(shù)據(jù)意識(shí),以業(yè)務(wù)價(jià)值為導(dǎo)向,以數(shù)據(jù)服務(wù)為目標(biāo),實(shí)現(xiàn)監(jiān)控?cái)?shù)字化轉(zhuǎn)型。
- 監(jiān)控智能化
依賴(lài)于大數(shù)據(jù)技術(shù),通過(guò)海量數(shù)據(jù)和機(jī)器算法,實(shí)現(xiàn)告警根因分析、動(dòng)態(tài)基線和自動(dòng)預(yù)測(cè)等智能化場(chǎng)景的監(jiān)控應(yīng)用。
- 技術(shù)創(chuàng)新
保持技術(shù)創(chuàng)新能力,更多新技術(shù)、新架構(gòu)的使用,幫助我們更方便、高效地應(yīng)對(duì)數(shù)字化轉(zhuǎn)型中遇到的各種問(wèn)題。
- 監(jiān)控管理+服務(wù)
強(qiáng)化監(jiān)控標(biāo)準(zhǔn)化的管控能力,以監(jiān)控標(biāo)準(zhǔn)化作為基準(zhǔn),進(jìn)一步優(yōu)化自服務(wù)、自助式的運(yùn)維監(jiān)控模式,提升監(jiān)控服務(wù)的覆蓋度。