

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

# 开始使用 Logs Insights QL：查询教程
<a name="CWL_AnalyzeLogData_Tutorials"></a>

以下各部分包括示例查询教程，可帮助您开始使用 Logs Insights QL。

**Topics**
+ [教程：运行和修改示例查询](CWL_AnalyzeLogData_RunSampleQuery.md)
+ [教程：使用聚合函数运行查询](CWL_AnalyzeLogData_AggregationQuery.md)
+ [教程：运行生成按日志字段分组的可视化的查询](CWL_AnalyzeLogData_VisualizationFieldQuery.md)
+ [教程：运行生成时间序列可视化的查询](CWL_AnalyzeLogData_VisualizationQuery.md)

# 教程：运行和修改示例查询
<a name="CWL_AnalyzeLogData_RunSampleQuery"></a>

以下教程可帮助您开始使用 Log CloudWatch s Insights。您可以在 Logs Insights QL 中运行示例查询，然后了解如何修改并重新运行它。

要运行查询，您必须已经在日志中存储了 CloudWatch 日志。如果您已经在使用 CloudWatch 日志，并且已经设置了日志组和日志流，则可以开始使用了。如果您使用诸如 AWS CloudTrail Amazon Route 53 或 Amazon VPC 之类的服务，并且已将这些服务的日志设置为进入日志，则可能已经有 CloudWatch 日志。有关向 Logs 发送 CloudWatch 日志的更多信息，请参阅[CloudWatch 日志入门](CWL_GettingStarted.md)。

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

## 运行示例查询
<a name="CWL_AnalyzeLogData_RunQuerySample"></a>

**运行 L CloudWatch ogs Insights 示例查询**

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 在导航窗格中，选择 **Logs**（日志），然后选择 **Logs Insights**（日志洞察）。

   在 **Logs Insights** 页面上，查询编辑器包含 Logs Insights QL 中的一个默认查询，它将返回 20 个最近的日志事件。

1. 在**选择日志组**下拉菜单中，选择要查询的一个或多个日志组。

    如果这是 CloudWatch 跨账户可观察性的监控账户，则可以在源账户和监控账户中选择日志组。单个查询可以同时查询来自不同账户的日志。

   您可以按日志组名称、账户 ID 或账户标签筛选日志组。

   当您选择标准日志类中的日志组时， CloudWatch Logs Insights 会自动检测该组中的数据字段。要查看这些搜索到的字段，请选择页面右上方的 **Fields**（字段）菜单。
**注意**  
仅标准日志类中的日志组支持已发现字段。有关日志类的更多信息，请参阅 [日志类](CloudWatch_Logs_Log_Classes.md)。

1. （可选）使用时间间隔选择器选择要查询的时间段。

   您可以选择 5 到 30 分钟的间隔；1、3 和 12 小时间隔；或者自定义时间范围。

1. 选择 **Run**（运行）以查看结果。

   在本教程中，结果包括 20 个最近添加的日志事件。

   CloudWatch 日志显示一段时间内日志组中日志事件的条形图。该条形图显示日志组中与查询和时间范围匹配的事件分布情况，而不仅仅是表中显示的事件。

1. 要查看返回的日志事件的所有字段，请选择编号事件左侧的三角形下拉图标。

## 修改示例查询
<a name="CWL_AnalyzeLogData_ModifySampleQuery"></a>

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

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

**注意**  
L CloudWatch ogs Insights 中提供的一些示例查询使用`head`或`tail`命令代替`limit`。这些命令现正被弃用并已替换为 `limit`。在写入的所有查询中使用 `limit` 而非 `head` 或 `tail`。

**修改 “ CloudWatch 日志见解” 示例查询**

1. 在查询编辑器中，将 **20** 更改为 **50**，然后选择 **Run（运行）**。

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

1. （可选）您可以保存已创建的查询。要保存此查询，请选择 **Save（保存）**。有关更多信息，请参阅 [保存并重新运行 Logs Insig CloudWatch hts 查询](CWL_Insights-Saving-Queries.md)。

## 将筛选命令添加到示例查询
<a name="CWL_AnalyzeLogData_FilterQuery"></a>

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

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

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

1. 确定要筛选的字段。要查看过去 15 分钟内 CloudWatch 日志在所选日志组中包含的日志事件中检测到的最常见**字**段，以及每个字段出现在这些日志事件中的百分比，请选择页面右侧的字段。

   要查看特定日志事件中包含的字段，请选择该行左侧的图标。

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

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

1. 在新行上，首先输入 \$1（竖线字符）和一个空格。L CloudWatch ogs Insights 查询中的命令必须用竖线字符分隔。

1. 输入 **filter awsRegion="us-east-1"**。

1. 选择**运行**。

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

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

   必须将反引号字符用于包含非字母数字字符的字段名称，但不能用于值。值始终包含在引号（"）中。

Logs Insights QL 包含强大的查询能力，包括若干命令和对于正则表达式、数学和统计运算的支持。有关更多信息，请参阅 [CloudWatch 日志见解语言查询语法](CWL_QuerySyntax.md)。

# 教程：使用聚合函数运行查询
<a name="CWL_AnalyzeLogData_AggregationQuery"></a>

您可以通过 `stats` 命令使用聚合函数并将其用作其他函数的参数。在本教程中，您会运行一个查询命令，该命令将计算包含指定字段的录入事件的数量。查询命令返回按指定字段的一个值或多个值分组的总计数。有关聚合函数的更多信息，请参阅 *Amazon L CloudWatch ogs 用户指南*中[支持的操作和函数](https://docs.aws.amazon.com/en_us/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html#CWL_QuerySyntax-operations-functions)。

**使用聚合函数运行查询**

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 在导航窗格中，选择 **Logs**（日志），然后选择 **Logs Insights**（日志洞察）。

1. 确认已选中 **Logs Insights QL** 选项卡。

1. 在**选择日志组**下拉菜单中，选择要查询的一个或多个日志组。

    如果这是 CloudWatch 跨账户可观察性的监控账户，则可以在源账户和监控账户中选择日志组。单个查询可以同时查询来自不同账户的日志。

   您可以按日志组名称、账户 ID 或账户标签筛选日志组。

   选择日志组时，如果日志组是标准类 CloudWatch 日志组，Logs Insights 会自动检测该日志组中的数据字段。要查看这些搜索到的字段，请选择页面右上方的 **Fields**（字段）菜单。

1. 在查询编辑器中删除原定设置查询，然后输入以下命令：

   ```
   stats count(*) by fieldName
   ```

1. *fieldName*替换为 “字段” 菜单中已发现的**字段**。

   **字段**菜单位于页面的右上角，显示 Logs Insights 在您的 CloudWatch 日志组中检测到的所有已发现字段。

1. 选择 **Run**（运行）以查看查询结果。

   查询结果会显示日志组中与查询命令匹配的记录数以及按指定字段一个值或多个值分组的总计数。

# 教程：运行生成按日志字段分组的可视化的查询
<a name="CWL_AnalyzeLogData_VisualizationFieldQuery"></a>

当您运行的查询使用 `stats` 函数按日志条目中一个或多个字段的值来分组所返回的结果时，您可以使用条形图、饼图、折线图或堆叠面积图来查看结果。这可帮助您更有效地将日志中的趋势可视化。

**运行查询进行可视化**

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 在导航窗格中，选择 **Logs**（日志），然后选择 **Logs Insights**（日志洞察）。

1. 在 **Select log group(s)**（选择日志组）在下拉菜单中，选择要查询的一个或多个日志组。

    如果这是 CloudWatch 跨账户可观察性的监控账户，则可以在源账户和监控账户中选择日志组。单个查询可以同时查询来自不同账户的日志。

   您可以按日志组名称、账户 ID 或账户标签筛选日志组。

1. 在查询编辑器中，删除当前内容，然后输入以下 `stats` 函数并选择 **Run query（运行查询）**。

   ```
   stats count(*) by @logStream 
       | limit 100
   ```

   对于每个日志流，结果显示日志组中的日志事件数量。结果限制为 100 行。

1. 选择**可视化**选项卡。

1. 选择 **Line（折线图）**旁边的箭头，然后选择 **Bar（条形图）**。

   此时将出现条形图，其中显示日志组中各个日志流的条形图。

# 教程：运行生成时间序列可视化的查询
<a name="CWL_AnalyzeLogData_VisualizationQuery"></a>

当您运行使用 `bin()` 函数按时间段对返回的结果进行分组的查询时，您可以使用折线图、堆叠面积图、饼图或条形图来查看结果。这有助于您更有效地将日志事件随时间变化的趋势可视化。

**运行查询进行可视化**

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 在导航窗格中，选择 **Logs**（日志），然后选择 **Logs Insights**（日志洞察）。

1. 确认已选中 **Logs Insights QL** 选项卡。

1. 在**选择日志组**下拉菜单中，选择要查询的一个或多个日志组。

    如果这是 CloudWatch 跨账户可观察性的监控账户，则可以在源账户和监控账户中选择日志组。单个查询可以同时查询来自不同账户的日志。

   您可以按日志组名称、账户 ID 或账户标签筛选日志组。

1. 在查询编辑器中，删除当前内容，然后输入以下 `stats` 函数并选择 **Run query（运行查询）**。

   ```
   stats count(*) by bin(30s)
   ```

   结果显示 Logs 在每 30 秒周期内收到的日志组中 CloudWatch 日志事件的数量。

1. 选择**可视化**选项卡。

   结果显示为折线图。要切换到条形图、饼图或堆叠面积图，请在图形左上角选择 **Line（折线图）**旁边的箭头。