Amazon CloudWatch Logs
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

教程:运行和修改示例查询

以下教程帮助您开始使用 CloudWatch Logs Insights。您运行示例查询,然后查看如何修改并重新运行它。

要运行查询,必须已在 CloudWatch Logs 中存储日志。如果您已在使用 CloudWatch Logs 并设置了日志组和日志流,那么您已就绪可以开始了。如果您使用服务(如 AWS CloudTrail、Amazon Route 53、或 Amazon VPC)并且您已设置日志从这些服务转到 CloudWatch Logs,则您也可能已有日志。有关将日志发送到 CloudWatch Logs 的更多信息,请参阅CloudWatch Logs 入门

CloudWatch Logs Insights 中的查询从日志事件中返回一组字段,或返回对日志事件执行的数学聚合或其他操作的结果。本教程演示了一个查询,该查询返回您的日志事件列表。

运行示例查询

首先运行一个示例查询。

运行 CloudWatch Logs Insights 示例查询

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

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

    屏幕顶部附近是查询编辑器。当您首次打开 CloudWatch Logs Insights 时,此框包含一个默认查询,该查询将返回 20 个最新的日志事件。

  3. 在查询编辑器上方选择要查询的日志组。

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

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

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

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

修改示例查询

在本教程中,您将修改示例查询以显示 50 个最新的日志事件。

如果您尚未运行上一教程,请立即运行。本教程开始于前一教程结束的位置。

注意

随 CloudWatch Logs Insights 提供的一些示例查询使用 headtail 命令,而非 limit。这些命令现正被弃用并已替换为 limit。使用 limit,而非 headtail in all queries you write.

修改 CloudWatch Logs Insights 示例查询

  • 在查询编辑器中,将 20 更改为 50。选择 Run query (运行查询)

    显示新查询的结果。假设在默认时间范围内日志组中有足够的数据,则现在将列出 50 个日志事件。

将筛选命令添加到示例查询

本教程说明如何在查询编辑器中对查询进行更有效的更改。在本教程中,您将基于检索的日志事件中的某个字段筛选上一个查询的结果。

如果您尚未运行前面的教程,请立即运行。本教程开始于前一教程结束的位置。

将筛选命令添加到前一查询

  1. 确定要筛选的字段。要查看特定日志事件中包含的字段,请选择该行左侧的箭头。Discovered fields (发现的字段) 区域显示 CloudWatch Logs 在由此日志组在过去 15 分钟内收到的日志事件中检测到的最常见字段,以及每个字段在其中出现的这些日志事件的百分比。如果您没有看到 Discovered fields (发现的字段),则选择屏幕右上角附近的左箭头以打开右侧面板。

    awsRegion 字段可能会显示在您的日志事件中,具体取决于日志中的事件。对于本教程的其余部分,您使用 awsRegion 作为筛选字段,但如果该字段不可用,则可以使用不同的字段。

  2. 在查询编辑器框中,将光标放在 50 之后,然后按 Enter。

  3. 在新行上,首先键入 |(竖线字符)和一个空格。必须用竖线字符分隔 CloudWatch Logs Insights 查询中的命令。

  4. 键入 filter awsRegion="us-east-1"

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

    此查询再次运行,现在将显示与新筛选器匹配的 50 个最新结果。

    如果您筛选不同的字段并获得错误结果,则您可能需要对字段名称进行转义。如果字段名称包含非字母数字字符,则必须在字段名称前后放入反勾号字符 (`)。例如,`error-code`="102"

    使用 ` 字符对于包含非字母数字字符的字段是必需的,但对于值则不是必需的。值始终包含在双引号 (") 中。

CloudWatch Logs Insights 包含强大的查询能力,包括若干命令和对于正则表达式、数学和统计操作的支持。有关更多信息,请参阅 CloudWatch Logs Insights 查询语法