FactSet 如何在 亚马逊云科技 和本地统一网络监控

作者:M ony Kiem | 202

这是 FactSet、Sreekanth Sarma Vanam(网络工程总监、Saurabh Gadi)、首席系统工程师兼亚马逊云科技解决方案架构师、Mony Kiem和Amit Borulkar的帖子。

用@@ Factset自己的话说:“FactSet为全球成千上万的投资专业人士创建灵活、开放的数据和软件解决方案。这些解决方案可即时访问财务数据和分析,投资者使用这些数据和分析来做出关键决策。在FactSet,我们一直在努力使我们的产品对客户更有价值。”

简介

FactSet 的混合云基础设施(由 亚马逊云科技、美国的数据中心和全球接入点 (PoP) 组成)的快速扩张需要高效而全面的网络监控解决方案。FactSet 的网络工程师负责在所有这些地点之间建立连接,并在它们之间实现最佳延迟。这篇文章探讨了FactSet如何通过实施与基础设施无关的分布式监控系统来应对这一挑战,为其不同场所的网络性能提供了宝贵的见解。

解决方案概述

FactSet 必须确保最佳的网络延迟,并支持其应用程序的高交易性质。在整个 亚马逊云科技 中,FactSet 使用共享的 VPC 拓扑,其中不同的 亚马逊云科技 账户在 亚马逊云科技 组织单位 (OU) 中共享相同的 VPC。我们在下图中显示了这一点(图 1)。

Figure 1: FactSet network and Telegraf agent architecture

图 1:FactSet 网络和 Telegraf 代理架构

网络工程部配置 VPC 并在 VPC 和其他各个 FactSet 场所之间建立连接。在开发、UAT、生产和共享服务环境中也有不同的网络分段。相同的环境分段转换为 亚马逊云科技 Transit Gateway 路由 域,每个域都有自己独特的路由和传播策略。

FactSet 选择了原生 亚马逊云科技 网络监控功能和 开源服务器代理 Telegraf 的 组合。 他们将 Telegraf 服务器代理部署在 亚马逊云科技 区域 、可用区 (AZ) 和数据中心的 亚马逊弹性计算云 (Amazon EC2 ) 实例上,通过 ICMP、HTTP 和 DNS 探测收集网络运行状况指标。通过在所有运营基础设施位置部署代理,FactSet 可以监控每个 亚马逊云科技 区域和可用区内的网络运行状况。这些探测器使FactSet能够监控响应时间和数据包丢失,从而确保其网络基础设施的稳定性。

除T elegraf外 ,F actSet还使用亚马逊CloudW at ch 提供的原生亚马逊云科技网络监控 和 网络管理 器的各种功能来查看亚马逊云科技的全球 基础设施。该解决方案提供一致和统一的监控,可以部署到所有地点,同时还可以在 亚马逊云科技 上提供 VPC 内部/间的可见性。

Telegraf 服务器通过启动和响应探测来监控网络运行状况。以下是所有环境中使用的一些常见探测器/流:

  • 可用区间 — Telegraf 启动 ICMP 探测以测量在不同可用区中运行的 EC2 实例之间的响应时间和数据包。
  • VPC 间 — Telegraf 启动 ICMP 探测以测量同一 亚马逊云科技 区域共享服务环境中实例的响应时间和数据包丢失情况。这些流量穿过公交网关,为穿过交通网关的网络运行状况提供指示。
  • 区域间 — Telegraf 启动 ICMP 探测以测量其他 亚马逊云科技 区域的响应时间和数据包丢失目标实例。这些流量通过 Transit Gateway 区域间对等连接,表明区域之间的网络运行状况。
  • 混合云 — Telegraf 针对该地区以外的各种目标启动 ICMP、HTTP 和 DNS 探测。这些流量穿过 亚马逊云科技 Direct Connect 网 关、传输网关和直接连接虚拟接口 (VIF),记录整个网络的运行状况。
  • 互联网 — 实例启动各种 ICMP、HTTP 和 DNS 探测,以评估从每个 亚马逊云科技 区域访问互联网的可访问性。这些探测器遍历 FactSet 管理防火墙、NAT 网关和互联网网关 (IGW),确保互联网连接和性能。

解决方案技术堆栈和运营

FactSet 依赖 TICK(Telegraf、Influx DB、Captacions 和 Kibana)堆栈作为其网络监控解决方案。这个 TICK 堆栈提供了一个强大且可扩展的监控架构。作为主要的数据收集器,Telegraf带有内置 插件 ,可帮助配置和捕获各种指标。

  • 输入插件用于捕获插件定义的指标
  • 输出插件用于将指标数据写入各种收集器/目的地

以下是当前 Telegraf 安装所使用的插件:

  • Ping 输入插件 — 此输入插件用于 ping telegraf.conf 文件中指定的各个目的地,并报告 RTT 和损失。FactSet 已将其设置为每秒轮询一次。
  • HTTP 响应输入插件 — 此输入插件用于探测各种 HTTP/s 端点、验证可访问性并根据 200 个 HTTP 响应代码报告 Response_Time。
  • DNS 查询输入登录 — 此输入插件用于查询 telegraf.conf 文件中配置的各种名称,并报告查询状态(成功/失败)和响应时间。
  • HTTP 输出插件 — 此输出插件用于将从前面的输入插件获得的指标数据导出到 monster-data-api(用于收集 Telegraf 指标的内部 API)。

通过 API 提取指标后,数据存储在时间序列数据库 Influx DB 中。然后,使用 Grafana 来表示、查询和分析这些数据,Grafana 是一种开源的可观测性工具 ,允许我们构建仪表板、运行分析和配置警报。网络问题警报和通知与内部通知系统集成在一起。这样可以确保及时沟通。通知通过记录在案的标准操作程序 (SOP) 进行解决,以便快速响应事件。

FactSet 采用持续集成/持续部署 (CI/CD) 流程来确保一致性并减少管理 亚马逊云科技 区域的 Telegraf 配置的运营负担。如下图所示(图 2)。 Telegraf 配置文件在 Git 存储库中管理,更新内置于黄金 AMI 中,更改使用 Webhook 和 亚马逊云科技 Code Build 部署到 EC2 实例。 这种简化的方法可实现跨 亚马逊云科技 区域和环境的无缝高效配置管理。

Figure 2: FactSet Telegraf deployment workflow

图 2:FactSet Telegraf 部署工作流程

观察到的结果

在规则引擎中定义了以下自定义警报:

  • 目标持续一分钟会损失 100% 的 ICMP
  • 在过去 30 分钟内,持续 ICMP 损失超过 5%
  • 在过去 10 分钟内 5 分钟内,与基线的持续偏差超过 50%
  • 任何目标的 HTTP 代码响应均不是 200
  • 针对已配置目标的任何 DNS 查询均为非零的 DNS 响应码

这使得 FactSet 能够迅速检测网络降级事件。自定义警报引擎旨在识别指定时间段内的持续异常情况,有助于消除误报警报并专注于关键网络问题。该解决方案加快了故障排除和问题解决,使FactSet和亚马逊云科技工程团队都受益,并支持未来的迁移。

结论

FactSet 的统一网络监控解决方案结合了 亚马逊云科技 的原生监控功能和 Telegraf 的灵活架构,为网络基础设施的性能和运行状况提供了宝贵的见解。该解决方案的可扩展性、全面的可见性和有效的警报机制改善了事件响应,并有助于识别性能差距。尽管当前的解决方案符合 FactSet 的要求,但设置自动化和部署需要付出足够的努力,以减轻在 EC2 实例上运行软件的运营负担。FactSet 预计,网络性能监控和 亚马逊云科技 Network Manager — 基础设施性能等未来将采用 亚马逊云科技 服务,以减少运营开销、部署弹性全球应用程序并简化新 亚马逊云科技 区域的采用。

贡献者

这篇文章中的内容和观点包括第三方作者的内容和观点,亚马逊云科技 对这篇文章的内容或准确性不承担任何责任。

Sreekanth Sarma Vanam

Sreekanth Sarma Vanam 是 FactSet 的网络工程总监,负责构建高度可用、弹性和低延迟的网络。

索拉布·加迪

索拉布·加迪(Saurabh Gadi)是FactSet的首席系统工程师,专注于在公共云上构建网络基础设施,并开发用于网络监控和可观测性的工具和系统。

Mony Kiem

Mony Kiem 是 亚马逊云科技 的首席解决方案架构师,帮助客户踏上 亚马逊云科技 之旅。他的重点是加快客户在技术和业务方面的现代化进程。

Amit Borulkar

Amit 是 亚马逊云科技 的首席解决方案架构师,致力于帮助客户构建高度弹性和可扩展的云架构,以解决他们的业务问题。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。