通过 Amazon Kinesis Data Firehose 将 VPC 流日志传输到亚马逊 OpenSearch 服务

亚马逊虚拟私有云 (Amazon VPC) 流日志使您能够跟踪工作负载进出您的 VPC 中网络接口的 IP 流量。分析 VPC 日志可帮助您了解应用程序如何通过您的 VPC 网络与日志记录进行通信,并充当 VPC 中网络的主要信息来源。收集流日志后,下一步是执行日志分析,以了解用户或应用程序的行为和模式,从而做出明智的决策。您可以使用 亚马逊 OpenSearch Service 等日志分析工具分析日志。

Amazon Kinesis Data Firehose 是一项完全托管的服务,用于将近乎实时的流数据传输 各个目的地进行存储并执行近乎实时的分析。凭借其可扩展的数据转换功能,您还可以将日志处理和日志传输管道简化为单个 Firehose 交付流。

Amazon OpenSear ch S ervice 使您可以轻松地进行交互式日志分析、实时应用程序监控、网站搜索等。亚马逊 OpenSearch 是一个开源的分布式搜索和分析套件。亚马逊 OpenSearch 服务提供最新版本的 OpenSearch,支持 19 个版本的 Elasticsearch(1.5 至 7.10 版本),以及由 OpenSearch 控制面板和 Kibana(1.5 至 7.10 版本)提供支持的可视化功能。Amazon OpenSearch Service目前拥有数万名活跃客户,管理着数十万个集群,每月处理数万亿个请求。

在这篇文章中,您将学习如何使用 Kinesis Data Firehose 提取 VPC 流日志,并使用 OpenSearch 服务控制面板将其发送到亚马逊 OpenSearch 服务进行分析。

解决方案概述

该解决方案使用了流向 Kinesis Data Firehose 的 VPC 流日志的本地集成。我们使用 Firehose 传输流来缓冲流式传输的 VPC 流日志,并将这些日志传输到 OpenSearch 服务目标端点。我们使用 Amazon OpenSearch Service 控制面板为 VPC 流日志创建索引模式,以近乎实时地分析和可视化日志。下图说明了这种架构。

Solution Architecture

我们将引导您完成以下高级步骤:

  1. 创建用于存储和分析 VPC 流日志的 OpenSearch 服务域。
  2. 创建 Firehose 传输流,将流日志传送到 OpenSearch 服务域。
  3. 创建对传输流的 VPC 流日志订阅。
  4. 在 OpenSearch 服务控制面板中浏览 VPC 流日志
    • 使用 OpenSearch 服务用户 创建角色映射到 Kinesis Data Firehose 服务角色。由于我们使用的是 OpenSearch 服务的公共访问域,因此我们必须将交付流 亚马逊云科技 身份和访问管理 (IAM) 角色映射到 OpenSearch 服务主用户,以便将日志批量传输到 OpenSearch 服务域。
    • 在 OpenSearch 服务控制面板中创建索引模式,以支持 VPC 日志的分析和可视化。

先决条件

作为先决条件,您需要创建 亚马逊简单存储服务 (Amazon S3) 存储 桶来存储 Firehose 传输流备份和失败日志。

创建亚马逊 OpenSearch Service 域名

出于演示目的和限制成本,我们创建了一个 OpenSearch Service 域,其 部署类型为 开发和测试 ,并允许公众访问仪表板。有关说明,请参阅 创建亚马逊 OpenSearch Servic e 域名。请注意,我们选择 “ 公开访问 ” 仅用于演示目的。对于生产, 出于 安全 考虑,我们建议使用 VPC 访问

完成后,OpenSearch 服务域显示为 活动状态

OpenSearch Domain

创建 Kinesis Data Firehose 配送流

现在您的亚马逊 OpenSearch Service 域已激活,您可以创建一个 Firehose 传输流,用于流式传输 VPC 流日志。

  1. 在 Amazon Kinesis 控制台上,在导航窗格 中选择 Kinesis Data Firehose ,然后选择 创建 交付流。
  2. 选择 Direct P UT 作为来源,并将目标设置为 亚马逊 OpenSearch Servic e。
  3. 交付直播名称中 ,输入 PUT-OPENSE ARCH-STREAM-DEMO Kinesis Delivery Stream
  4. 目的地设置 部分,选择 浏览 ,然后选择之前创建的亚马逊 OpenSearch Service 域名。
  5. 索引名称 中,输入 vpcflowlogs。
  6. 对于 “ 索引轮换 ” ,选择 “ 每天 ” 。
  7. 在本文中,我们将 缓冲区大小 设置为 5, 将 缓冲间隔 设置为 900。您可以修改这些设置以优化摄取吞吐量和近乎实时的行为。
    Kinesis Stream Destination setting
  1. 备份设置 部分中,对于 Amazon S3 中的 源记录备份 ,选择 “仅限 失败事件”, 这样您就只能保存未能 传送到 Amazon OpenSearch Service 的数据。
  2. 对于 S3 存储桶 ,选择 B row se 并选择您创建的用于存储失败日志和备份的 S3 存储桶。
  3. 或者,您可以为备份文件和错误文件输入前缀。
  4. 数据记录 选择 GZIP 进行 压缩
  5. 对于数据记录的 加密 ,选择 禁用 Kinesis Stream - Backup Setting
  6. 展开 高级设置 ,对于 亚马逊 CloudWatch 错误记录 ,选择 启用。
  7. 选择 创建交付流 Kinesis Stream - Advance Setting

当交付流处于活动状态时,继续执行下一步。

创建 VPC 流日志订阅

现在,您可以为上一步中创建的 Firehose 传输流创建 VPC 流日志订阅。

  1. 在亚马逊 VPC 控制台上,选择 您的 VPC
  2. 选择要为其创建流日志的 VPC。
  3. 在 “ 操作 ” 菜单上,选择 “ 创建流日志 ” 。 VPC Flow Log
  4. 选择 “ 全部 ” 将所有流日志记录发送 到亚马逊 OpenSearch 服务。

如果要筛选流日志,可以选择 “ 接受 ” 或 “ 拒绝 ” 。

  1. 如果您需要流日志数据可用于在 Amazon OpenSearch Service 中进行近乎实时的分析,请在 “ 最大聚合间隔 ” 中选择 10 分钟 或最小设置 1 分钟
  2. 对于 目标 , 如果传输流设置 在您创建 VPC 流日志的同一个账户上,请选择使用同一个账户 发送到 Kinesis Firehos e。
  3. 对于 日志记录格式 ,如果您将其保留为 A WS 的默认格式 ,则流日志将以 版本 2 格式 发送 。

或者,您可以指定需要流日志捕获哪些字段并将其发送到亚马逊 OpenSearch 服务。有关日志格式和可用字段的更多信息,请参阅 流日志记录

  1. 选择 创建流日志 Create VPC Flow Logs

现在让我们浏览亚马逊 OpenSearch Service 中的 VPC 流日志。

在亚马逊 OpenSearch Service 控制面板中浏览 VPC 流日志

在最后一步中,我们设置了 OpenSearch 服务控制面板来浏览 VPC 流日志。

  1. 在 OpenSearch 服务控制台上, 在导航窗格中选择 域名
  2. 选择您创建的域名。
  3. OpenSearch 控制面板 URL 下 ,选择打开新选项卡的链接。 OpenSearch Dashboard
  4. 使用你在 OpenSearch 服务域设置期间创建的用户登录。 OpenSearch Service Dashboard
  5. 在 “选择 租户 ” 中选择 “ 人” ,然后选择 “ 确认 ” 。 OpenSearch Service Dashboard Tenant

由于我们使用了 OpenSearch 服务的公共访问域,因此您需要将为 Firehose 交付流创建的角色映射到 OpenSearch 服务控制面板用户,以便交付流可以将日志批量传送到 OpenSearch 服务域。

  1. 在菜单图标上,选择 “ 安全 ” 。
  2. 选择 角色
  3. 选择 all_acces s 角色。 OpenSearch Service All Access Role
  4. 映射的用户 选项卡上,选择 管理映射 OpenSearch Service Dashboard map role
  5. 对于 后端角色 ,输入为 Firehose 交付流创建的 IAM 角色 ARN。
  6. 选择 “ 地图 ” 。 OpenSearch Service Dashboard Map role arn
  7. 现在映射已完成,请选择菜单图标,然后选择 堆栈管理 OpenSearch Service Dashboard Stack Management
  8. 选择 “ 索引模式 ” ,然后选择 “ 创建索引模式 ” 。
  9. 索引模式名称 中 ,输入 vpc flowlogs*。
  10. 选择 下一步 OpenSearch Service Dashboard Create Index
  11. 导航到 发现 菜单选项。您可以在此控制面板中查看来自您的 VPC 的 VPC 流日志。现在,您可以搜索和可视化流向 OpenSearch Service 域的近乎实时的流日志。
    OpenSearch Service Dashboard Discover

清理

测试此解决方案后,请记住删除您创建的所有资源,以免将来产生费用:

  1. 删除 您的亚马逊 OpenSearch Service 域名。
  2. 删除 V PC 流日志订阅。
  3. 删除 F irehose 配送流。
  4. 删除 VPC 流日志备份和失败日志的 S3 存储桶。
  5. 如果您在 VPC 中创建了新的 VPC 和新资源, 请删除 这些资源和 VPC。

结论

在这篇文章中,我们介绍了一个解决方案,说明如何将 VPC 流日志与 Kinesis Data Firehose 交付流集成,并在不使用代码的情况下将其传送到亚马逊 OpenSearch Service 目的地,并在 OpenSearch 服务控制面板中进行可视化。

试试这种使用 Kinesis Data Firehose 将您的 VPC 流日志发送到亚马逊 OpenSearch Service 的快速而轻松的新方法。


作者简介

Chaitanya Shah 是 亚马逊云科技 的高级技术客户经理,总部设在纽约。他在与企业客户合作方面拥有超过 22 年的经验。他热爱编程,并积极为 亚马逊云科技 解决方案实验室做出贡献,帮助客户解决复杂的问题。他为 亚马逊云科技 客户提供有关 亚马逊云科技 云迁移最佳实践的指导。他还专门研究 亚马逊云科技 数据传输以及数据和分析领域。


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