Amazon Data Firehose
编辑Amazon Data Firehose
编辑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 合作解决。
说明
编辑-
在 Kibana 中安装相关集成
为了充分利用您的数据,请安装 AWS 集成以将索引模板、摄取管道和仪表板加载到 Kibana 中。在 Kibana 中,导航到侧边栏中的 管理 > 集成。通过搜索或浏览目录找到 AWS 集成。
导航到 设置 选项卡,然后单击 安装 AWS 资产。通过单击弹出窗口中的 安装 AWS 来确认。
-
在 Amazon Data Firehose 中创建交付流
登录 AWS 控制台并导航到 Amazon Data Firehose。单击 创建 Firehose 流。使用以下设置配置交付流
选择源和目标
除非您是从 Kinesis 数据流流式传输数据,否则将源设置为直接 PUT(有关数据源的更多详细信息,请参阅设置指南)。
将目标设置为 Elastic。
交付流名称
提供一个有意义的名称,以便您稍后识别此交付流。
目标设置
- 将 Elastic 端点 URL 设置为指向在 Elastic Cloud 中运行的 Elasticsearch 集群。此端点可以在 Elastic Cloud 控制台中找到。例如:https://my-deployment-28u274.es.eu-west-1.aws.found.io。
-
API 密钥应该是一个 Base64 编码的 Elastic API 密钥,可以通过按照 API 密钥下的说明在 Kibana 中创建。如果您使用的是具有“受限权限”的 API 密钥,请务必查看索引权限,以至少为将在此交付流中使用的索引提供“auto_configure”和“write”权限。默认情况下,日志将存储在
logs-awsfirehose-default
索引中,指标将存储在metrics-aws.cloudwatch-default
索引中。因此,Elastic 强烈建议为logs-awsfirehose-default
和metrics-aws.cloudwatch-default
索引赋予“write”权限。 - 我们建议将 内容编码 设置为 GZIP,以提高网络效率。
- 重试持续时间确定 Firehose 在发生错误时继续重试请求的时间。60-300 秒的持续时间应适合大多数用例。
- Elastic 要求 缓冲区大小 为
1MiB
,以避免在缓冲区未压缩时超出 Elasticsearchhttp.max_content_length
设置(通常为 100MB)。 - 建议使用
60s
的默认 缓冲区间隔,以确保 Elastic 中的数据新鲜度。 -
参数
-
Elastic 建议仅在摄取此 Firehose 集成不支持的日志时设置
es_datastream_name
参数。如果未指定此参数,则默认情况下,数据将发送到logs-awsfirehose-default
索引,并且会自动应用此集成中定义的路由规则。请确保使用此es_datastream_name
参数指定的索引具有 API 密钥赋予的适当权限。 - 当使用 CloudWatch 日志订阅筛选器作为 Firehose 数据源时,include_cw_extracted_fields 参数是可选的,可以进行设置。设置为 true 时,将收集订阅筛选器中筛选模式生成的提取字段。设置此参数可能会在每个记录中添加许多字段,并可能显著增加 Elasticsearch 中的数据量。因此,应仔细考虑使用此参数,并且仅在需要提取字段进行特定筛选和/或聚合时使用。
- include_event_original 字段是可选的,仅应用于调试目的。设置为
true
时,每个日志记录都将包含一个名为event.original
的附加字段,其中包含原始(未处理的)日志消息。此参数将增加 Elasticsearch 中的数据量,应谨慎使用。
-
-
将数据发送到 Firehose 交付流
- 日志 有关如何配置各种日志源以将数据发送到 Firehose 交付流的详细信息,请参阅 AWS 文档。
- 指标 有关如何在 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 |
该字段可以包含任何可以表示数据来源的内容。示例包括 |
constant_keyword |
data_stream.namespace |
用户定义的命名空间。命名空间可用于对数据进行分组。许多用户已经以这种方式组织他们的索引,现在数据流命名方案将此最佳实践作为默认设置。许多用户将使用 |
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 |
该字段可以包含任何可以表示数据来源的内容。示例包括 |
constant_keyword |
|
data_stream.namespace |
用户定义的命名空间。命名空间可用于对数据进行分组。许多用户已经以这种方式组织他们的索引,现在数据流命名方案将此最佳实践作为默认设置。许多用户将使用 |
constant_keyword |
|
data_stream.type |
数据流的总体类型。当前允许的值为“logs”和“metrics”。我们预计不久的将来还会添加“traces”和“synthetics”。 |
constant_keyword |
|
start_timestamp |
监控周期开始的日期/时间。 |
date |
变更日志
编辑变更日志
版本 | 详细信息 | Kibana 版本 |
---|---|---|
1.3.1 |
增强 (查看拉取请求) |
8.13.0 或更高版本 |
1.3.0 |
错误修复 (查看拉取请求) 增强 (查看拉取请求) |
8.13.0 或更高版本 |
1.2.0 |
增强 (查看拉取请求) |
8.13.0 或更高版本 |
1.1.0 |
增强 (查看拉取请求) |
8.13.0 或更高版本 |
1.0.0 |
增强 (查看拉取请求) |
8.10.1 或更高版本 |
0.6.0 |
增强 (查看拉取请求) |
— |
0.5.0 |
增强 (查看拉取请求) |
— |
0.4.0 |
增强 (查看拉取请求) |
— |
0.3.0 |
增强 (查看拉取请求) |
— |
0.2.1 |
增强 (查看拉取请求) |
— |
0.2.0 |
增强 (查看拉取请求) |
— |
0.1.0 |
增强 (查看拉取请求) |
— |