教程:运行和修改示例查询
以下教程可帮助您开始使用 CloudWatch Logs Insights。您运行示例查询,然后查看如何修改并重新运行它。
要运行查询,CloudWatch Logs 中必须已存储有日志。如果您已在使用 CloudWatch Logs 并设置了日志组和日志流,那么您已准备就绪,可以开始使用它了。如果您使用服务(如 Amazon CloudTrail、Amazon Route 53 或 Amazon VPC)并且您已将日志设置为从这些服务转到 CloudWatch Logs,则您也可能已有日志。有关将事件发送到 CloudWatch Logs 的更多信息,请参阅 开始使用 CloudWatch Logs。
CloudWatch Logs Insights 中的查询返回日志事件中的一组字段,或返回对日志事件执行的数学聚合或其他运算的结果。本教程演示了一个查询,该查询返回您的日志事件列表。
运行示例查询
运行 CloudWatch Logs Insights 示例查询
通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/
。 在导航窗格中,选择 Logs(日志),然后选择 Logs Insights(日志洞察)。
在 Logs Insights(日志洞察)页面,查询编辑器包含一个默认查询,它将返回 20 个最近的日志事件。
在 Select log group(s)(选择日志组)在下拉菜单中,选择要查询的一个或多个日志组。
如果这是 CloudWatch 跨账户可观察性中的监控账户,则您可以在源账户和监控账户中选择日志组。单个查询可以同时查询来自不同账户的日志。
您可以按日志组名称、账户 ID 或账户标签筛选日志组。
选择日志组时,CloudWatch Logs Insights 会自动检测组中的数据字段。要查看这些搜索到的字段,请选择页面右上方的 Fields(字段)菜单。
(可选)使用时间间隔选择器选择要查询的时间段。
您可以选择 5 到 30 分钟的间隔;1、3 和 12 小时间隔;或者自定义时间范围。
-
选择 Run(运行)以查看结果。
在本教程中,结果包括 20 个最近添加的日志事件。
CloudWatch Logs 会显示此日志组中的日志事件随时间变化的条形图。该条形图显示日志组中与查询和时间范围匹配的事件分布情况,而不仅仅是表中显示的事件。
要查看返回的日志事件的所有字段,请选择编号事件左侧的三角形下拉图标。
修改示例查询
在本教程中,您将修改示例查询以显示 50 个最新的日志事件。
如果您尚未运行上一教程,请立即运行。本教程开始于前一教程结束的位置。
注意
随 CloudWatch Logs Insights 提供的一些示例查询使用 head
或 tail
命令,而非 limit
。这些命令现正被弃用并已替换为 limit
。在写入的所有查询中使用 limit
而非 head
或 tail
。
修改 CloudWatch Logs Insights 示例查询
在查询编辑器中,将 20 更改为 50,然后选择 Run(运行)。
显示新查询的结果。假设在默认时间范围内日志组中有足够的数据,则现在将列出 50 个日志事件。
(可选)您可以保存已创建的查询。要保存此查询,请选择 Save(保存)。有关更多信息,请参阅保存并重新运行 CloudWatch Logs Insights 查询。
将筛选命令添加到示例查询
本教程说明如何在查询编辑器中对查询进行更有效的更改。在本教程中,您将基于检索的日志事件中的某个字段筛选上一个查询的结果。
如果您尚未运行前面的教程,请立即运行。本教程开始于前一教程结束的位置。
将筛选命令添加到前一查询
确定要筛选的字段。要查看 CloudWatch Logs 在过去 15 分钟内所选日志组中包含的日志事件内检测到的最常见字段,以及每个字段显示的那些日志事件的百分比,请选择页面右侧的 Fields(字段)。
要查看特定日志事件中包含的字段,请选择该行左侧的图标。
awsRegion 字段可能会显示在您的日志事件中,具体取决于日志中的事件。对于本教程的其余部分,我们使用 awsRegion 作为筛选字段,但如果该字段不可用,则您可以使用其他字段。
在查询编辑器框中,将光标放在 50 之后,然后按 Enter。
在新行上,首先输入 |(竖线字符)和一个空格。必须用竖线字符分隔 CloudWatch Logs Insights 查询中的命令。
输入
filter awsRegion="us-east-1"
。选择 运行。
此查询再次运行,现在将显示与新筛选器匹配的 50 个最新结果。
如果您筛选不同的字段并获得错误结果,则您可能需要对字段名称进行转义。如果字段名称包含非字母数字字符,则必须在字段名称前后放入反引号字符 (`),例如
`error-code`="102"
。必须将反引号字符用于包含非字母数字字符的字段名称,但不能用于值。值始终包含在引号 (") 中。
CloudWatch Logs Insights 包含强大的查询能力,包括若干命令和对于正则表达式、数学和统计运算的支持。有关更多信息,请参阅CloudWatch Logs Insights 查询语法。