代志勇 徐昫 江蘇省廣播電視總臺(tái)廣播技術(shù)部
隨著江蘇廣播臺(tái)內(nèi)業(yè)務(wù)系統(tǒng)的不斷完善,尚缺少統(tǒng)一的集中監(jiān)控管理平臺(tái)。尤其近年來(lái)隨著十九大的召開(kāi)、網(wǎng)絡(luò)安全法的頒布,都對(duì)江蘇廣播的網(wǎng)絡(luò)安全提出了更高的要求,所以需要加大網(wǎng)絡(luò)安全監(jiān)控和防范力度,強(qiáng)化安全防范措施,健全應(yīng)急機(jī)制,加強(qiáng)實(shí)時(shí)監(jiān)測(cè),嚴(yán)防系統(tǒng)攻擊行為,確保及時(shí)發(fā)現(xiàn)并有效處置網(wǎng)絡(luò)安全事件。
另外,根據(jù)國(guó)內(nèi)外行業(yè)動(dòng)態(tài)及發(fā)展趨勢(shì),以及江蘇廣播融合媒體發(fā)展的需求,江蘇廣播的安全技術(shù)體系必須能夠支持融媒體業(yè)務(wù)背景下各第三方播出系統(tǒng)的接入,支持虛擬化私有云平臺(tái)等等,所以亟需統(tǒng)一高效的集中管理平臺(tái)。
為保證我臺(tái)系統(tǒng)的穩(wěn)定運(yùn)行,需要實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)設(shè)備、應(yīng)用和多種操作系統(tǒng)的服務(wù)器進(jìn)行7×24小時(shí)監(jiān)測(cè),降低網(wǎng)絡(luò)管理工作的復(fù)雜性,提高網(wǎng)絡(luò)管理的工作效率。項(xiàng)目建設(shè)中需要實(shí)現(xiàn)以下目標(biāo):(1)建設(shè)全面的監(jiān)控管理平臺(tái),消除監(jiān)控死角。
江蘇廣播信息技術(shù)中心的各個(gè)系統(tǒng)采用多個(gè)廠家的網(wǎng)絡(luò)設(shè)備、服務(wù)器、中間件、數(shù)據(jù)庫(kù)、存儲(chǔ)設(shè)備、虛擬化、硬件監(jiān)控,因此要通過(guò)建設(shè)全面的監(jiān)控管理平臺(tái),將目前各個(gè)業(yè)務(wù)系統(tǒng)中的各種設(shè)備、軟件、業(yè)務(wù)應(yīng)用均能納入到監(jiān)控平臺(tái)中來(lái)。消除管理對(duì)象之間的差別,消除管理軟件的差別,對(duì)各種不同數(shù)據(jù)來(lái)源統(tǒng)一處理、統(tǒng)一展現(xiàn)、統(tǒng)一用戶登錄、統(tǒng)一權(quán)限控制。
(2)建設(shè)看得見(jiàn)的IT運(yùn)維模式,網(wǎng)絡(luò)運(yùn)行透明化。
建立全景拓?fù)涞恼故灸J?,將用戶的業(yè)務(wù)視圖、網(wǎng)絡(luò)視圖、應(yīng)用視圖、虛擬化視圖和存儲(chǔ)視圖融合在一起完整展現(xiàn),全局掌握IT系統(tǒng)整體的運(yùn)行情況。(3)建設(shè)開(kāi)放、具有良好擴(kuò)展性的集中平臺(tái)。要具有很好的開(kāi)放性,具備跟相關(guān)系統(tǒng)的集成能力。不僅可以滿足現(xiàn)階段江蘇廣播系統(tǒng)的管理需要,還可以添加監(jiān)控功能,滿足業(yè)務(wù)的發(fā)展需求。
集中監(jiān)控平臺(tái)作為統(tǒng)一的管理平臺(tái),要整合OS系統(tǒng)監(jiān)控、硬件監(jiān)控、應(yīng)用監(jiān)控、網(wǎng)絡(luò)監(jiān)控、存儲(chǔ)架構(gòu)、虛擬化架構(gòu)、可視化監(jiān)控(VM)、工作流、ITIL式報(bào)表和門(mén)戶等。對(duì)服務(wù)器硬件、網(wǎng)絡(luò)設(shè)備、應(yīng)用服務(wù),以及機(jī)房動(dòng)力環(huán)境進(jìn)行集中監(jiān)控。按以下設(shè)計(jì)方案進(jìn)行建設(shè):
(1)模塊化結(jié)構(gòu)和擴(kuò)展性:系統(tǒng)具備優(yōu)秀的功能擴(kuò)展性,可以在需要時(shí)增加管理模塊,擴(kuò)展管理節(jié)點(diǎn)。(2)靈活的權(quán)限控制:采用分級(jí)、分權(quán)的用戶管理,支持設(shè)置用戶角色和用戶組。不同用戶擁有不同的頁(yè)面權(quán)限和資源權(quán)限。(3)B/S架構(gòu),提供友好的用戶界面:系統(tǒng)全部為B/S架構(gòu),界面動(dòng)態(tài)美觀,維護(hù)簡(jiǎn)單,降低管理門(mén)檻。另外管理平臺(tái)還預(yù)留擴(kuò)展接口,提供豐富的API開(kāi)放接口,方便實(shí)現(xiàn)與第三方管理產(chǎn)品的集成和整合,滿足開(kāi)發(fā)和與其它系統(tǒng)集成的需求。
平臺(tái)采用四層技術(shù)架構(gòu)。(1)被監(jiān)控層包括主機(jī)、網(wǎng)絡(luò)設(shè)備、存儲(chǔ)、數(shù)據(jù)庫(kù)、虛擬化等等;(2)綜合監(jiān)控管理平臺(tái)通過(guò)4大引擎將基礎(chǔ)管理模塊、業(yè)務(wù)服務(wù)管理、業(yè)務(wù)可持續(xù)性管理、容量管理、可用性管理有效整合。并提供各類專業(yè)工具,具備整合第三方監(jiān)控軟件的能力;(3)運(yùn)維管理層是基于ITIL的最佳實(shí)踐經(jīng)驗(yàn), 幫助平臺(tái)提高運(yùn)維管理質(zhì)量與效率;(4)統(tǒng)一展現(xiàn)層通過(guò)全景拓?fù)湔宫F(xiàn)網(wǎng)絡(luò)拓?fù)洹⑻摂M化架構(gòu)、SAN存儲(chǔ)架構(gòu)、主機(jī)狀態(tài)數(shù)據(jù),統(tǒng)一展現(xiàn)運(yùn)維數(shù)據(jù)。系統(tǒng)架構(gòu)如圖1所示。
圖1 系統(tǒng)架構(gòu)
平臺(tái)的部署采用分布式的方式,可以將管理功能靠近被管資源,減少管理服務(wù)器通過(guò)廣域網(wǎng)對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行輪詢的檢查,防止由于管理給網(wǎng)絡(luò)造成過(guò)多的負(fù)荷,保證正常應(yīng)用的運(yùn)行。功能的模塊化結(jié)構(gòu),保證了管理平臺(tái)本身具有良好的功能擴(kuò)展性。分布式部屬架構(gòu),保證了平臺(tái)良好的擴(kuò)展性。
圖2 平臺(tái)的擴(kuò)展模式
自主研發(fā)接口程序,實(shí)現(xiàn)不同動(dòng)環(huán)監(jiān)控系統(tǒng)的異構(gòu)對(duì)接。我臺(tái)的綜合業(yè)務(wù)網(wǎng)絡(luò)機(jī)房、播出網(wǎng)絡(luò)機(jī)房的動(dòng)環(huán)監(jiān)控系統(tǒng),以及UPS的監(jiān)控均屬不同廠家,使用不同通信協(xié)議的監(jiān)控系統(tǒng),并未對(duì)外暴露采集器的數(shù)據(jù)接口。通過(guò)自主開(kāi)發(fā)接口程序,實(shí)現(xiàn)將采集的動(dòng)環(huán)數(shù)據(jù)共享給集中監(jiān)控平臺(tái)。如圖3所示,串口服務(wù)器將傳感器采集的數(shù)據(jù)通過(guò)TCP形式送出,接口程序監(jiān)聽(tīng)串口服務(wù)器的端口,每30秒讀取一次數(shù)據(jù)串。集中監(jiān)控平臺(tái)的WEB客戶端每一分鐘讀取一次數(shù)據(jù)庫(kù)中的最新數(shù)據(jù),寫(xiě)入集中監(jiān)控平臺(tái)的數(shù)據(jù)庫(kù),進(jìn)行統(tǒng)一的監(jiān)控管理。
圖3 網(wǎng)絡(luò)信息機(jī)房動(dòng)環(huán)監(jiān)控接口程序
以下是接口程序的代碼實(shí)例:
# coding: utf-8
import socket, time
import pymssql
import _mssql
import uuid
import decimal
HOST = '********' # 服務(wù)器的ip
PORT = ** # 需要連接的服務(wù)器的端口
valueL = 400
valueH = 2000
humidityL = 0
humidityH = 100
voltageL = 0
voltageH = 400
temperatureL = -20
temperatureH = 60
class MSSQL:
def __init__(self, host, user, pwd, db):
self.host = host
self.user = user
self.pwd = pwd
self.db = db
def __GetConnect(self):
if not self.db:
raise(NameError, u"沒(méi)有設(shè)置數(shù)據(jù)庫(kù)信息")
self.conn = pymssql.connect(host=self.
host,user=self.user,password=self.pwd,database=self.db,charset="utf8")
cur = self.conn.cursor()
if not cur:
raise(NameError, u"連接數(shù)據(jù)庫(kù)失敗")
else:
return cur
def ExecQuery(self, sql):
cur = self.__GetConnect()
cur.execute(sql)
resList = cur.fetchall()
#查詢完畢后必須關(guān)閉連接
self.conn.close()
return resList
def ExecNonQuery(self, sql):
cur = self.__GetConnect()
cur.execute(sql)
self.conn.commit()
self.conn.close()
def sql(value):
insert = "insert into [dbo].[monitor] values(%(t)s,%(v1)s,%(v2)s,%(hmd)s,%(tmp)s)" % value
#print insert
try:
ms = MSSQL(host="********", user="**",pwd="******", db="******")
#寫(xiě)入數(shù)據(jù)庫(kù)
ms.ExecNonQuery(insert)
print(u"數(shù)據(jù)庫(kù)寫(xiě)入成功!")
except Exception:
print(u"數(shù)據(jù)庫(kù)寫(xiě)入失敗!")
def getdata(code):
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
#s.sendall(code)
except socket.error:
print(u"串口服務(wù)器連接失??!")
else:
data = s.recv(1024)
t = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print t, u'接收到 :', repr(data)
s.close()
return data
def formate(data):
data_split = data.split("=+")
if len(data_split) != 5:
print(u"接收到異常數(shù)據(jù)!")
print(u"異常數(shù)據(jù)為:" + data)
else:
#print data_split
voltage1 = (float(data_split[1][:4]) - valueL) /(valueH - valueL) * (voltageH - voltageL) + voltageL
voltage2 = (float(data_split[2][:4]) - valueL) /(valueH - valueL) * (voltageH - voltageL) + voltageL
humidity = (float(data_split[3][:4]) - valueL)/ (valueH - valueL) * (humidityH - humidityL) +humidityL
temperature = (float(data_split[4][:4]) - valueL) /(valueH - valueL) * (temperatureH - temperatureL) +temperature
#電壓、濕度和溫度取值
t = time.time()
value = {'t': t, 'v1': voltage1, 'v2': voltage2, 'hmd':humidity, 'tmp': temperature}
return value
while(True):
code = '#01960104oo' + ' '
data = getdata(code)
value = formate(data)
if value:
sql(value)
time.sleep(30)
為提升全臺(tái)網(wǎng)絡(luò)信息系統(tǒng)的運(yùn)維管理手段,自行搭建網(wǎng)絡(luò)監(jiān)控室,將集中監(jiān)控平臺(tái)的內(nèi)容展示到大屏上面。實(shí)現(xiàn)不間斷監(jiān)測(cè)預(yù)警,快速響應(yīng)網(wǎng)絡(luò)安全警告,確保完成各項(xiàng)網(wǎng)絡(luò)安播保障任務(wù)。
監(jiān)控室的展示大屏由六塊50寸的液晶電視構(gòu)成。集中監(jiān)控展示系統(tǒng)主要展示制播網(wǎng)集中監(jiān)控和綜合業(yè)務(wù)網(wǎng)集中監(jiān)控,方便運(yùn)維管理員及時(shí)發(fā)現(xiàn)問(wèn)題、解決問(wèn)題。對(duì)于兩大業(yè)務(wù)系統(tǒng)的聲光告警,制作相應(yīng)的報(bào)警音樂(lè),觸發(fā)時(shí)根據(jù)聲音提示,管理人員可以迅速鎖定對(duì)應(yīng)系統(tǒng)檢查處理。監(jiān)控平臺(tái)不僅可在系統(tǒng)產(chǎn)生告警事件時(shí)以郵件、短信、客戶端軟件等方式通知管理員,還可進(jìn)行報(bào)警應(yīng)急響應(yīng),并支持聯(lián)動(dòng)策略。大屏展示設(shè)計(jì)方案見(jiàn)圖4。
江蘇廣播集中監(jiān)控平臺(tái)提供眾多功能,能夠解決我臺(tái)在IT支持與管理過(guò)程中的一些難題,提高工作水平和服務(wù)效率。平臺(tái)整合了OS系統(tǒng)監(jiān)控、硬件監(jiān)控、應(yīng)用監(jiān)控、網(wǎng)絡(luò)監(jiān)控、存儲(chǔ)架構(gòu)、虛擬化架構(gòu)、可視化監(jiān)控(VM)、工作流等多種技術(shù)手段。
集中監(jiān)控平臺(tái)的全景拓?fù)淠軌驅(qū)I(yè)務(wù)視圖、網(wǎng)絡(luò)視圖、應(yīng)用視圖、虛擬化視圖和存儲(chǔ)視圖融合在一起,完整展現(xiàn)統(tǒng)一的IT架構(gòu),全局掌握系統(tǒng)整體的運(yùn)行情況。管理人員通過(guò)全景拓?fù)?,直接獲取的運(yùn)維信息將會(huì)成倍增長(zhǎng),運(yùn)維體驗(yàn)非常直觀,提升了我臺(tái)運(yùn)維的效率。
集中監(jiān)控平臺(tái)能夠快速發(fā)現(xiàn)臺(tái)內(nèi)二層和三層的網(wǎng)絡(luò)設(shè)備,并根據(jù)發(fā)現(xiàn)設(shè)備之間的關(guān)系自動(dòng)生成全局的二層或三層的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖。自動(dòng)發(fā)現(xiàn)時(shí)使用ICMP、SNMP(V1/V2/V3)、HSRP等網(wǎng)絡(luò)協(xié)議和技術(shù)。網(wǎng)絡(luò)管理人員能夠看到整個(gè)運(yùn)營(yíng)網(wǎng)絡(luò)系統(tǒng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),包括各個(gè)子網(wǎng)之間的網(wǎng)絡(luò)連接關(guān)系、及其每一子網(wǎng)上的資源。經(jīng)過(guò)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的生成后,可以在拓?fù)鋱D上看到整個(gè)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)圖,并能直觀地看到各個(gè)資源的狀態(tài)變化。
(1)事件告警
圖4 大屏展示設(shè)計(jì)方案
圖5 綜合業(yè)務(wù)網(wǎng)全景拓?fù)?/p>
圖6 總體網(wǎng)絡(luò)資源圖
圖7 告警規(guī)則制定
系統(tǒng)提供靈活的報(bào)警定義,管理員可設(shè)置多種報(bào)警方式,當(dāng)事故發(fā)生時(shí),可通過(guò)郵件、短信、桌面告警等多種報(bào)警方式,全面及時(shí)的通知用戶。如果在一定時(shí)間段內(nèi),事故仍沒(méi)有解決,可升級(jí)到更高層次用戶,自動(dòng)尋求更強(qiáng)的解決力度。
根據(jù)虛擬化管理的需要,可以對(duì)Vcenter、DataCenter、Cluster、ESXi服務(wù)器、虛擬機(jī)進(jìn)行監(jiān)控,針對(duì)虛擬化系統(tǒng)提供了性能、可用性、配置的監(jiān)控。直觀展現(xiàn)虛擬化系統(tǒng)的狀態(tài),以及被虛擬主機(jī)的可用性。提供內(nèi)存縮減量、CPU使用率、內(nèi)存使用率、磁盤(pán)讀/寫(xiě)速度、網(wǎng)絡(luò)數(shù)據(jù)接收/發(fā)送速度、資源池內(nèi)虛擬機(jī)配置內(nèi)存大小、虛擬機(jī)之間共享內(nèi)存等詳細(xì)指標(biāo)。
VMware Vcenter監(jiān)控頁(yè)面如圖8所示。
圖8 VMware Vcenter監(jiān)控截圖
通過(guò)自主的接口開(kāi)發(fā),將網(wǎng)絡(luò)信息機(jī)房的動(dòng)環(huán)參數(shù)納入到集中監(jiān)控平臺(tái)中,進(jìn)行統(tǒng)一的展現(xiàn)與事件告警。平臺(tái)可以對(duì)機(jī)房的溫度、濕度、UPS、精密空調(diào)等進(jìn)行監(jiān)控。
通過(guò)自主設(shè)計(jì)的大屏展示方案,搭建了全臺(tái)網(wǎng)絡(luò)監(jiān)控室,支持聯(lián)動(dòng)策略告警,為我臺(tái)的管理人員提供有了有效便捷的監(jiān)控手段。監(jiān)控平臺(tái)不僅可在系統(tǒng)產(chǎn)生告警事件時(shí)以郵件、短信、客戶端軟件等方式通知管理員,還可進(jìn)行聲光告警,對(duì)于兩大業(yè)務(wù)系統(tǒng)專門(mén)制作了相應(yīng)的報(bào)警音樂(lè)。根據(jù)聲音提示,管理員可以迅速鎖定對(duì)應(yīng)系統(tǒng)檢查處理,保障江蘇廣播完成各大安播任務(wù)。
江蘇廣播搭建了集中監(jiān)控平臺(tái),對(duì)全臺(tái)網(wǎng)系統(tǒng)進(jìn)行統(tǒng)一管理。通過(guò)自主開(kāi)發(fā)接口程序,將各個(gè)機(jī)房的動(dòng)力環(huán)境參數(shù)納入到集中監(jiān)控平臺(tái),進(jìn)行統(tǒng)一的監(jiān)控。在此基礎(chǔ)上搭建江蘇廣播的網(wǎng)絡(luò)監(jiān)控室,提高了運(yùn)維效率,為完成我臺(tái)的各項(xiàng)安播保障任務(wù)提供了技術(shù)支撐。
圖10 機(jī)房采集器取到的溫濕度參數(shù)
圖11 主備UPS電源參數(shù)