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