使用订阅实时处理日志数据 - Amazon CloudWatch Logs

使用订阅实时处理日志数据

您可以使用订阅从 CloudWatch Logs 中访问日志事件的实时源,并将其传输到其他服务(如 Amazon Kinesis 流、Amazon Kinesis Data Firehose 流或 AWS Lambda)以进行自定义处理、分析或加载到其他系统中。当将录入事件发送到接收它们的服务时,它们会经过 base64 编码并使用 gzip 格式进行压缩。

要开始订阅日志事件,请创建用于接收事件的接收资源,例如 Kinesis 流。订阅筛选条件定义了筛选条件模式(用于筛选传输到您的AWS资源的日志事件),以及有关匹配日志事件发送目的地的信息。

每个日志组最多只能有两个与其关联的订阅筛选条件。

注意

如果目标服务返回一个可重试错误,如限制异常或可重试服务异常(如 HTTP 5xx),则 CloudWatch Logs 将继续重试传输长达 24 小时。如果错误是不可重试错误(例如 AccessDeniedException 或 ResourceNotFoundException),则 CloudWatch Logs 不会尝试重试传输。

CloudWatch Logs 还会生成有关将日志事件转发到订阅的 CloudWatch 指标。有关更多信息,请参阅 Amazon CloudWatch Logs 指标与维度

概念

每个订阅筛选条件都由以下关键元素组成:

日志组名称

要将订阅筛选条件关联到的日志组。上传到此日志组的所有日志事件都受订阅筛选条件的约束,与该筛选条件匹配的日志事件将被传输到接收匹配日志事件的目标服务。

筛选条件模式

一种符号描述,说明 CloudWatch Logs 应如何解释每个日志事件中的数据以及可限制传输到目标AWS资源的内容的筛选表达式。有关筛选条件模式语法的更多信息,请参阅 筛选条件和模式语法

目标 ARN

要用作订阅源的目标的 Kinesis 流、Kinesis Data Firehose 流或 Lambda 函数的 Amazon Resource Name (ARN)。

角色 ARN

一个 IAM 角色,用于向 CloudWatch Logs 授予将数据放入所选目标所需的必要权限。此角色不适用于 Lambda 目标,因为 CloudWatch Logs 可以通过 Lambda 函数本身的访问控制设置获得必要的权限。

分配

当目标是 Amazon Kinesis 流时,用于将日志数据分配到目标的方法。默认情况下,日志数据按日志流进行分组。为了实现更均匀的分配,您可以对日志数据进行随机分组。