時間:2022年04月25日 分類:電子論文 次數:
摘要:本文分析了建設業務綜合監控平臺中所應用的相關開源產品和技術,并結合實際介紹了江西廣電網絡業務綜合監控平臺的建設方案和實踐情況。
關鍵詞:業務綜合監控 Zabbix Python
1 引言
近年來,隨著廣電網絡行業的業務 IT 化、互聯網化及媒體融合的不斷深入,業務系統數量迅速增加,業務與應用也愈發復雜。但各業務系統缺乏統一的、直觀的監控手段,傳統的網絡監控平臺側重于系統網絡和 IT 資源的運行狀態檢查,無法反映業務實際使用情況和用戶體驗,也很難結合網絡和業務對性能、故障等問題進行分析,增加了運維難度。
業務監控不僅能幫助運維人員掌握系統運行狀態,及時發現且處理故障,優化調度資源,而且能夠為業務人員提供相關業務指標,給產品設計、市場運營提供參考。因此,需要建設一個對各業務系統業務指標及網絡、IT 資源運行狀態進行統一監控,能實現監控、報警、分析、預測及展現,達到提高運維效率、促進業務發展目標的業務綜合監控平臺。
2 建設思路
網絡監控系統由于標準化程度高已發展得非常成熟,各類產品基本都能夠實現網絡和 IT 資源的全面監控,具備報警、問題展現等通用功能。業務監控則不同,需要針對不同的業務進行單獨分析與個性化的開發,才能實現各系統業務指標的監控。業務監控主要難點在于對業務和業務系統的分析,需要找出關鍵點,再通過定制開發進行監測。
因此,在網絡監控系統基礎上,對業務監控定制開發建設業務綜合監控平臺是一種高效的業務分析方式。網絡監控系統有很多商業產品和開源產品可供選擇,各有優劣,選擇開源產品主要是因為其具備商業產品類似能力,能夠滿足項目需求且開放性更好,適合擴展開發,成本低。
3 設計與實踐
3.1 系統架構
經過了解與比較,我們選擇在開源 Zabbix 基礎上構建業務綜合監控平臺。Zabbix 提供了豐富和強大的網絡及設備監控能力,以及故障通知、問題和事件展現等功能,擴展集成方便靈活。基于 Zabbix 搭建平臺可以最大化利用監控系統的功能,更便于構建業務監控流程和業務指標分析。業務監控是綜合分析監控過程,既存在業務狀態與網絡、設備運行情況聯動分析,也存在業務環節步驟間及不同業務系統間關聯分析,所以需要一個跨平臺、擴展性強、易編寫和維護的開發工具。我們使用 Python 開發實現業務層監控并與 Zabbix 集成。
3.2 部署方式
部署一套涵蓋企業所有網絡、設備及業務的綜合監控平臺,需要解決兩個問題:一是網絡環境復雜,既要考慮網絡的連通性又要考慮網絡的安全性;二是設備數量眾多,要考慮監控性能及實時性。通過 Server–Proxy方式進行分布式部署,將代理服務部署 在 被 監 控 系 統 內 部, 收 集 性 能 和可用性數據后,集中上報至 Server,Porxy 僅需一條 TCP 連接到 Server, 所以防火墻上僅僅需要加上一條規則即可,不會破壞原網絡環境和安全設定,同時緩解了監控大量設備對 Server 端的壓力。
Proxy 與設備、系統位于同一環境,可以根據設備特點和被支持的協議來選擇監控方式;Zabbix 支持各種遠程監控服務的協議無代理監控,如網絡監控、自定義腳本監控、SNMP(v1/2c/3) 輪 詢 和 Trapping、Java 應用 程 序 監 控、IPMI、SSH/Telnet 檢查、ODBC 監控、ICMP 和 TCP 檢查、HTTP 端 點 采 集、Modbus 和 MQTT 協議 等; 還 支 持 主 流 操 作 系 統 部 署 代理 監 控, 如 在 Linux、Solaris、AIX、Windows 等系統部署 Agent。
3.3 監控方案
Zabbix 對網絡、設備和操作系統的監控是通過遠程監控服務方式或代理程序從網絡設備、云服務、容器、虛擬機、操作系統、日志文件、常見服務等采集數據。對非業務類的網絡和 IT 監控,我們盡可能利用 Zabbix 已有的監控模板來配置監控方案;對業務類的監控主要根據各業務系統的業務流程進行分析,通過自定義開發采集監控節點指標數據,并通過接口提交至 Zabbix 配置自定義監控項進行監控。目前,我們已經完成 BOSS、AAA系統業務監控方案并納入業務綜合監控平臺。下面以 AAA 系統監控方案來舉例說明。
在梳理完網絡拓撲、設備資源及配置后,添加新的主機群組作為一個管理單元(如 AAA 系統主機群),在該群組內創建主機并選擇對應的監控模板將需要監控的設備添加至監控系統,完成后便具備了非業務類網絡和設備的監控,包括網絡連通性、端口流量、CPU 負載、內存使用、磁盤空間使用等常用指標。AAA 系統的業務監控主要監控其認證服務可用性及性能,配置以下兩個監控點。
(1)客戶端模擬認證請求,采集認證結果。客戶端模擬認證請求使用Python 第三方 Pyrad 編寫代碼模擬認證報文并解析結果,實現起來比較復雜 , 但是能非常靈活地進行各種認證行為模擬。由于我們只需驗證認證可用性,可以使用另一種更簡單的方式 ,即通過 Zabbix Agent 配置自定義參數調用 Linux 下的 Radclient 工具來驗證并獲取結果。安裝配置好 Zabbix Agent和 Radclient 工具包后,在 Agent 配置文件中再進行相應的配置。
(2)采集 AAA 系統數據庫中單位時間認證請求 / 成功數。編寫 Python腳本從數據庫獲取單位時間認證請求 /成功數并寫入文件,將該腳本設置為定時任務刷新數據。監控項目配置成功后,平臺將按一定周期采集監控項數據并保存,通過配置圖表、儀表盤、網絡拓撲圖等可視化組件展現監控數據。此外,監控采集的數據還可用于生成監控報表,進行歷史數據故障和性能分析。
3.4 告警方案告警方案
對采集的數據進行分析、判斷并進行處置。在 Zabbix 中通過設置觸發器進行采集數據分析,還可以根據實際需要創建各種不同的觸發器來感知所關注的設備、系統或業務的運行狀態,每個觸發器可以從多個維度選擇需要監控的項數進行算術或邏輯運算得到一個觸發器的最終狀態(問題態或恢復態)。
以上述 AAA 系統監控方案為例,需要配置一個認證服務狀態的觸發器,選取模擬認證和單位時間認證成功數這 2 個監控項目,以最近 3 次模擬認證都失敗或單位時間認證成功數小于1000 觸 發 問 題, 以 最 近 3 次 模 擬 認證都成功或單位時間認證成功數大于1000 觸發恢復(閾值選擇需要參考歷史數據),需配置問題表現形式、事件成功迭代和恢復表達式 3 個部分。觸發器狀態發生變化會觸發所關聯的處置動作,動作既可以是各種形式的通知也可以是所配置的可執行程序。
一個觸發器可以配置多個處置動作,一般情況至少需要一個通知動作。Zabbix 還預置了一些基礎的通知媒介模板如郵件等,實現接收告警通知的時效性和便利性。為了實現企業微信群發消息和手機短信通知功能,我們進行了一些開發,根據告警信息緊急程度選擇不同媒介方式,按設備、系統歸屬發送指定維護人員,后續還將實現自動語音呼入通知,完全實現無值守監控。命令動作可在觸發器狀態觸發后自動執行修正腳本或命令來嘗試并解決問題,如檢查到服務異常自動執行服務重啟、進行日志收集等。
4 總結
通過探索和實踐,江西廣電網絡利用 Zabbix 和 Python 等開源產品和技術搭建了業務綜合監控平臺,提高了業務監控能力,提升了綜合監控水平,解決了運維支撐和業務保障中業務監控盲點和業務故障定位難等問題,同時也為企業探索自研自建平臺提供了新思路。
作者:梁斌 中國廣電江西網絡有限公司