快速入门:使用 AWS Firehose 收集数据
Elastic Stack 无服务器
此功能为技术预览版,可能会在未来的版本中更改或删除。Elastic 将努力修复任何问题,但技术预览版中的功能不受正式 GA 功能的支持 SLA 的约束。
在本快速入门指南中,您将学习如何使用 AWS Firehose 将日志和指标发送到 Elastic。
AWS Firehose 流是使用 CloudFormation 模板创建的,该模板可以收集 AWS 帐户的所有可用 CloudWatch 日志和指标。
此方法只需要最少的配置,因为 CloudFormation 模板会创建一个 Firehose 流,启用跨所有命名空间的 CloudWatch 指标收集,并为 CloudWatch 日志组设置一个帐户级别的订阅筛选器,以通过 Firehose 将日志发送到 Elastic。您可以使用 AWS CLI 命令或将模板上传到 AWS CloudFormation 门户来自定义以下参数值
必需的输入参数
ElasticEndpointURL
:Elastic 端点 URL。ElasticAPIKey
:Elastic API 密钥。
可选输入参数
HttpBufferInterval
:Kinesis Firehose HTTP 缓冲区间隔,以秒为单位。默认为60
。HttpBufferSize
:Kinesis Firehose HTTP 缓冲区大小,以 MiB 为单位。默认为1
。S3BackupMode
:Amazon S3 中的源记录备份,仅备份失败数据或所有数据。默认为FailedDataOnly
。S3BufferInterval
:Kinesis Firehose S3 缓冲区间隔,以秒为单位。默认为300
。S3BufferSize
:Kinesis Firehose S3 缓冲区大小,以 MiB 为单位。默认为5
。S3BackupBucketARN
:默认情况下,将创建一个用于备份的 S3 存储桶。您可以通过提供现有 S3 存储桶的 ARN 来覆盖此行为,以确保在记录处理转换未产生预期结果时可以恢复数据。Attributes
:HTTP 端点的属性名称-值对列表,用逗号分隔。例如 "name1=value1,name2=value2"。
指标特定的可选输入参数
EnableCloudWatchMetrics
:启用 CloudWatch 指标收集。默认为true
。启用 CloudWatch 指标收集后,默认情况下将创建一个指标流,其中包含来自所有命名空间的指标。FirehoseStreamNameForMetrics
:用于收集 CloudWatch 指标的 Amazon Data Firehose 流的名称。默认为elastic-firehose-metrics
。IncludeOrExclude
:选择要流式传输的指标。您可以包含或排除特定的命名空间和指标。如果未提供筛选命名空间,则默认为所有命名空间。默认为Include
。MetricNameFilters
:用于筛选流中指标的命名空间-指标名称对的逗号分隔列表。如果未提供指标名称筛选器,则默认为所有命名空间和所有指标。例如 "AWS/EC2:CPUUtilization|NetworkIn|NetworkOut,AWS/RDS,AWS/S3:AllRequests"。IncludeLinkedAccountsMetrics
:如果您在监控帐户中创建指标流,请指定true
以包含来自链接到此监控帐户的源帐户的指标流中的指标。默认为false
。Tags
:要应用于指标流的标签的逗号分隔列表。例如 "org:eng,project:firehose"。
日志特定的可选输入参数
EnableCloudWatchLogs
:启用 CloudWatch 日志收集。默认为true
。启用 CloudWatch 日志收集后,将为所有 CloudWatch 日志组(Firehose 日志创建的日志组除外)创建一个帐户级别的订阅筛选器策略。FirehoseStreamNameForLogs
:用于收集 CloudWatch 日志的 Amazon Data Firehose 流的名称。默认为elastic-firehose-logs
。
某些 AWS 服务需要额外的手动配置才能正确摄取日志和指标。有关更多信息,请查看AWS 集成文档。
AWS Firehose 的数据收集在 AWS、Azure 和 GCP 中的 Elastic Cloud Hosted 部署上受支持。
Elastic Cloud Hosted 部署。该部署包括一个用于存储和搜索数据的 Elasticsearch 集群,以及一个用于可视化和管理数据的 Kibana。
具有
superuser
内置角色或载入数据所需的权限的用户。一个活动的 AWS 帐户和创建交付流所需的必要权限。
默认的 CloudFormation 堆栈是在为用户帐户选择的 AWS 区域中创建的。可以通过 AWS 控制台界面或在创建堆栈时在 AWS CLI 命令中指定 --region
参数来修改此区域。
AWS Firehose 接收器具有以下限制
- 它不支持 AWS PrivateLink。
- 它不适用于本地 Elastic Stack 部署。
- CloudFormation 模板仅检测和摄取单个 AWS 区域内的日志和指标。
下表显示了受支持的 AWS 服务摄取的数据类型
AWS 服务 | 数据类型 |
---|---|
VPC 流日志 | 日志 |
API Gateway | 日志、指标 |
CloudTrail | 日志 |
网络防火墙 | 日志、指标 |
Route53 | 日志 |
WAF | 日志 |
DynamoDB | 指标 |
EBS | 指标 |
EC2 | 指标 |
ECS | 指标 |
ELB | 指标 |
EMR | 指标 |
MSK | 指标 |
Kinesis Data Stream | 指标 |
Lambda | 指标 |
NAT Gateway | 指标 |
RDS | 指标 |
S3 | 指标 |
SNS | 指标 |
SQS | 指标 |
Transit Gateway | 指标 |
AWS 使用量 | 指标 |
VPN | 指标 |
未分类的 Firehose 日志 | 日志 |
在 Kibana 中,转到 Observability UI 并单击 Add Data。
在 What do you want to monitor? 下,选择 Cloud、AWS,然后选择 AWS Firehose。
- 单击 Create Firehose Stream in AWS 以从 CloudFormation 模板创建 CloudFormation 堆栈。
- 返回到 Add Observability Data 页面。
创建一个新的 Elastic Observability Serverless 项目,或者打开一个现有的项目。
在您的 Elastic Observability Serverless 项目中,转到 Add Data。
在 What do you want to monitor? 下,选择 Cloud、AWS,然后选择 AWS Firehose。
- 单击 Create Firehose Stream in AWS 以从 CloudFormation 模板创建 CloudFormation 堆栈。
- 返回到 Add Observability Data 页面。
安装完成后,所有相关数据都流入 Elastic 后,Visualize your data 部分允许您访问各种服务的不同仪表板。

这是一个 VPC 流日志仪表板的示例

有关其他有用功能的描述,请参阅什么是 Elastic 可观测性?。