本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用订阅实时处理日志数据
您可以使用订阅来访问来自 CloudWatch 日志的实时日志事件源,并将其传输到其他服务,例如 Amazon Kinesis 流、Amazon Data Firehose 流,或者 AWS Lambda 用于自定义处理、分析或加载到其他系统。当将录入事件发送到接收它们的服务时,它们会经过 base64 编码并使用 gzip 格式进行压缩。
要开始订阅日志事件,请创建用于接收事件的接收资源,例如 Kinesis Data Streams 流。订阅筛选器定义了筛选器模式,用于筛选哪些日志事件会传递到您的 AWS 资源,以及有关将匹配的日志事件发送到何处的信息。日志事件在摄取后不久(通常不到三分钟)就会发送到接收资源。
注意
如果订阅的日志组使用日志转换,则会将筛选模式与日志事件的转换版本进行比较。有关更多信息,请参阅 在摄取期间转换日志。
您可以在账户级别和日志组级别创建订阅。每个账户可以有一个账户级别订阅筛选条件。每个日志组最多只能有两个与其关联的订阅筛选条件。
注意
如果目标服务返回可重试的错误,例如限制异常或可重试的服务异常(例如 HTTP 5xx),则 Logs 将在长达 24 小时内继续 CloudWatch 重试传送。 CloudWatch 如果错误是不可重试的错误(例如或),则日志不会尝试重新传送。 AccessDeniedException ResourceNotFoundException在这些情况下,订阅筛选器最多会被禁用 10 分钟,然后 CloudWatch Logs 会重试向目标发送日志。在此禁用期间,将跳过日志。
CloudWatch 日志还会生成有关将日志事件转发给订阅的 CloudWatch 指标。有关更多信息,请参阅 使用 CloudWatch 指标进行监控。
您还可以使用 CloudWatch 日志订阅将日志数据近乎实时地流式传输到 Amazon S OpenSearch ervice 集群。有关更多信息,请参阅将 CloudWatch 日志数据流式传输到 Amazon OpenSearch 服务。
仅标准日志类中的日志组支持订阅。有关日志类的更多信息,请参阅 日志类。
注意
订阅筛选条件可能会批量记录事件以优化传输并减少对目的地的调用量。不保证使用批处理,但会尽可能地使用。
概念
每个订阅筛选条件都由以下关键元素组成:
- 筛选条件模式
-
对 CloudWatch 日志应如何解释每个日志事件中的数据的符号描述,以及限制传送到目标 AWS 资源的内容的筛选表达式。有关筛选条件模式语法的更多信息,请参阅 指标筛选条件、订阅筛选条件、筛选日志事件和 Live Tail 的筛选条件模式语法。
- 目标 ARN
-
您要用作订阅源目标的 Kinesis Data Streams 流、Firehose 流或 Lambda 函数的亚马逊资源名称 (ARN)。
- 角色 ARN
-
一个IAM角色,它授 CloudWatch 予 Logs 将数据放入所选目标所需的权限。Lambda 目标不需要此角色,因为 CloudWatch 日志可以从 Lambda 函数本身的访问控制设置中获得必要的权限。
- 分配
-
当目标是 Amazon Kinesis Data Streams 流中的流时,用于将日志数据分配到目标的方法。默认情况下,日志数据按日志流进行分组。为了实现更均匀的分配,您可以对日志数据进行随机分组。
对于日志组级别的订阅,还包括下面的关键元素:
- 日志组名称
-
要将订阅筛选条件关联到的日志组。上传到此日志组的所有日志事件都受订阅筛选条件的约束,与该筛选条件匹配的日志事件将被传输到接收匹配日志事件的目标服务。
对于账户级别的订阅,还包括下面的关键元素:
- 选择标准
-
用于选择哪些日志组应用了账户级别订阅筛选条件的标准。如果不指定此元素,则账户级别订阅筛选条件将应用于账户中的所有日志组。此字段用于防止无限日志循环。有关无限日志循环问题的更多信息,请参阅日志 防止日志递归。
选择标准的大小限制为 25 KB。