如何将AI能力与大数据技术结合,助力数据分析治理等工作的效率大幅提升,优化大数据引擎的性能及成本? 了解详情
写点什么

从 cacti 到 Octopux,带宽监测系统另辟蹊径

  • 2016-05-15
  • 本文字数:1996 字

    阅读完需:约 7 分钟

带宽监测系统的重要性不言而喻。它为运营商结算、网络质量监控提供必要的数据支持,是每个拥有自建资源的互联网公司必配系统之一。白山云科技(以下简称“白山”)目前线上设备数千台、分布于全球十几个国家、跨越数十家运营商,在如此复杂的网络环境下如何确保各设备带宽数据精准监测,后期能按不同应用场景灵活整合,并且在网络规模扩大到上万台后仍然能轻松应对,是技术上需要面对的挑战。本文来自白山研发副总裁苗辉,与大家分享白山带宽监测系统背后的秘密。

常规系统力不从心

和大多数其他公司一样白山最初也选择 cacti 作为带宽监测系统,但是随着公司网络规模和复杂度的不断提高,在设备将近 800 台时 cacti 已表现出严重的问题:

  1. poller 并发能力不足:为了完整监测 800 台设备,监测粒度只能做到 5 分钟,而业务层面对于 1 分钟粒度的带宽数据需求越来越强烈。
  2. 跨运营商监测经常失败:即使 cacti 服务器部署在了三线 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 无依赖易维护、轻量级高效率、丰富的可视化组件、自带数据聚合能力等优势逐渐凸显出来,白山正在尝试基于该系统架构打造第三代监测系统,以实现更好的聚合分析和复杂策略报警功能。

作者简介

苗辉,白山创始合伙人兼研发副总裁。苗辉先生负责白山第一个产品线 CDN-X 的相关研发工作,带领团队在 3 个月内实现 CDN-X 系统从无到有,依靠独特的 SHAQUE、MANTA、TUNA、DOLFIN 技术和质量化运维体系取得平台 4 个月上量 500G,90% 以上客户 PK 第一名的成绩。

作为网络传输优化专家,苗辉先生在运营支撑与性能优化方面积累了丰富经验。2007 年至 2011 年,就职于网宿,带领团队创建网宿科技 CDN 运营监控体系;2011 年至 2014 年任百度架构师,负责百度自建 CDN 架构和服务质量的优化改进,自建 CDN 稳定性业内首达 4 个 9,并成功承载百度搜索等 80% 的百度核心业务。


感谢魏星对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-05-15 19:252166

评论

发布
暂无评论
发现更多内容

5分钟,带你创建一个智能电梯检测器模型

华为云开发者联盟

物联网 华为云 iotda 智慧电梯 企业号十月 PK 榜

Gartner:被CIO们忽略的7个颠覆性趋势

雨果

CIO

Linux下Shell脚本基础语法

DS小龙哥

10月月更

你从未见过如此详细的 TCP 八股文!

C++后台开发

TCP 网络编程 网络协议 八股文 C++开发

如何使用华为云IoT平台实现远程控制无人机,资深物联网从业者手把书一步一步教你!

wljslmz

物联网 IoT 无人机 华为云 10月月更

有人想用开源工具DBT取代 SQL,你同意吗?

雨果

sql

Flowable 任务如何认领,回退?

江南一点雨

Java springboot workflow flowable JavaEE

网易数帆数据治理2.0实践分享

网易数帆

大数据 数据中台 数据治理 数据质量 企业号十月 PK 榜

数据库故障处理优质文章汇总(含Oracle、MySQL、MogDB等)

墨天轮

MySQL 数据库 oracle 故障定位 国产数据库

阿里高工携18位架构师耗时两个月整合1000页的Java岗面试八股文

程序知音

Java 架构 java面试 后端技术 Java面试八股文

驱动企业数字化转型 低代码平台需要具备哪些能力?

力软低代码开发平台

SchedulX V1.7.0更新,规格压测、成本洞察等重磅功能发布!

星汉未来

云原生 降本增效 星汉未来

Linux下automake工具使用(自动构建Makefile文件)

DS小龙哥

10月月更

Python进阶(十二)浅谈python中的方法

No Silver Bullet

Python 方法 10月月更

十大 CI/CD 安全风险(二)

SEAL软件供应链安全

DevOps CI/CD DevSecOps CI/CD管道 软件供应链安全

向量数据库是如何检索的?基于 Feder 的 IVF_FLAT 可视化实现

Zilliz

人工智能 可视化 向量检索 anns 以图搜图

爆火的RPA尚在初期阶段,拥挤的赛道厂商如何突围?

ToB行业头条

String、StringBuffer、StringBuilder的区别

zarmnosaj

10月月更

什么是深度学习?人工智能能影响未来的特点之一

Finovy Cloud

人工智能 深度学习

阿里内部手写的Spring Security,真的香啊

小二,上酒上酒

spring spring security

IT人士必须警惕这9个信号:说明你的IT架构很糟糕

雨果

数据管理工具 数据服务平台

别按部就班的背面试题了!吃透这份Java面试核心知识手册,大环境不好Offer也能拿到手软!

Java全栈架构师

程序员 面试 程序人生 架构师 Java后端

用了这个API协作调试工具,忘记了postman

Liam

Postman 接口调试 开放api API接口 API调试

专利解析|混合缓存技术在元年多维库中的应用

元年技术洞察

数据分析 多维数据库

JFrog Xray 与 Amazon Security Hub 集成

亚马逊云科技 (Amazon Web Services)

安全 DevSecOps

企业集成方案

久歌

企业架构 企业集成

Bug改不完,迭代总延期,咋办?

华为云开发者联盟

开发流程 bug 迭代 瀑布开发 企业号十月 PK 榜

数字化转型案例解读:德意志银行数字化转型背后的故事

雨果

数字化转型

融云实践:主流叙事之外,科技如何助力民生改善

融云 RongCloud

数据 服务 科技

挑战海量数据:基于Apache DolphinScheduler对千亿级数据应用实践

Apache DolphinScheduler

大数据任务调度 任务调度 dophinscheduler 大数据调度

超详细 Clickhouse 负载过高问题快速排查思路教程

云智慧AIOps社区

数据库 zookeeper 监控 Grafana Clickhouse

从cacti到Octopux,带宽监测系统另辟蹊径_语言 & 开发_苗辉_InfoQ精选文章