

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

# 使用筛选条件模式搜索日志数据
<a name="SearchDataFilterPattern"></a>

可以使用 [指标筛选条件、订阅筛选条件、筛选日志事件和 Live Tail 的筛选条件模式语法](FilterAndPatternSyntax.md) 搜索日志数据。您可以搜索日志组中的所有日志流， AWS CLI 也可以使用搜索特定的日志流。每次搜索运行时，都会返回到所找到数据的第一页，并且使用令牌来检索下一页数据或继续搜索。如果没有返回任何结果，可以继续搜索。

您可以设置要查询的时间范围来限制搜索范围。您可以从较大范围开始，看看感兴趣的日志行在何处，然后缩短时间范围在相应时间范围内查看您感兴趣的日志。

您还可以通过从日志提取的指标直接定向至相应日志。

如果您登录的账户设置为 CloudWatch 跨账户可观察性监控账户，则可以搜索和筛选与该监控账户关联的源账户中的日志事件。有关更多信息，请参阅 [CloudWatch 跨账户可观测性](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html)。

## 使用控制台搜索日志条目
<a name="search-log-entries"></a>

您可以使用控制台搜索满足指定条件的日志条目。

**使用控制台搜索日志**

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

1. 在导航窗格中，选择**日志管理**。

1. 对于 **Log Groups**，选择包含要搜索的日志流的日志组的名称。

1. 对于 **Log Streams**，选择要搜索的日志流的名称。

1. 在 **Log events（日志事件）**下，输入要使用的筛选条件语法。

**使用控制台搜索某个时间范围的所有日志条目**

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

1. 在导航窗格中，选择 “**日志管理**”。

1. 对于 **Log Groups**，选择包含要搜索的日志流的日志组的名称。

1. 选择 **Search log group（搜索日志组）**。

1. 对于 **Log events（日志事件）**，请选择日期和时间范围，然后输入筛选条件语法。

## 使用搜索日志条目 AWS CLI
<a name="search-log-entries-cli"></a>

您可以使用搜索符合指定条件的日志条目 AWS CLI。

**要使用搜索日志条目 AWS CLI**  
在命令提示符处，运行以下 [filter-log-events](https://docs.aws.amazon.com/cli/latest/reference/logs/filter-log-events.html) 命令。使用 `--filter-pattern` 将结果限制为指定的筛选条件模式，并使用 `--log-stream-names` 将结果限制为指定的日志流。

```
aws logs filter-log-events --log-group-name my-group [--log-stream-names LIST_OF_STREAMS_TO_SEARCH] [--filter-pattern VALID_METRIC_FILTER_PATTERN]
```

**要使用搜索给定时间范围内的日志条目 AWS CLI**  
在命令提示符处，运行以下[filter-log-events](https://docs.aws.amazon.com/cli/latest/reference/logs/filter-log-events.html)命令：

```
aws logs filter-log-events --log-group-name my-group [--log-stream-names LIST_OF_STREAMS_TO_SEARCH] [--start-time 1482197400000] [--end-time 1482217558365] [--filter-pattern VALID_METRIC_FILTER_PATTERN]
```

## 从指标定向至日志
<a name="pivot-metrics-logs"></a>

您可以从控制台的其他部分转到特定的日志条目。

**从控制面板小部件转到日志**

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

1. 在导航窗格中，选择 **Dashboards（控制面板）**。

1. 选择控制面板。

1. 在小部件上，选择 **View logs** 图标，然后选择 **View logs in this time range**。如果存在多个指标筛选条件，请从列表中选择一个。如果有更多指标筛选条件，超出列表中可以显示的数量，请选择 **More metric filters**，然后选择或搜索指标筛选条件。

**从指标转到日志**

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

1. 在导航窗格中，选择 **Metrics（指标）**。

1. 在 **All metrics（所有指标）**选项卡上的搜索字段中，键入指标的名称，然后按 Enter。

1. 从搜索结果中选择一个或多个指标。

1. 选择 **Actions（操作）**、**View logs（查看日志）**。如果存在多个指标筛选条件，请从列表中选择一个。如果有更多指标筛选条件，超出列表中可以显示的数量，请选择 **More metric filters**，然后选择或搜索指标筛选条件。

## 问题排查
<a name="search-filter-troubleshooting"></a>

**搜索耗时太长**

如果有大量日志数据，搜索可能需要很长时间才能完成。要提高搜索速度，可以执行以下操作：
+ 如果您使用的是 AWS CLI，则可以将搜索范围限制为仅搜索您感兴趣的日志流。例如，如果您的日志组有 1000 个日志流，但您只想查看三个已知相关的日志流，则可以使用将搜索限制 AWS CLI 为仅搜索日志组中的这三个日志流。
+ 使用更短、更细粒度的时间范围，从而减少搜索的数据量和加快查询速度。