百度网络质量监控实战:猎鹰一战成名(下)
作者簡(jiǎn)介
運(yùn)小海 ? ?百度高級(jí)研發(fā)工程師
從事網(wǎng)絡(luò)監(jiān)控、可用性建設(shè)相關(guān)工作,負(fù)責(zé)百度外網(wǎng)監(jiān)控平臺(tái)獵鷹、百度內(nèi)網(wǎng)監(jiān)控平臺(tái)NetRadar等系統(tǒng)的研發(fā)和優(yōu)化工作。在網(wǎng)絡(luò)采集、網(wǎng)絡(luò)異常檢測(cè)、系統(tǒng)可用性方面有廣泛的實(shí)踐經(jīng)驗(yàn)。
干貨概覽
我們?cè)谏弦黄恼?/span>《百度網(wǎng)絡(luò)監(jiān)控實(shí)戰(zhàn):獵鷹一戰(zhàn)成名》(上)中,初步介紹了百度外網(wǎng)質(zhì)量監(jiān)控的典型場(chǎng)景與需求,本篇文章將從外網(wǎng)監(jiān)控的實(shí)現(xiàn)原理及系統(tǒng)架構(gòu)兩個(gè)方面系統(tǒng)詳細(xì)介紹百度外網(wǎng)質(zhì)量監(jiān)控平臺(tái)獵鷹。
通過(guò)上一篇文章的需求調(diào)研,我們可以知道,業(yè)務(wù)線(xiàn)運(yùn)維工程師希望外網(wǎng)監(jiān)控平臺(tái)能夠真實(shí)反映用戶(hù)到百度IDC(Internet Data Center,互聯(lián)網(wǎng)數(shù)據(jù)中心,又稱(chēng)機(jī)房)間的網(wǎng)絡(luò)質(zhì)量,并能夠及時(shí)快速地發(fā)現(xiàn)機(jī)房側(cè)故障、骨干網(wǎng)故障以及單省份故障,這里面有幾個(gè)關(guān)鍵問(wèn)題:
1監(jiān)控?cái)?shù)據(jù)反映的是網(wǎng)絡(luò)質(zhì)量對(duì)于業(yè)務(wù)線(xiàn)運(yùn)維工程師來(lái)說(shuō),他們關(guān)注的是外網(wǎng)質(zhì)量,因此,需要通過(guò)一種探測(cè)手段來(lái)實(shí)時(shí)反映網(wǎng)絡(luò)質(zhì)量。而探測(cè)協(xié)議有很多種,比如ICMP、TCP、HTTP,那么哪種協(xié)議更適合呢?我們選擇了TCP和HTTP來(lái)作為探測(cè)協(xié)議,原因有以下兩點(diǎn):
首先,網(wǎng)絡(luò)設(shè)備在轉(zhuǎn)發(fā)請(qǐng)求時(shí),是根據(jù)請(qǐng)求的源IP、源端口、目的IP、目的端口、網(wǎng)絡(luò)協(xié)議這五個(gè)信息決定請(qǐng)求的Next Hop所經(jīng)過(guò)的鏈路或者設(shè)備。TCP和HTTP協(xié)議有請(qǐng)求端口,而ICMP協(xié)議只有源IP、目的IP以及網(wǎng)絡(luò)協(xié)議這三個(gè)信息。那么對(duì)于一個(gè)監(jiān)測(cè)點(diǎn)和一個(gè)被監(jiān)測(cè)目標(biāo)來(lái)說(shuō),由于TCP和HTTP探測(cè)請(qǐng)求的源端口可以不斷的變化,因此TCP和HTTP探測(cè)方式能夠比ICMP探測(cè)方式夠覆蓋更多的鏈路。
其次,用戶(hù)訪(fǎng)問(wèn)百度服務(wù)的請(qǐng)求大多數(shù)是基于TCP和HTTP方式的,因此,TCP和HTTP方式更接近于用戶(hù)的訪(fǎng)問(wèn)方式。
在確定了探測(cè)方式之后,我們需要有探測(cè)指標(biāo)來(lái)衡量網(wǎng)絡(luò)質(zhì)量的好壞,為了更加真實(shí)反映用戶(hù)到百度服務(wù)之間的網(wǎng)絡(luò)質(zhì)量,我們將網(wǎng)絡(luò)連接是否建立成功、連接建立的時(shí)延作為衡量網(wǎng)絡(luò)質(zhì)量的指標(biāo)。對(duì)于HTTP探測(cè)方式,我們不關(guān)心HTTP Code,只要連接建立成功,即使HTTP Code為500,我們也認(rèn)為網(wǎng)絡(luò)正常。
2監(jiān)控?cái)?shù)據(jù)反映用戶(hù)到百度IDC的網(wǎng)絡(luò)訪(fǎng)問(wèn)質(zhì)量為了能夠真實(shí)反映用戶(hù)到百度IDC間的網(wǎng)絡(luò)質(zhì)量,需要從用戶(hù)側(cè)向百度的的VIP(Virtual Internet Address,百度多臺(tái)服務(wù)器形成的一個(gè)虛機(jī)地址)發(fā)起探測(cè)。因此,我們?cè)谌珖?guó)三大運(yùn)營(yíng)商各個(gè)省份部署了若干監(jiān)測(cè)點(diǎn),用于執(zhí)行具體的探測(cè)任務(wù)。
3能夠及時(shí)快速地發(fā)現(xiàn)網(wǎng)絡(luò)故障為了盡可能快地發(fā)現(xiàn)網(wǎng)絡(luò)故障,我們?cè)O(shè)計(jì)了基于數(shù)據(jù)驅(qū)動(dòng)的網(wǎng)絡(luò)故障檢測(cè)模型。已有的故障檢測(cè)模型大多是固定周期檢測(cè)模式,比如檢測(cè)周期是1min,那么檢測(cè)模型每?jī)纱蜗噜彽臋z測(cè)需要間隔1min,這種模式比較適用于流水?dāng)?shù)據(jù)、PV數(shù)據(jù)的檢測(cè)。但是對(duì)于網(wǎng)絡(luò)異常檢測(cè)的場(chǎng)景,實(shí)際上每?jī)纱蜗噜彽臋z測(cè)并不一定需要間隔1min,看下面這個(gè)例子:
假如Tn周期的檢測(cè)時(shí)間點(diǎn)是10:00:00,按照固定周期檢測(cè)模式,Tn+1周期的檢測(cè)時(shí)間點(diǎn)則是10:01:00,而實(shí)際很有可能在10:00:35的時(shí)候就已經(jīng)收集夠了相對(duì)充足的探測(cè)樣本,足夠判斷出當(dāng)前是否存在網(wǎng)絡(luò)異常,那么在10:00:35就可以進(jìn)行故障檢測(cè)了,這樣能夠?qū)⒐收习l(fā)現(xiàn)時(shí)間提前25秒。
因此,在我們的基于數(shù)據(jù)驅(qū)動(dòng)的網(wǎng)絡(luò)故障檢測(cè)模型中,我們對(duì)固定周期檢測(cè)模式進(jìn)行了改進(jìn),加入了探測(cè)樣本數(shù)判斷,如果提前收集到了足夠的探測(cè)樣本,則提前進(jìn)行故障檢測(cè),盡可能地加快故障發(fā)現(xiàn)速度。
4能夠準(zhǔn)確區(qū)分網(wǎng)絡(luò)故障類(lèi)型當(dāng)出現(xiàn)網(wǎng)絡(luò)故障時(shí),業(yè)務(wù)線(xiàn)運(yùn)維工程師需要知道網(wǎng)絡(luò)故障的類(lèi)型,以便于采取對(duì)應(yīng)的止損策略進(jìn)行止損。我們針對(duì)機(jī)房側(cè)故障、骨干網(wǎng)故障、單省份故障的表現(xiàn)特點(diǎn)分別設(shè)計(jì)了三種故障發(fā)現(xiàn)策略。
圖1 ? ?外網(wǎng)監(jiān)控原理示意圖
如上所述,我們通過(guò)在每個(gè)省份部署若干采集點(diǎn),這些采集點(diǎn)周期性地向百度機(jī)房的VIP發(fā)起探測(cè)請(qǐng)求(HTTP請(qǐng)求和TCP請(qǐng)求),并將探測(cè)結(jié)果進(jìn)行上報(bào),然后對(duì)探測(cè)結(jié)果進(jìn)行故障判定,得到實(shí)時(shí)的網(wǎng)絡(luò)質(zhì)量和狀態(tài)(如圖1所示)。
二系統(tǒng)架構(gòu)獵鷹整體系統(tǒng)架構(gòu)如圖2所示,主要包括采集服務(wù)、任務(wù)分發(fā)、數(shù)據(jù)分析與告警、元數(shù)據(jù)管理、存儲(chǔ)以及可視化展示等六部分。
圖2 ? ?獵鷹整體架構(gòu)圖
1元數(shù)據(jù)管理元數(shù)據(jù)管理是整個(gè)系統(tǒng)最基礎(chǔ)的一部分,它負(fù)責(zé)不同的實(shí)體映射關(guān)系維護(hù),主要包括VIP→機(jī)房歸屬關(guān)系、機(jī)房→VIP的映射列表以及VIP→域名歸屬關(guān)系。
在上一小節(jié)中提到,獵鷹部署在各個(gè)省份的采集點(diǎn)需要周期性地向百度機(jī)房的VIP發(fā)起探測(cè)請(qǐng)求,服務(wù)端接收到探測(cè)結(jié)果之后,需要把每個(gè)VIP的探測(cè)樣本在VIP所屬的機(jī)房維度進(jìn)行匯聚計(jì)算,得到機(jī)房粒度的探測(cè)質(zhì)量數(shù)據(jù)。因此,我們必須要維護(hù)VIP→機(jī)房歸屬關(guān)系以及機(jī)房→VIP的映射列表。
另外,在檢測(cè)出故障后,我們需要判斷出受損的業(yè)務(wù)線(xiàn),因此需要維護(hù)VIP→域名歸屬關(guān)系,比如檢測(cè)出廣東機(jī)房出現(xiàn)故障,我們根據(jù)機(jī)房→VIP的映射列表得到所有受到影響的VIP,然后再根據(jù)VIP→域名歸屬關(guān)系分析出受影響的域名,從而得到受損的業(yè)務(wù)線(xiàn)列表。
2任務(wù)分發(fā)任務(wù)分發(fā)負(fù)責(zé)將采集任務(wù)分發(fā)到采集點(diǎn),這里的采集任務(wù)主要指VIP探測(cè)列表,采集任務(wù)會(huì)指定探測(cè)目標(biāo)(即VIP)、探測(cè)協(xié)議(HTTP or TCP)、探測(cè)周期、超時(shí)閾值等。
3采集服務(wù)采集服務(wù)在采集點(diǎn)上運(yùn)行,負(fù)責(zé)執(zhí)行具體的采集任務(wù)。采集任務(wù)包括HTTP探測(cè)任務(wù)和TCP探測(cè)任務(wù)兩種,在執(zhí)行完探測(cè)之后,會(huì)將探測(cè)結(jié)果上報(bào)給上層的數(shù)據(jù)分析與告警服務(wù),用于后續(xù)的數(shù)據(jù)處理與實(shí)時(shí)分析。探測(cè)結(jié)果包括兩個(gè)指標(biāo):失敗率和連接時(shí)延。
數(shù)據(jù)分析與告警是整個(gè)系統(tǒng)最核心的部分,包括數(shù)據(jù)收集、故障判定以及影響分析與告警。
數(shù)據(jù)收集用于接收采集服務(wù)上報(bào)的探測(cè)結(jié)果,并對(duì)探測(cè)結(jié)果進(jìn)行一些清洗、去噪以及匯聚計(jì)算。
故障判定用于對(duì)清洗匯聚后的探測(cè)結(jié)果進(jìn)行故障判定,通過(guò)三種故障發(fā)現(xiàn)策略來(lái)判斷當(dāng)前是否存在某種網(wǎng)絡(luò)故障。
影響分析與告警用于進(jìn)行故障通告和報(bào)警,當(dāng)故障判定判斷存在網(wǎng)絡(luò)故障時(shí),會(huì)通過(guò)元數(shù)據(jù)信息分析出受到此次故障影響的業(yè)務(wù)線(xiàn),然后給這些業(yè)務(wù)的運(yùn)維工程師發(fā)送報(bào)警。
4存儲(chǔ)存儲(chǔ)包括三部分:指標(biāo)時(shí)序數(shù)據(jù)存儲(chǔ)、異常事件存儲(chǔ)以及元數(shù)據(jù)存儲(chǔ)。指標(biāo)時(shí)序數(shù)據(jù)存儲(chǔ)主要存儲(chǔ)實(shí)時(shí)的探測(cè)指標(biāo)(失敗率和連接時(shí)延),異常事件存儲(chǔ)主要存儲(chǔ)網(wǎng)絡(luò)故障事件,元數(shù)據(jù)存儲(chǔ)主要存儲(chǔ)基礎(chǔ)的數(shù)據(jù)歸屬映射關(guān)系。其中指標(biāo)時(shí)序數(shù)據(jù)存儲(chǔ)和異常事件存儲(chǔ)使用的是百度通用的數(shù)據(jù)存儲(chǔ)平臺(tái),元數(shù)據(jù)為內(nèi)存存儲(chǔ)。
5可視化可視化視圖部分的展現(xiàn)非常重要,這個(gè)是對(duì)用戶(hù)最直接的呈現(xiàn)。獵鷹的可視化視圖主要包括三部分:全局網(wǎng)絡(luò)視圖、業(yè)務(wù)線(xiàn)網(wǎng)絡(luò)視圖、機(jī)房視圖。
全局網(wǎng)絡(luò)視圖用來(lái)展現(xiàn)實(shí)時(shí)的全局網(wǎng)絡(luò)狀況,圖3展示的是全局網(wǎng)絡(luò)視圖,包括故障公告、機(jī)房全局概覽和產(chǎn)品線(xiàn)概覽。故障公告展示的是最近一段內(nèi)的網(wǎng)絡(luò)故障通告。機(jī)房全局概覽展示的是全百度所有機(jī)房的網(wǎng)絡(luò)狀況,如果有異常,會(huì)進(jìn)行飄紅顯示。產(chǎn)品線(xiàn)概覽展示的是接入獵鷹的所有產(chǎn)品線(xiàn)的網(wǎng)絡(luò)狀況,如果該產(chǎn)品線(xiàn)受到網(wǎng)絡(luò)故障影響,則會(huì)飄紅顯示。
圖3 ?全局網(wǎng)絡(luò)視圖(示意圖)
業(yè)務(wù)線(xiàn)網(wǎng)絡(luò)視圖展示的是各個(gè)業(yè)務(wù)線(xiàn)的域名以及VIP的網(wǎng)絡(luò)質(zhì)量視圖,各業(yè)務(wù)線(xiàn)運(yùn)維工程師可以很直觀地觀察到自己所負(fù)責(zé)的域名和VIP的網(wǎng)絡(luò)訪(fǎng)問(wèn)質(zhì)量。圖4展示的是百度搜索產(chǎn)品線(xiàn)的域名網(wǎng)絡(luò)質(zhì)量視圖,主要包括兩部分:
圖4 ?業(yè)務(wù)線(xiàn)網(wǎng)絡(luò)視圖
1域名網(wǎng)絡(luò)連通性質(zhì)量趨勢(shì)圖展示的是某一段時(shí)間內(nèi)全國(guó)所有省份訪(fǎng)問(wèn)某個(gè)域名的連通性情況,按運(yùn)營(yíng)商維度分別展示。
以地圖的形態(tài)分運(yùn)營(yíng)商展示域名在每個(gè)省份的網(wǎng)絡(luò)連通性質(zhì)量,地圖的每個(gè)省份的顏色會(huì)隨著網(wǎng)絡(luò)質(zhì)量的好壞而變化,并且如果網(wǎng)絡(luò)質(zhì)量持續(xù)異常,地圖上的省份會(huì)有紅圈閃動(dòng)。每個(gè)省份鼠標(biāo)懸浮停留會(huì)展示該省份的網(wǎng)絡(luò)連通性質(zhì)量,包括探測(cè)異常率和響應(yīng)時(shí)間兩個(gè)指標(biāo)。
機(jī)房視圖展示的是全國(guó)各個(gè)省份到全百度各個(gè)機(jī)房的詳細(xì)外網(wǎng)質(zhì)量數(shù)據(jù)。這個(gè)視圖包括兩部分:
1機(jī)房網(wǎng)絡(luò)連通性趨勢(shì)圖展示某個(gè)時(shí)間段內(nèi)全國(guó)所有省份到某個(gè)機(jī)房的網(wǎng)絡(luò)連通性狀況。
2可視化機(jī)房-省份連通性視圖機(jī)房-省份連通性視圖以地圖的形態(tài)細(xì)致地展現(xiàn)了每個(gè)省份到每個(gè)機(jī)房的外網(wǎng)訪(fǎng)問(wèn)質(zhì)量,地圖的每個(gè)省份的顏色會(huì)隨著網(wǎng)絡(luò)質(zhì)量的好壞而變化。同時(shí),地圖上的省份可以和趨勢(shì)圖聯(lián)動(dòng),點(diǎn)擊地圖的某個(gè)省份,右邊趨勢(shì)圖展示的內(nèi)容會(huì)變成選中的省份到該機(jī)房出的網(wǎng)絡(luò)連通性數(shù)據(jù)。
圖5 ?機(jī)房視圖
總結(jié)
獵鷹已經(jīng)多次幫助發(fā)現(xiàn)重大網(wǎng)絡(luò)故障,及時(shí)挽回了數(shù)千萬(wàn)可能的PV Loss,在業(yè)務(wù)線(xiàn)日常運(yùn)維工作中發(fā)揮著越來(lái)越重要的作用。接下來(lái)我們會(huì)繼續(xù)秉承著“科技改變世界、技術(shù)改變生活”的理念將獵鷹打造成更加智能化的網(wǎng)絡(luò)監(jiān)控平臺(tái),讓網(wǎng)絡(luò)問(wèn)題無(wú)處遁形。
若您有任何疑問(wèn)或想進(jìn)一步了解獵鷹,歡迎給我們留言!
總結(jié)
以上是生活随笔為你收集整理的百度网络质量监控实战:猎鹰一战成名(下)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 程序猿推荐:仿微信下拉录制视频源码分享
- 下一篇: 开源项目-绩效管理系统