使用 InfluxDB 和 Telegraf 现代化网络监控
作者 Charles Mahler / 产品,用例,开发者
2022年4月11日
导航到
本文最初发表在 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。
在不重新发明轮子的情况下收集遥测数据
当与新的客户合作时,网络到代码面临的最大问题之一是简单地了解公司的基础设施。这是因为许多硬件供应商仅提供特定供应商的工具进行监控。许多这些工具也已过时,无法扩展以提供实时监控和洞察所需的高分辨率遥测数据。
在过去,网络监控工具仅以每分钟或更长时间间隔提供指标的情况并不少见。为了提高网络的可靠性并快速响应问题,网络团队需要知道秒级发生的事情,而不是分钟级。网络到代码需要一种方法,可以从所有这些不同的硬件源高效地收集数据,而无需为每个客户创建定制解决方案。
除了简单地收集遥测数据外,网络到代码还需要一种存储和查询他们所收集数据的方法。如果无法快速有效地分析数据,所有数据都毫无用处。理想情况下,此数据存储库应该足够灵活,可以从客户已使用的任何潜在分析工具中访问。
网络到代码通过Telegraf和InfluxDB找到了遥测数据收集和存储的解决方案。
使用Telegraf收集遥测数据
Telegraf是一个开源的、插件驱动的服务器代理,用于从众多来源收集指标和事件。网络到代码的数据收集管道看起来是这样的
网络到代码选择Telegraf的一些主要好处
易于部署
Telegraf作为一个单独的二进制文件部署,没有外部依赖。这很重要,因为网络到代码需要在客户硬件上运行他们的指标收集器,他们无法保证环境将是什么样子。Telegraf简化了部署过程,从而加快了新客户的上线速度。
超过250个输入插件
对于网络到代码,Telegraf的另一个优点是开源社区,该社区已创建了超过250个输入插件。这意味着网络到代码不必重新发明轮子,因为已经存在用于收集客户使用的几乎每个工具或网络协议的插件的插件。
内置数据处理
除了输入和输出插件之外,Telegraf还提供创建“处理器”插件的能力,这些插件可以在数据存储之前对其进行转换或增强。这些插件使网络到代码能够使用他们熟悉的工具,如Python和正则表达式,在数据存储之前重命名字段、标准化数据、丰富数据或在飞行中修改数据,而无需在他们的管道中添加额外步骤。
可扩展
使用Telegraf的最后一个好处是可扩展性。虽然Telegraf可以作为处理所有传入硬件指标的单一实例部署,但网络到代码选择为每个客户硬件部署一个Telegraf实例。这使得他们的整个设置更可靠、可扩展,同时还可以在不影响其他任何地方的指标收集的情况下,更新单个机器的配置。
使用InfluxDB存储和分析遥测数据
网络到代码系统还需要一个数据库来存储由Telegraf收集和转换后的遥测数据。InfluxDB是一个自然的选择,因为它专为存储他们将要存储的时间序列度量数据而设计。网络到代码从使用InfluxDB中看到的一些主要好处
查询性能
InfluxDB是一个时间序列数据库,这意味着它从一开始就是为了处理时间序列数据而设计的。与使用标准关系型数据库相比,像获取特定时间范围内的所有度量值这样的常见查询更快、更高效。
数据可视化
能够可视化和使数据易于理解是使用InfluxDB为网络到代码提供的一个额外好处。许多流行的仪表盘工具,如Grafana,提供与InfluxDB的直接集成,以便创建数据可视化。如果您想使用您选择的编程语言和图表库添加自定义图表和仪表盘,InfluxDB还提供通过REST API直接访问数据。
降低存储成本
作为一个专业的时间序列数据库,InfluxDB可以对传入数据的结构做出假设。这意味着InfluxDB可以使用各种压缩算法来减小存储数据的体积。当存储PB级遥测数据时,这可以带来显著的成本节约。对于网络到代码来说,这意味着他们的客户可以用更少的钱存储更多的历史数据,这意味着他们可以做出更明智的决策。
自动化工作流程
InfluxDB提供了一个集成的任务和警报系统,可用于自动化许多监控任务。可以安排查询在定义的时间间隔运行,如果结果超出某个阈值,则可以向值班工程师发送警报以采取行动。
结论
通过使用Telegraf和InfluxDB,网络到代码能够快速高效地为他们的客户提供遥测监控解决方案。这使他们能够更快地行动,一旦他们设置了遥测监控并收集业务洞察,就可以开始为他们的客户提供真正有价值的贡献。这些数据可以用来更快地应对故障,通过识别硬件过度配置的情况来削减成本,并允许网络工程团队能够有信心部署,确保他们对其基础设施有全面的可观察性。