本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用分析日志 CloudWatch 日志分析
在你添加了 CloudWatch 日志记录选项,如上一部分中所述,您可以使用 CloudWatch 记录 Insights 以查询日志流中的特定事件或错误。
CloudWatch 通过使用 Logs Insights,您可以交互地搜索和分析中的日志数据 CloudWatch 日志。
有关入门的信息 CloudWatch 日志分析,请参阅使用 分析日志数据 CloudWatch 日志分析.
运行示例查询
本部分描述如何运行示例 CloudWatch 日志分析查询。
先决条件
-
在中设置了现有的日志组和日志流 CloudWatch 日志。
-
在中存储了现有的日志 CloudWatch 日志。
如果您使用诸如Amazon CloudTrail、Amazon Route 53 或 Amazon VPC,您可能已从这些服务中设置日志以发送到 CloudWatch 日志。有关将日志发送到的更多信息,请参阅 CloudWatch 日志,请参阅入门 CloudWatch 日志.
中的查询 CloudWatch Logs Insightics 返回日志事件中的一组字段,或返回对日志事件执行的数学聚合或其他操作的结果。本节说明了一个返回一组日志事件的查询。
运行 CloudWatch Insight示例查询
打开 CloudWatch 控制台https://console.aws.amazon.com/cloudwatch/
. -
在导航窗格中,选择 Insights。
-
屏幕顶部附近的查询编辑器包含一个默认查询,它返回 20 个最近的日志事件。在查询编辑器上方,选择一个要查询的日志组。
选择日志组时, CloudWatch Logs Insights 会自动检测日志组数据中的字段,并将其显示在发现的字段在右窗格中。它还显示此日志组中的日志事件随时间变化的条形图。该条形图显示与您的查询和时间范围匹配的日志组中的事件分布情况,而不仅仅是表中显示的事件。
-
选择 Run query (运行查询)。
显示此查询的结果。在本示例中,结果是任何类型的最新 20 个日志事件。
-
要查看某个返回的日志事件的所有字段,请选择该日志事件左侧的箭头。
有关如何运行和修改的更多信息 CloudWatch 记录见解查询,请参阅运行和修改示例查询.
示例查询
本节包括 CloudWatch 记录用于分析 Kinesis Data Analytics 应用程序日志的示例查询。这些查询搜索一些示例错误情况,并作为模板以编写查找其他错误情况的查询。
替换区域 (us-west-2)、账户 ID (012345678901) 和应用程序名称 (YourApplication) 和您的账户 ID,包括应用程序的区域和您的账户 ID。
分析操作:分配任务
以下 CloudWatch Logs Insightics 查询返回 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 日志见解查询返回分配给每个任务管理器的子任务。子任务总数是每个任务的并行度的总和。任务并行度来自于操作符并行度,默认情况下,它与应用程序的并行度相同,除非您在代码中指定 setParallelism 以对其进行更改。有关设置运算符并行的更多信息,请参阅设置并行度:操作员级别
fields @timestamp, @tmid, @subtask | filter message like /Deploying/ | parse message "Deploying * to flink-taskmanager-*" as @subtask, @tmid | sort @timestamp desc | limit 2000
有关任务调度的更多信息,请参阅作业和计划
分析操作:并行变化
以下 CloudWatch Logs Insights 查询返回对应用程序并行度的更改(例如,由于自动扩展)。该查询还会返回对应用程序并行度的手动更改。有关自动扩展的更多信息,请参阅自动扩展。
fields @timestamp, @parallelism | filter message like /property: parallelism.default, / | parse message "default, *" as @parallelism | sort @timestamp asc
分析错误:拒绝访问
以下 CloudWatch Insight查询返回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 Insight查询返回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
分析错误:应用程序的任务相关故障
以下 CloudWatch 日志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 及更低版本的应用程序,与任务相关的故障将导致应用程序状态从RUNNING到FAILED相反。使用 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