使用日志见解分析 CloudWatch 日志 - Amazon Kinesis Data Analytics
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用日志见解分析 CloudWatch 日志

按照上一节所述向应用程序添加 CloudWatch 日志记录选项后,您可以使用 Lo CloudWatch gs Insights 查询日志流中是否存在特定事件或错误。

CloudWatch 您可以使用 Logs Insights,通过交互方式搜索并分析 Log CloudWatch s 中的日志数据。

有关开始使用 Lo CloudWatch gs Insights 的信息,请参阅使用 Logs Insights 分析 CloudWatch 日志数据

运行示例查询

本节介绍如何运行示例 CloudWatch Logs Insights 查询。

先决条件

  • 在 Logs 中设置的现有日志组和 CloudWatch 日志流。

  • 存储在 Logs 中的现有 CloudWatch 日志。

如果您使用服务(如Amazon CloudTrail、Amazon Route 53 或 Amazon VPC),则您可能已将日志设置为从这些服务转到 Logs,您可能已将日志设置为从这些服务转到 CloudWatch Logs,有关将事件发送到 Lo CloudWatch gs 的更多信息,请参阅 CloudWatch 日志入门

Lo CloudWatch gs Insights Insights Insights 中的查询返回日志事件中的一组字段,或返回对日志事件执行的数学聚合或其他运算的结果。本节说明了一个返回一组日志事件的查询。

运行 CloudWatch Logs Insights 示例查询
  1. 通过 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 主机。

  2. 在导航窗格中,选择 Insights

  3. 屏幕顶部附近的查询编辑器包含一个默认查询,它返回 20 个最近的日志事件。在查询编辑器上方,选择一个要查询的日志组。

    当您选择日志组时,Logs Insights Insights Insights Insights Insightsights s(发现的字段),并将其显示在右侧窗格 CloudWatch 它还显示此日志组中的日志事件随时间变化的条形图。该条形图显示与您的查询和时间范围匹配的日志组中的事件分布情况,而不仅仅是表中显示的事件。

  4. 选择 Run query (运行查询)

    显示此查询的结果。在本示例中,结果是任何类型的最新 20 个日志事件。

  5. 要查看某个返回的日志事件的所有字段,请选择该日志事件左侧的箭头。

有关如何运行和修改 CloudWatch Logs Insights 查询的更多信息,请参阅运行和修改示例查询

示例查询

本部分包含 CloudWatch 用于分析 Kinesis Data Analytics 应用程序日志的 Logs Insights 示例查询。这些查询搜索一些示例错误情况,并作为模板以编写查找其他错误情况的查询。

注意

将以下查询示例中的区域 (us-west-2)、账户 ID (012345678901 YourApplication) 和应用程序名称 () 替换为应用程序的区域和账户 ID。

分析操作:分配任务

以下 L CloudWatch ogs Insights 查询返回 Apache Flink Job 管理器在任务管理器之间分配的任务数量。您需要设置查询的时间范围以与某个作业运行匹配,以便查询不会返回以前作业的任务。有关并行度的更多信息,请参阅扩缩 生产准备就绪

fields @timestamp, message | filter message like /Deploying/ | parse message " to flink-taskmanager-*" as @tmid | stats count(*) by @tmid | sort @timestamp desc | limit 2000

以下 CloudWatch Logs Insights 查询返回分配给每个任务管理器的子任务。子任务总数是每个任务的并行度的总和。任务并行度来自于操作符并行度,默认情况下,它与应用程序的并行度相同,除非您在代码中指定 setParallelism 以对其进行更改。有关设置运算符并行度的更多信息,请参阅 Apache Flink 文档中的设置并行度:运算符级别

fields @timestamp, @tmid, @subtask | filter message like /Deploying/ | parse message "Deploying * to flink-taskmanager-*" as @subtask, @tmid | sort @timestamp desc | limit 2000

有关任务调度的更多信息,请参阅 Apache Flink 文档中的作业和调度

分析操作:更改并行度

以下 CloudWatch Logs Insights 查询返回应用程序并行度的更改(例如,由于自动扩展)。该查询还会返回对应用程序并行度的手动更改。有关自动扩展的更多信息,请参阅自动扩展

fields @timestamp, @parallelism | filter message like /property: parallelism.default, / | parse message "default, *" as @parallelism | sort @timestamp asc

分析错误:访问被拒绝

以下 CloudWatch Logs Insights 查询返回Access Denied日志。

fields @timestamp, @message, @messageType | filter applicationARN like /arn:aws:kinesisanalytics:us-west-2:012345678901:application\/YourApplication/ | filter @message like /AccessDenied/ | sort @timestamp desc

分析错误:找不到源或接收器

以下 CloudWatch Logs Insights 查询返回ResourceNotFound日志。 ResourceNotFound如果找不到 Kinesis 源或接收器,则会记录结果。

fields @timestamp,@message | filter applicationARN like /arn:aws:kinesisanalytics:us-west-2:012345678901:application\/YourApplication/ | filter @message like /ResourceNotFoundException/ | sort @timestamp desc

分析错误:应用程序的任务相关故障

以下 L CloudWatch ogs Insights 查询返回应用程序与任务相关的故障日志。如果应用程序的状态从RUNNING切换为,则会生成这些日志RESTARTING

fields @timestamp,@message | filter applicationARN like /arn:aws:kinesisanalytics:us-west-2:012345678901:application\/YourApplication/ | filter @message like /switched from RUNNING to RESTARTING/ | sort @timestamp desc

对于使用 Apache Flink 版本 1.8.2 及更早版本的应用程序,与任务相关的故障将导致应用程序状态从FAILEDRUNNING为切换。使用 Apache Flink 1.8.2 及更早版本时,使用以下查询来搜索与应用程序任务相关的故障:

fields @timestamp,@message | filter applicationARN like /arn:aws:kinesisanalytics:us-west-2:012345678901:application\/YourApplication/ | filter @message like /switched from RUNNING to FAILED/ | sort @timestamp desc