Amazon Data Firehose

编辑

Amazon Data Firehose

编辑

版本

1.3.1 (查看全部)

兼容的 Kibana 版本

8.13.0 或更高版本

支持的无服务器项目类型
这是什么?

安全
可观察性

订阅级别
这是什么?

基本

支持级别
这是什么?

Elastic

Amazon Data Firehose 集成为用户提供了一种将 Firehose 中的日志和 CloudWatch 指标流式传输到 Elastic Cloud 的方法。此集成包括预定义的规则,可自动将 AWS 服务日志和 CloudWatch 指标路由到各自的集成,其中包括字段映射、摄取管道和预定义的仪表板。

以下是此集成支持的日志类型列表

AWS 服务日志 日志目标

API Gateway

CloudWatch

CloudFront

S3

CloudTrail

CloudWatch

ELB

S3

网络防火墙

Firehose、CloudWatch、S3

Route53 公共 DNS

CloudWatch

Route53 解析器

Firehose、CloudWatch、S3

S3 访问

S3

VPC 流

Firehose、CloudWatch、S3

WAF

Firehose、CloudWatch、S3

以下是此集成支持的 CloudWatch 指标列表

AWS 服务监控指标

API Gateway

DynamoDB

EBS

EC2

ECS

ELB

EMR

网络防火墙

Kafka

Kinesis

Lambda

NATGateway

RDS

S3

S3 Storage Lens

SNS

SQS

TransitGateway

用量

VPN

限制

编辑

无法配置交付流以通过 PrivateLink(VPC 端点)将数据发送到 Elastic Cloud。 这是 Firehose 中的当前限制,我们正在与 AWS 合作解决。

说明

编辑
  1. 在 Kibana 中安装相关集成

    为了充分利用您的数据,请安装 AWS 集成以将索引模板、摄取管道和仪表板加载到 Kibana 中。在 Kibana 中,导航到侧边栏中的 管理 > 集成。通过搜索或浏览目录找到 AWS 集成。

    AWS integration

    导航到 设置 选项卡,然后单击 安装 AWS 资产。通过单击弹出窗口中的 安装 AWS 来确认。

    Install AWS assets
  2. 在 Amazon Data Firehose 中创建交付流

    登录 AWS 控制台并导航到 Amazon Data Firehose。单击 创建 Firehose 流。使用以下设置配置交付流

    Amazon Data Firehose

    选择源和目标

    除非您是从 Kinesis 数据流流式传输数据,否则将源设置为直接 PUT(有关数据源的更多详细信息,请参阅设置指南)。

    将目标设置为 Elastic

    交付流名称

    提供一个有意义的名称,以便您稍后识别此交付流。

    Choose Firehose Source and Destination

    目标设置

    1. Elastic 端点 URL 设置为指向在 Elastic Cloud 中运行的 Elasticsearch 集群。此端点可以在 Elastic Cloud 控制台中找到。例如:https://my-deployment-28u274.es.eu-west-1.aws.found.io
    2. API 密钥应该是一个 Base64 编码的 Elastic API 密钥,可以通过按照 API 密钥下的说明在 Kibana 中创建。如果您使用的是具有“受限权限”的 API 密钥,请务必查看索引权限,以至少为将在此交付流中使用的索引提供“auto_configure”和“write”权限。默认情况下,日志将存储在 logs-awsfirehose-default 索引中,指标将存储在 metrics-aws.cloudwatch-default 索引中。因此,Elastic 强烈建议为 logs-awsfirehose-defaultmetrics-aws.cloudwatch-default 索引赋予“write”权限。
    3. 我们建议将 内容编码 设置为 GZIP,以提高网络效率。
    4. 重试持续时间确定 Firehose 在发生错误时继续重试请求的时间。60-300 秒的持续时间应适合大多数用例。
    5. Elastic 要求 缓冲区大小1MiB,以避免在缓冲区未压缩时超出 Elasticsearch http.max_content_length 设置(通常为 100MB)。
    6. 建议使用 60s 的默认 缓冲区间隔,以确保 Elastic 中的数据新鲜度。
    7. 参数

      1. Elastic 建议仅在摄取此 Firehose 集成不支持的日志时设置 es_datastream_name 参数。如果未指定此参数,则默认情况下,数据将发送到 logs-awsfirehose-default 索引,并且会自动应用此集成中定义的路由规则。请确保使用此 es_datastream_name 参数指定的索引具有 API 密钥赋予的适当权限。

        Firehose Destination Settings
      2. 当使用 CloudWatch 日志订阅筛选器作为 Firehose 数据源时,include_cw_extracted_fields 参数是可选的,可以进行设置。设置为 true 时,将收集订阅筛选器中筛选模式生成的提取字段。设置此参数可能会在每个记录中添加许多字段,并可能显著增加 Elasticsearch 中的数据量。因此,应仔细考虑使用此参数,并且仅在需要提取字段进行特定筛选和/或聚合时使用。
      3. include_event_original 字段是可选的,仅应用于调试目的。设置为 true 时,每个日志记录都将包含一个名为 event.original 的附加字段,其中包含原始(未处理的)日志消息。此参数将增加 Elasticsearch 中的数据量,应谨慎使用。
  3. 将数据发送到 Firehose 交付流

    1. 日志 有关如何配置各种日志源以将数据发送到 Firehose 交付流的详细信息,请参阅 AWS 文档
    2. 指标 有关如何在 CloudWatch 中设置指标流以及 使用 Firehose 的自定义设置,以将指标发送到 Firehose 的详细信息,请参阅 AWS 文档。对于 Elastic,我们仅支持指标的 JSON 和 OpenTelemetry 1.0.0 格式。

日志参考

编辑
导出的字段
字段 描述 类型

@timestamp

事件发生的日期/时间。这是从事件中提取的日期/时间,通常表示事件由源生成的时间。如果事件源没有原始时间戳,则此值通常由管道首次收到事件的时间填充。所有事件的必填字段。

date

aws.cloudwatch.log_group

CloudWatch 日志组名称。

keyword

aws.cloudwatch.log_stream

CloudWatch 日志流名称。

keyword

aws.firehose.arn

Firehose ARN。

keyword

aws.firehose.parameters.*

用户在创建 Kinesis Data Firehose 时设置的键值对。这些参数包含在每个 HTTP 调用中。

flattened

aws.firehose.request_id

Firehose 请求 ID。

keyword

aws.firehose.subscription_filters

Firehose 请求 ID。

keyword

aws.kinesis.name

Kinesis 名称。

keyword

aws.kinesis.type

Kinesis 类型。

keyword

data_stream.dataset

该字段可以包含任何可以表示数据来源的内容。示例包括 nginx.accessprometheusendpoint 等。对于其他方面适合但不设置数据集的数据流,我们对数据集值使用“generic”值。event.dataset 的值应与 data_stream.dataset 的值相同。除了上面提到的 Elasticsearch 数据流命名标准外,dataset 值还有其他限制:* 不得包含 - * 长度不得超过 100 个字符

constant_keyword

data_stream.namespace

用户定义的命名空间。命名空间可用于对数据进行分组。许多用户已经以这种方式组织他们的索引,现在数据流命名方案将此最佳实践作为默认设置。许多用户将使用 default 填充此字段。如果未使用值,则将回退到 default。除了上面提到的 Elasticsearch 索引命名标准外,namespace 值还有其他限制:* 不得包含 - * 长度不得超过 100 个字符

constant_keyword

data_stream.type

数据流的总体类型。当前允许的值为“logs”和“metrics”。我们预计不久的将来还会添加“traces”和“synthetics”。

constant_keyword

指标参考

编辑
导出的字段
字段 描述 类型 指标类型

@timestamp

事件发生的日期/时间。这是从事件中提取的日期/时间,通常表示事件由源生成的时间。如果事件源没有原始时间戳,则此值通常由管道首次收到事件的时间填充。所有事件的必填字段。

date

aws..metrics..*

从 Cloudwatch API 查询返回的指标。

object

gauge

aws.cloudwatch.namespace

查询 cloudwatch api 时指定的命名空间。

keyword

aws.dimensions.*

指标维度。

keyword

aws.exporter.arn

指标流 Amazon 资源名称 (ARN)。

keyword

aws.firehose.arn

firehose 流的 Amazon 资源名称 (ARN)。

keyword

aws.firehose.parameters.*

用户在创建 Kinesis Data Firehose 时设置的键值对。这些参数包含在每个 HTTP 调用中。

flattened

aws.firehose.request_id

HTTP 请求不透明 GUID。

keyword

aws.metrics_names_fingerprint

表示指标名称列表指纹的自动生成 ID。对于来自 Firehose 的指标,可能会出现两个文档具有相同的时间戳、维度、命名空间、accountID、exportARN 和区域,但来自两个不同请求的情况。启用 TSDB 后,如果没有 aws.metrics_names_fingerprint 字段,我们将看到缺少文档。

keyword

cloud.account.id

用于在多租户环境中标识不同实体的云帐户或组织 ID。示例:AWS 帐户 ID、Google Cloud ORG ID 或其他唯一标识符。

keyword

cloud.region

此主机、资源或服务所在的区域。

keyword

data_stream.dataset

该字段可以包含任何可以表示数据来源的内容。示例包括 nginx.accessprometheusendpoint 等。对于其他方面适合但不设置数据集的数据流,我们对数据集值使用“generic”值。event.dataset 的值应与 data_stream.dataset 的值相同。除了上面提到的 Elasticsearch 数据流命名标准外,dataset 值还有其他限制:* 不得包含 - * 长度不得超过 100 个字符

constant_keyword

data_stream.namespace

用户定义的命名空间。命名空间可用于对数据进行分组。许多用户已经以这种方式组织他们的索引,现在数据流命名方案将此最佳实践作为默认设置。许多用户将使用 default 填充此字段。如果未使用值,则将回退到 default。除了上面提到的 Elasticsearch 索引命名标准外,namespace 值还有其他限制:* 不得包含 - * 长度不得超过 100 个字符

constant_keyword

data_stream.type

数据流的总体类型。当前允许的值为“logs”和“metrics”。我们预计不久的将来还会添加“traces”和“synthetics”。

constant_keyword

start_timestamp

监控周期开始的日期/时间。

date

变更日志

编辑
变更日志
版本 详细信息 Kibana 版本

1.3.1

增强 (查看拉取请求)
更新关于限制 API 密钥权限的文档

8.13.0 或更高版本

1.3.0

错误修复 (查看拉取请求)
添加 aws.firehose.arn 和 aws.firehose.request_id 字段。

增强 (查看拉取请求)
将 aws.metrics_names_fingerprint 添加到 cloudwatch 指标。

8.13.0 或更高版本

1.2.0

增强 (查看拉取请求)
将 AWS Bedrock 运行时指标添加到 Firehose 重定向。

8.13.0 或更高版本

1.1.0

增强 (查看拉取请求)
为来自 Firehose 的指标添加路由规则。

8.13.0 或更高版本

1.0.0

增强 (查看拉取请求)
将软件包发布为 GA 版本。

8.10.1 或更高版本

0.6.0

增强 (查看拉取请求)
将 Amazon Kinesis Data Firehose 重命名为 Amazon Data Firehose

0.5.0

增强 (查看拉取请求)
将软件包 format_version 更新为 3.0.0。

0.4.0

增强 (查看拉取请求)
为 CloudFront 日志、ELB 日志和 S3 访问日志添加路由规则。

0.3.0

增强 (查看拉取请求)
从数据集名称中删除冗余的 .logs 后缀

0.2.1

增强 (查看拉取请求)
根据日志格式路由 WAF 日志

0.2.0

增强 (查看拉取请求)
添加对路由 API 网关日志的支持

0.1.0

增强 (查看拉取请求)
初始版本