使用 Elastic Serverless Forwarder 监控 Amazon Web Services (AWS)

编辑

使用 Elastic Serverless Forwarder 监控 Amazon Web Services (AWS)

编辑

Elastic Serverless Forwarder (ESF) 是一个 Amazon Web Services (AWS) Lambda 函数,用于将 AWS 环境中的日志发送到 Elastic。Elastic Serverless Forwarder 发布在 AWS Serverless Application Repository (SAR) 中。有关 ESF 的更多信息,请查看 Elastic Serverless Forwarder 指南

您将学到什么
编辑

在本教程中,您将学习如何:

  • 启用 AWS VPC 流日志发送到您的 S3 存储桶
  • 为 VPC 流日志创建 SQS 队列和通知
  • 从 Kibana 安装和配置 Elastic AWS 集成
  • 在 Elastic Stack 中可视化和分析 AWS 日志
开始之前
编辑

使用我们在 Elastic Cloud 上托管的 Elasticsearch Service 创建一个部署。该部署包括一个用于存储和搜索数据的 Elasticsearch 集群,以及一个用于可视化和管理数据的 Kibana。Elastic Serverless Forwarder 适用于 Elastic Stack 7.17 及更高版本。您还需要一个具有从 AWS 获取必要数据权限的 AWS 账户。

步骤 1:创建一个 S3 存储桶来存储 VPC 流日志
编辑
  1. AWS S3 控制台中,从左侧导航窗格中选择创建存储桶
  2. 指定您要部署的 AWS 区域。
  3. 输入存储桶名称。

有关更多详细信息,请参阅 Amazon 关于如何创建您的第一个 S3 存储桶的文档。

步骤 2:启用 AWS VPC 流日志发送到您的 S3 存储桶
编辑
  1. Amazon EC2 控制台中,从左侧导航窗格中选择网络接口
  2. 选择您要使用的网络接口。
  3. 操作下拉菜单中,选择创建流日志
  4. 对于目标,选择发送到 S3 存储桶
  5. 对于S3 存储桶 ARN,输入您在上一步中创建的 S3 存储桶的名称。

有关更多详细信息,请参阅 Amazon 关于如何创建发布到 Amazon S3 的流日志的文档。

步骤 3:为 VPC 流日志创建 SQS 队列和通知
编辑

Amazon Simple Queue Service (SQS) 在 Amazon S3 上的事件通知充当 Lambda 函数的触发器。当一个新的日志文件写入到 Amazon S3 存储桶并满足条件时,会生成一个触发 Lambda 函数的通知。

  1. SQS 控制台中,创建一个使用默认设置的标准 SQS 队列。

    确保为您要用作触发器的任何 SQS 队列设置 910 秒的可见性超时。这比 Elastic Serverless Forwarder Lambda 超时时间长 10 秒。如果未满足此要求,CloudFormation 将抛出错误。

  2. 高级设置中,修改 JSON 访问策略以定义应将哪些 S3 ObjectCreated 事件发送到队列。这是一个 JSON 文件的示例

    {
      "Version": "2008-10-17",
      "Id": "__default_policy_ID",
      "Statement": [
        {
          "Sid": "__owner_statement",
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::627286350134:root"
          },
          "Action": "SQS:*",
          "Resource": "arn:aws:sqs:eu-central-1:627286350134:vpc-flow-logs-docs-queue"
        },
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "s3.amazonaws.com"
          },
          "Action": "SQS:SendMessage",
          "Resource": "arn:aws:sqs:eu-central-1:627286350134:vpc-flow-logs-docs-queue"
        }
      ]
    }
  3. 转到包含 VPC 流日志的 S3 存储桶的属性,并启用事件通知。

有关更多详细信息,请参阅 AWS 关于如何配置存储桶以进行通知的文档。

步骤 4:安装 Elastic AWS 集成
编辑

Kibana 提供了预构建的仪表板、摄取节点配置和其他资产,可帮助您最大程度地利用您摄取的日志。

  1. 在主菜单中找到集成或使用全局搜索字段
  2. 搜索 AWS。
  3. 单击 AWS 集成,选择设置,然后单击安装 AWS 资产以安装所有 AWS 集成资产。
步骤 5:创建一个新的 S3 存储桶来存储配置文件
编辑

请注意,您可以存储多个配置文件。

  1. AWS S3 控制台中,单击创建存储桶。为存储桶指定一个名称,并指定您要部署的区域。

    请确保您在与包含 VPC 流日志的存储桶相同的区域中创建 S3 存储桶。

步骤 6:创建一个配置文件来指定源和目标
编辑

Elastic Serverless Forwarder 使用配置文件来了解输入源和目标信息的 Elastic 连接。

  1. 在 Elastic Cloud 中,从 AWS 集成页面单击右上角的连接详细信息并复制您的 Cloud ID。
  2. 创建一个用于身份验证的编码 API 密钥。

    您将从配置文件中引用 Cloud ID 和新创建的 API 密钥。这是一个示例

    inputs:
      - type: "s3-sqs"
        id: "<your-sqs-queue-arn>"
        outputs:
          - type: "elasticsearch"
            args:
              cloud_id: "<your-cloud-id>"
              api_key: "<your-api-key>>"
  3. 将您刚创建的配置文件上传到您在步骤 5 创建的 S3 存储桶。
步骤 7:将 VPC 流日志摄取到 Elastic
编辑

从 AWS SAR 部署 Elastic Serverless Forwarder,并为 Lambda 函数提供适当的配置,以开始将 VPC 流日志摄取到 Elastic 中。

  1. 从 Lambda 控制台中选择应用程序,然后单击创建应用程序
  2. 无服务器应用程序选项卡中,选择elastic-serverless-forwarder
  3. 查看、配置和部署页面上,填写以下字段

    • ElasticServerlessForwarderS3Buckets:指定您在步骤 1 创建的 S3 存储桶的 ARN,VPC 流日志将发送到该存储桶。
    • ElasticServerlessForwarderS3ConfigFile:指定配置文件的 URL,格式为“s3://bucket-name/config-file-name”。
    • ElasticServerlessForwarderS3SQSEvents:指定用作 Lambda 函数触发器的 S3 SQS 通知队列。该值是您在步骤 3 中创建的 SQS 队列的 ARN。

Lambda 部署使用上述值来创建最少的 IAM 策略,并为 Lambda 函数设置环境变量以正确执行。部署的 Lambda 将读取写入 S3 存储桶的 VPC 流日志文件,并将其发送到 Elastic。

步骤 8:可视化 AWS 日志
编辑

导航到 Kibana 以查看您的日志在 [Logs AWS] VPC 流日志概览仪表板中被解析和可视化。