使用 InfluxDB 和 Telegraf 实现网络监控现代化

导航至

本文最初发表于 The New Stack

随着技术格局持续快速变化,企业公司正竞相赶上步伐,并对其遗留的 IT 和网络基础设施进行现代化改造,以获取新开发的工具和最佳实践的优势。

通过采用现代 DevOps 技术,他们可以降低运营成本,提高服务的可靠性,并提高其 IT 团队的整体速度和敏捷性。

背景

Network to Code 是一家与供应商无关的网络自动化解决方案提供商,帮助企业将其组织引入现代 DevOps 实践。Network to Code 的创立理念是,公司可以通过采用软件工程师使用的技术类型并将这些技术应用于其 IT 和网络基础设施而受益匪浅。

Network to Code 帮助公司转变其网络的部署、管理和使用方式。他们通过应用通常用于软件工程的工具和技术,并将它们引入网络和 IT 基础设施来实现这一点。Network to Code 提供定制解决方案和培训,以帮助企业团队快速启动并运行,同时采用全新的基础设施管理方法。

为此,Network to Code 依赖于许多开源工具,他们可以根据客户的用例对其进行自定义。一些最常用的工具包括 Ansible、Puppet、Terraform、Telegraf、InfluxDB、Prometheus 和 Grafana。

无需重复发明轮子即可收集遥测数据

Network to Code 在与新客户合作时面临的最大问题之一是简单地了解公司的基础设施。这是因为许多硬件提供商仅提供供应商特定的监控工具。这些工具中的许多也已过时,无法扩展以提供实时监控和洞察所需的细粒度遥测数据,从而提供业务价值。

过去,网络监控工具仅以分钟甚至更长的时间间隔提供指标的情况并不少见。为了提高网络的可靠性并快速响应问题,网络团队需要了解几秒钟而不是几分钟内发生的事情。Network to Code 需要一种有效的方法,从所有这些不同的硬件来源收集数据,而无需为每个客户创建自定义解决方案。

除了简单地收集遥测数据外,Network to Code 还需一种存储和查询他们收集的数据的方法。如果您无法快速有效地分析数据,那么世界上所有的数据都是无用的。理想情况下,此数据存储应具有足够的可扩展性,以便可以从客户已在使用的任何潜在分析工具访问。

Network to Code 通过 Telegraf 和 InfluxDB 找到了遥测数据收集和存储的解决方案。

使用 Telegraf 收集遥测数据

Telegraf 是一个开源的、插件驱动的服务器代理,用于从众多来源收集指标和事件。Network to Code 的数据收集管道如下所示

Network to Code's Telegraf pipeline

Network to Code 的 Telegraf 管道

Network to Code 从选择 Telegraf 中看到的一些主要优势

易于部署

Telegraf 以单个二进制文件部署,没有外部依赖项。这很重要,因为 Network to Code 需要能够在客户端的硬件上运行其指标收集器,而他们无法保证环境如何。Telegraf 使部署过程不那么耗时,从而可以更快地加入新客户。

超过 250 个输入插件

Telegraf 对 Network to Code 的另一个优势是开源社区,该社区创建了超过 250 个输入插件。这意味着 Network to Code 不必重复发明轮子,因为已经存在插件来收集几乎所有客户正在使用的工具或网络协议的数据。

Example Telegraf configuration used by Network to Code for gNMI protocol

Network to Code 用于 gNMI 协议的 Telegraf 配置示例

内置数据处理

除了输入和输出插件外,Telegraf 还提供了创建“处理器”插件的功能,这些插件可用于在存储数据之前转换或丰富数据。这些插件使 Network to Code 可以选择使用他们熟悉的工具(如 Python 和正则表达式)来重命名字段、规范化数据、丰富数据或在数据存储之前在传输过程中修改数据,而无需在其管道中执行额外的步骤。

Example Regex processor plugin

Regex 处理器插件示例

可扩展

使用 Telegraf 的最后一个好处是可扩展性。虽然可以将 Telegraf 部署为处理所有传入硬件指标的单个实例,但 Network to Code 选择为每个客户硬件单独部署一个 Telegraf 实例。这使他们的整个设置更可靠、更可扩展,同时也允许他们更新单个机器上的配置,而不会影响其他任何地方的指标收集。

使用 InfluxDB 存储和分析遥测数据

Network to Code 还需要一个数据库来存储他们的遥测数据,一旦数据被 Telegraf 收集和转换。自然而然的选择是 InfluxDB,因为它专为他们将要存储的确切类型的时间序列指标数据而设计。Network to Code 从使用 InfluxDB 中看到的一些主要优势

查询性能

InfluxDB 是一个时间序列数据库,这意味着它是从头开始设计用于处理时间序列数据的。与使用标准关系数据库相比,诸如抓取时间范围内的所有指标之类的常见查询更快、更有效。

数据可视化

能够可视化数据并使数据易于理解是 Network to Code 使用 InfluxDB 的另一个好处。许多流行的仪表板工具(如 Grafana)都提供与 InfluxDB 的直接集成,以创建数据可视化。如果您希望更灵活地使用您选择的编程语言和图表库添加自定义图表和仪表板,InfluxDB 还通过 REST API 提供对数据的直接访问。

Example dashboard pulling data from InfluxDB

从 InfluxDB 拉取数据的仪表板示例

降低存储成本

作为专用时间序列数据库的另一个优势是,InfluxDB 可以对传入数据的结构进行假设。这意味着 InfluxDB 可以使用各种压缩算法来减小存储数据的大小。在存储 PB 级遥测数据时,这可以带来显着的成本节省。对于 Network to Code 而言,这意味着他们的客户可以用更少的钱存储更多的历史数据,这意味着他们可以做出更明智的决策。

自动化工作流程

InfluxDB 提供了一个集成的任务和警报系统,可用于自动化许多监控任务。可以安排查询在定义的时间间隔运行,如果结果超出某个阈值,则可以将警报发送给值班工程师以采取行动。

结论

通过使用 Telegraf 和 InfluxDB,Network to Code 能够快速有效地为其客户设置遥测监控解决方案。这使他们能够更快地行动,并在他们的遥测监控到位并收集业务洞察后开始为客户增加真正的价值。此数据可用于更快地响应中断,通过识别硬件过度配置的情况来削减成本,并使网络工程团队能够充满信心地进行部署,因为他们可以完全观察到其基础设施。