使用 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 服务创建一个部署。该部署包括一个用于存储和搜索数据的 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 流日志概述仪表板中解析和可视化的日志。