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






























