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