WOT2016苗輝:白山帶寬監(jiān)測系統(tǒng)Octopux如何另辟蹊徑?
原創(chuàng)帶寬監(jiān)測系統(tǒng)的重要性不言而喻。它為運營商結(jié)算、網(wǎng)絡(luò)質(zhì)量監(jiān)控提供必要的數(shù)據(jù)支持,是每個擁有自建資源的互聯(lián)網(wǎng)公司必配系統(tǒng)之一。白山云科技(以下簡稱“白山”)目前線上設(shè)備數(shù)千臺、分布于全球十幾個國家、跨越數(shù)十家運營商,在如此復(fù)雜的網(wǎng)絡(luò)環(huán)境下如何確保各設(shè)備帶寬數(shù)據(jù)精準監(jiān)測,后期能按不同應(yīng)用場景靈活整合,并且在網(wǎng)絡(luò)規(guī)模擴大到上萬臺后仍然能輕松應(yīng)對,是技術(shù)上需要面對的挑戰(zhàn)。今年3月白山宣布其自主研發(fā)的帶寬監(jiān)控系統(tǒng)“Octopux”開源,將其優(yōu)秀解決方案貢獻給其他面臨類似挑戰(zhàn)的公司,同時誠邀業(yè)界同仁共同促進系統(tǒng)發(fā)展。本文內(nèi)容來自白山研發(fā)副總裁苗輝,下面就和大家深度分享白山帶寬監(jiān)測系統(tǒng)背后的秘密。
苗輝·白山研發(fā)副總裁
常規(guī)系統(tǒng)力不從心
和大多數(shù)其他公司一樣白山最初也選擇cacti作為帶寬監(jiān)測系統(tǒng),但是隨著公司網(wǎng)絡(luò)規(guī)模和復(fù)雜度的不斷提高,在設(shè)備將近800臺時cacti已表現(xiàn)出嚴重的問題:
1、poller并發(fā)能力不足:為了完整監(jiān)測800臺設(shè)備,監(jiān)測粒度只能做到5分鐘,而業(yè)務(wù)層面對于1分鐘粒度的帶寬數(shù)據(jù)需求越來越強烈。
2、跨運營商監(jiān)測經(jīng)常失敗:即使cacti服務(wù)器部署在了三線BGP機房,仍然無法規(guī)避跨運營商監(jiān)測丟失數(shù)據(jù)的問題。
3、服務(wù)器IO成為瓶頸:800臺設(shè)備每5分鐘需要更新8000個RRD文件,磁盤出現(xiàn)了嚴重的IO瓶頸,導(dǎo)致數(shù)據(jù)消費方難以忍受。
4、數(shù)據(jù)提取效率低:二進制形式計入RRD文件的帶寬數(shù)據(jù)只能通過rrd-tool工具包提取出文本數(shù)據(jù),面對形態(tài)多變的業(yè)務(wù)層數(shù)據(jù)提取需求表現(xiàn)得極其不靈活,更無法在提取接口實現(xiàn)數(shù)據(jù)聚合功能以降低消費者的復(fù)雜度。
白山團隊突破瓶頸
在此背景下,白山放棄了對cacti的繼續(xù)改造,在參考借鑒諸多開源系統(tǒng)的基礎(chǔ)上開發(fā)出當前的帶寬監(jiān)測系統(tǒng)。系統(tǒng)的核心設(shè)計目標是:99.9%的數(shù)據(jù)完整性***跨運營商和跨國家監(jiān)測問題、平臺可以水平擴張至承載上萬臺服務(wù)器的監(jiān)測、支持秒級粒度數(shù)據(jù)監(jiān)測、提供簡單高效的數(shù)據(jù)查詢接口。
如上圖架構(gòu)圖所示:
swcollector負責(zé)數(shù)據(jù)的收集,以后臺進程模式運行在全網(wǎng)各個服務(wù)器上。收集來的數(shù)據(jù)傳輸給數(shù)據(jù)收集中心swtfr組件,在跨網(wǎng)或跨國環(huán)境下,如果swcollector無法將數(shù)據(jù)傳給swtfr,swcollector會主動嘗試通過多臺gateway中轉(zhuǎn)的方式確保將監(jiān)測數(shù)據(jù)最終發(fā)送到swtfr。
全網(wǎng)共部署三套swtfr + influxdb + flow-api組件組合,任意一臺swtfr收到數(shù)據(jù)后立即copy三份,寫入三個influxdb中。flow-api負責(zé)數(shù)據(jù)的查詢和聚合,當收到一個查詢請求后,將查詢數(shù)據(jù)拆分成最小粒度的查詢事件并發(fā)向三臺influxdb發(fā)起查詢,數(shù)據(jù)收齊后再做聚合處理。flow-api支持統(tǒng)計***值、平均值、最小值、group by等常用聚合操作。
當前一分鐘監(jiān)測15w條數(shù)據(jù),90%以上的數(shù)據(jù)能3s入庫,***規(guī)模數(shù)據(jù)查詢耗時3s內(nèi),完全滿足業(yè)務(wù)需要。當監(jiān)測規(guī)模較大時,可以通過水平擴展swtfr + influxdb + flow-api組件組合提升系統(tǒng)性能,此外influxdb本身也可以方便地水平擴展,以達到更大的存儲容量和更高的讀寫效率。
服務(wù)器的帶寬監(jiān)測為自發(fā)現(xiàn)方式,除支持各網(wǎng)卡進出帶寬監(jiān)測外,還支持服務(wù)器內(nèi)/外網(wǎng)進出帶寬的分開監(jiān)測、以及指定端口服務(wù)的內(nèi)/外網(wǎng)進出帶寬的分開監(jiān)測。
交換機的帶寬數(shù)據(jù)監(jiān)測多份,一臺交換機會同時被本節(jié)點內(nèi)的一個swcollector和另外兩個不同節(jié)點的swcollector監(jiān)測,監(jiān)測周期20s,三份數(shù)據(jù)通過flow-api聚合后輸出1分鐘粒度的帶寬數(shù)據(jù)更為精準。
與CMDB打通后可以自動按節(jié)點網(wǎng)絡(luò)拓撲分層展示、合并展示、按用途合并展示、與客戶計費帶寬對比分析等多種方式展現(xiàn),數(shù)據(jù)查詢秒開。
下圖為該系統(tǒng)數(shù)據(jù)展示場景之一:
帶寬監(jiān)測系統(tǒng)是一個看似簡單但實則復(fù)雜的系統(tǒng),當你的網(wǎng)絡(luò)規(guī)模達到一定程度你不得不克服網(wǎng)絡(luò)不通、數(shù)據(jù)不精準、處理效率低等問題,白山已將Octopux系統(tǒng)開源,希望給大家?guī)砀囔`感和參考,地址如下:
- https://github.com/baishancloud/octopux-swcollector
- https://github.com/baishancloud/octopux-swtfr
- https://github.com/baishancloud/octopus-gateway
另外隨著influxdb生態(tài)的不斷完善,influxdb無依賴易維護、輕量級高效率、豐富的可視化組件、自帶數(shù)據(jù)聚合能力等優(yōu)勢逐漸凸顯出來,白山正在嘗試基于該系統(tǒng)架構(gòu)打造第三代監(jiān)測系統(tǒng),以實現(xiàn)更好的聚合分析和復(fù)雜策略報警功能。
以上是苗輝關(guān)于《白山帶寬監(jiān)測系統(tǒng)Octopux如何另辟蹊徑?》的詳細解說,兩天之后苗輝會于WOT互聯(lián)網(wǎng)運維與開發(fā)者峰會的自動化運維分會場為大家做主題為《質(zhì)量運維化 – 白山的高品質(zhì)服務(wù)之道》的演講,詳細內(nèi)容如下:
【大會簡介】
4月14-15日在北京珠三角JW萬豪酒店,51CTO將舉辦WOT互聯(lián)網(wǎng)運維與開發(fā)者峰會。WOT秉承專注技術(shù),服務(wù)技術(shù)人群的理念,自 2012年***舉辦以來,歷經(jīng)4屆,積累了大量的技術(shù)資源,成為廣大技術(shù)從業(yè)者和技術(shù)愛好者一致認可的技術(shù)分享大會、交流和人脈拓展平臺。
【講師簡介】
苗輝,白山云科技研發(fā)副總裁,十年IT行業(yè)研發(fā)經(jīng)驗。2007年至2011年帶領(lǐng)團隊創(chuàng)建網(wǎng)宿科技CDN運營監(jiān)控體系,該體系是保證網(wǎng)宿科技CDN服務(wù)質(zhì)量的核心平臺之一,沿用至今;2011年任百度架構(gòu)師,負責(zé)百度自建CDN架構(gòu)和服務(wù)質(zhì)量的優(yōu)化改進,實現(xiàn)自建CDN穩(wěn)定性業(yè)內(nèi)首達4個9,并成功承載百度搜索等80%的百度核心業(yè)務(wù)。
【主題:質(zhì)量運維化 – 白山的高品質(zhì)服務(wù)之道】
演講摘要:運維,你還在糾結(jié)選擇ansible或saltstack嗎?還在猶豫用python或perl嗎?還在苦惱到底是docker還是虛機嗎?隨著云服務(wù)時代的到來,運維的目標已不再僅是提高效率、較少出錯、消除故障的自動化運維,而是以提高服務(wù)質(zhì)量為核心的涉及建設(shè)、部署、故障屏蔽、風(fēng)險控制、全息運營、團隊協(xié)作等諸多環(huán)節(jié)的質(zhì)量化運維。4個月上量500G、超過90%的客戶PK服務(wù)質(zhì)量***,白山云科技研發(fā)副總裁苗輝帶你一起探索白山云科技的高品質(zhì)服務(wù)之道:質(zhì)量化運維。