用InfluxDB扩展遥测监测的规模

251 阅读6分钟

利用InfluxDB扩展遥测监测的规模

思科的一个团队如何利用IOS-XR、一个多处理收集器代理和InfluxDB来创建一个遥测监测系统,该系统能够每天摄取3TB的遥测数据。

  • Share on Facebook
  • Share on Twitter
  • Share on LinkedIn
  • Share on Reddit
  • Share by Email
  • Print resource

作者 :Sam Dillard

信息世界

Monsitj / Getty Images

用户对软件应用的期望不断提高。如今,人们期望服务具有高度的可靠性,并能全天候地良好运行。任何形式的宕机都会导致用户的失望,并长期损害你的业务。

提高可靠性的一个关键因素是监控你的应用程序。虽然建立基本的监控很容易,但随着服务流量的增长,是否有能力有效地扩展监控是一个重大挑战。你还希望对你的服务的每一个重要指标都有可见性,并且能够使你所收集的数据变得有用和可操作,能够根据需要实时有效地查询和分析这些数据。

[InfoWorld上还有:2021年最佳开源软件] 。

简而言之,你为一个副业或小规模的系统所遇到的问题与在生产环境中大规模部署遥测监测之间有很大的区别。

思科的一个团队用InfluxDB进行了实验,创建了一个可扩展的遥测监控架构的例子,其他拥有大规模生产环境的公司可以借鉴,而不必从头开始。这种设置使思科能够将其遥测数据摄入量扩大到每天3TB(或每分钟约16GB)。这个架构的核心是Cisco IOS-XR和InfluxDB。

思科遥测监控架构概述

在思科的遥测架构中,有三个主要部分。第一部分是运行IOS-XR的思科硬件,它产生遥测数据。第二部分是收集器代理,它接收这些数据,然后将其发送到最后一个组件进行存储,这是由InfluxDB完成的。

InfluxData

思科IOS-XR

IOS-XR是思科公司用于其高端、运营商级路由器的操作系统,如CRS系列、12000系列和ASR 9000系列网络路由器。与其他网络操作系统相比,IOS-XR提供了更好的可用性,为大型硬件配置提供了更好的可扩展性,能够在路由器保持服务的情况下安装升级或补丁,以及竞争对手不具备的许多其他功能。

一个特别相关的功能是,IOS-XR提供了集成的遥测数据流,以增加网络的可视性,并有API可供工程师根据遥测数据采取行动。

对于这个架构,思科从三个不同的IOS-XR平台上流传数据:NCS 5500、ASR 9000和8000系列路由器。思科将这些设备配置为在拨出模式下运行,通过TCP连接,使用自我描述的GPB(谷歌协议缓冲区)。在这个阶段,遥测监测架构的一个关键因素是确保它在总体指标以及指标收集的频率方面不会收集超过它需要的数据。

采集器代理

来自IOS-XR硬件的遥测数据被发送到一个负载均衡器,然后在三个不同的收集器代理之间转发数据。在大规模的情况下,单线程的收集器系统将无法处理被发送到它们的数据量。多线程收集器也有问题,因为它们都是用单独的连接上传到数据库的,这就产生了另一组问题。

为了解决这些问题,思科编写了一个多进程收集器代理,其代码在GitHub上是开源的。收集器代理的主进程与工人池解耦,工人池解析数据并将其上传到InfluxDB。主进程在数据流入时将其添加到队列中,然后将遥测数据分批发送到工作池中。收集器代理能够每秒处理数千兆字节的数据,同时由于这种解耦架构而保持可靠。这可以从下图中看出。

架构

InfluxDB

遥测架构的最后一块是InfluxDB,它被用来存储数据。在这个实验中,InfluxDB被部署在两个数据节点和三个元节点中,形成一个集群,以支持提高可靠性和性能。

InfluxDB是一个专门建立的时间序列数据库,旨在处理大量的时间戳数据,这使它非常适合思科的遥测监测用例。InfluxDB也非常适用于任何需要能够写入大量数据并能够实时查询数据的工作负载。常见的用例包括物联网、分析和应用监控。

InfluxDB是开源的,可以部署在你自己的基础设施上,或者使用InfluxData的云产品InfluxDB Cloud在几分钟内完成设置。InfluxDB云是一个完全管理的弹性时间序列数据平台,允许用户快速启动,然后轻松扩展以满足他们的要求。摄入的数据可以使用InfluxDB Cloud的内置仪表盘进行显示,并且可以使用InfluxData为时间序列工作负载设计的可组合功能性查询语言Flux进行数据查询。

[了解devops的最新发展。订阅InfoWorld First Look通讯]

对于思科的用例,它对InfluxDB的标准配置做了一些改变,以优化其特定需求。首先是调整了默认的缓存(缓冲区)内存大小。因为他们从收集器代理分批写入数据,InfluxDB需要预留更大的内存量,以便在写入数据时保持数据不变。在集群层面,思科还选择允许在节点之间进行无序复制写入。这使得数据到达顺序和点的伴随时间戳之间的关系更加灵活。

遥测数据的扩展是一项困难的任务,许多公司都试图自己解决。思科在这个实验中的目标是为其他公司提供一个蓝图架构,以便他们不必为自己的用例重新发明车轮。思科解决方案的一个核心部分是InfluxDB,因为它的性能、易用性和开源代码基础。

*Sam Dillard是InfluxData的物联网和企业高级产品经理。
*

-

新技术论坛为探索和讨论新兴的企业技术提供了一个前所未有的深度和广度的场所。选择是主观的,是基于我们对我们认为重要的和InfoWorld读者最感兴趣的技术的挑选。InfoWorld不接受用于出版的营销材料,并保留编辑所有投稿内容的权利。请将所有咨询发送至newtechforum@infoworld.com。

相关的。

Copyright © 2021 IDG Communications, Inc.

如何选择一个低代码开发平台