

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

# 直接查询 Amazon CloudWatch Logs OpenSearch 服务中的数据
<a name="direct-query-cloudwatch-logs-overview"></a>

本节将引导您完成在 Amazon Ser OpenSearch vice 中创建和配置数据源集成的过程，使您能够高效地查询和分析存储在 CloudWatch 日志中的数据。

在接下来的页面中，您将学习如何设置 CloudWatch Logs 直接查询数据源、浏览必要的先决条件以及如何使用执行 step-by-step程序。 AWS 管理控制台

**Topics**
+ [在 OpenSearch 服务中创建 Ama CloudWatch zon Logs 数据源集成](direct-query-cloudwatch-logs-creating.md)
+ [在 OpenSearch 仪表板中配置和查询 CloudWatch 日志数据源](direct-query-cloudwatch-logs-configure.md)
+ [定价](#direct-query-cloudwatch-logs-pricing)
+ [限制](#direct-query-cloudwatch-logs-limitations)
+ [建议](#direct-query-cloudwatch-logs-recommendations)
+ [配额](#direct-query-cloudwatch-logs-quotas)
+ [支持的 AWS 区域](#direct-query-cloudwatch-logs-regions)

# 在 OpenSearch 服务中创建 Ama CloudWatch zon Logs 数据源集成
<a name="direct-query-cloudwatch-logs-creating"></a>

如果您使用 Amazon OpenSearch Serverless 来满足您的可观察性需求，那么您现在无需将数据复制或摄取到服务中即可分析您的 Amazon CloudWatch 日志。 OpenSearch 此功能利用直接查询来查询数据，类似于分析来自 OpenSearch 服务的 Amazon S3 中的数据。您可以先从 AWS 管理控制台创建新的连接数据源。

您可以创建新的数据源来分析 CloudWatch 日志数据，而不必构建 Amazon OpenSearch Serverless 来直接查询日志中的操作日 CloudWatch 志。这使您能够分析在 OpenSearch 服务之外访问的运营数据。通过跨 OpenSearch 服务和 CloudWatch 日志进行查询，您可以开始分析日志中的日 CloudWatch 志，然后返回到监控中的数据源， OpenSearch 而无需切换工具。

要使用此功能，您需要通过 AWS 管理控制台为 OpenSearch 服务创建 CloudWatch 日志直接查询数据源。

**Topics**
+ [先决条件](#direct-query-cloudwatch-logs-prereq)
+ [过程](#direct-query-cloudwatch-logs-create)
+ [后续步骤](#direct-query-cloudwatch-logs-next-steps)
+ [其他资源](#direct-query-cloudwatch-logs-additional-resources)

## 先决条件
<a name="direct-query-cloudwatch-logs-prereq"></a>

开始使用之前，请确保您已阅读以下文档：
+ [限制](direct-query-cloudwatch-logs-overview.md#direct-query-cloudwatch-logs-limitations)
+ [建议](direct-query-cloudwatch-logs-overview.md#direct-query-cloudwatch-logs-recommendations)
+ [配额](direct-query-cloudwatch-logs-overview.md#direct-query-cloudwatch-logs-quotas)

在创建数据源之前，您必须拥有以下资源 AWS 账户：
+ **启用 CloudWatch 日志。**配置 CloudWatch 日志以收集与您的 OpenSearch 资源 AWS 账户 相同的日志。有关说明，请参阅 Amazon [Logs 用户指南中的 CloudWatch CloudWatch 日志入门](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_GettingStarted.html)。
+ **一个或多个 CloudWatch 日志组。**您可以指定包含要查询数据的日志组。有关创建日志组的说明，请参阅 Amazon [Logs 用户指南中的 CloudWatch CloudWatch 日志中的创建日志组](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)。
+ **（可选）手动创建的 IAM 角色。**您可以使用此角色以管理对数据来源的访问权限。或者，您可以让 S OpenSearch ervice 自动为您创建具有所需权限的角色。如果选择使用手动创建的 IAM 角色，请按照 [手动创建的 IAM 角色所需权限](#direct-query-cloudwatch-logs-additional-resources-required-permissions) 中的指导进行操作。

## 过程
<a name="direct-query-cloudwatch-logs-create"></a>

您可以使用 AWS 管理控制台设置集合级别的查询数据来源。

### 要设置集合级别的数据源，请使用 AWS 管理控制台
<a name="creating-direct-query-cloudwatch-logs-console-create"></a>

1. 导航到亚马逊 OpenSearch 服务控制台，网址为[https://console.aws.amazon.com/aos/](https://console.aws.amazon.com/aos/)。

1. 在左侧导航窗格中，转到**集中管理**，然后选择**连接的数据来源**。

1. 选择**连接**。

1. 选择**CloudWatch**作为数据源类型。

1. 选择**下一步**。

1. 在**数据连接详细信息**下，输入名称和可选描述。

1. 在 **IAM 角色**下，选择如何管理对日志组的访问权限。

   1. 如果要自动为此数据来源创建角色，请按照以下步骤操作：

      1. 选择**创建新角色**。

      1. 输入 IAM 角色的名称。

      1. 选择一个或多个日志组，以定义可查询的数据范围。

   1. 如果要使用您自行管理的现有角色，请按照以下步骤操作：

      1. 选择**使用现有角色**。

      1. 从下拉菜单中选择现有角色。
**注意**  
使用自有角色时，您必须通过从 IAM 控制台附加所需策略，确保该角色具备所有必要的权限。有关更多信息，请参阅 [手动创建的 IAM 角色所需权限](#direct-query-cloudwatch-logs-additional-resources-required-permissions)。

1. （可选）在**访问策略**下，为数据源配置访问策略。访问策略控制对 OpenSearch 服务直接查询数据源的请求是被接受还是拒绝。如果您未配置访问策略，则只有数据源所有者才有访问权限。您可以将访问策略配置为启用跨账户访问，从而允许其他账户中的委托人 AWS 账户 访问数据源。

   您可以使用可视化编辑器或提供 JSON 策略文档来创建访问策略。使用可视化编辑器，您可以通过指定委托人 AWS 账户 ID、账户 ARN、IAM 用户 ARN、IAM 角色 ARN、源 IP 地址或 CIDR 块来允许或拒绝访问。可视化编辑器最多支持 10 个元素。要定义包含 10 个以上元素的策略，请使用 JSON 编辑器。

   您也可以选择**导入策略**从其他数据源导入现有访问策略。

1. （可选）在**标签**下，向数据来源添加标签。

1. 选择**下一步**。

1. 在 “**设置**” 下 OpenSearch，选择设置方式 OpenSearch。

   1. 使用默认设置：

      1. 查看默认资源名称和数据留存设置。建议您使用自定义名称。

        使用默认设置时，将为您创建一个新的 OpenSearch应用程序和 Essentials 工作区，无需支付额外费用。 OpenSearch 使您能够分析多个数据源。OpenSearch 包含工作区，可为常见使用案例提供量身定制的体验。工作区支持访问控制，使您能够为特定使用案例创建私有空间，并仅与协作伙伴共享。

   1. 使用自定义设置：

      1. 选择**自定义**。

      1. 根据需要编辑集合名称和数据留存设置。

      1. 选择要使用的 OpenSearch 应用程序和工作区。

1. 选择**下一步**。

1. 查看您的选择，如需进行任何更改，请选择**编辑**。

1. 选择**连接**以设置数据来源。创建数据来源期间，请留在此页面。准备就绪后，您将进入数据来源详情页面。

## 后续步骤
<a name="direct-query-cloudwatch-logs-next-steps"></a>

### 访问 OpenSearch 仪表板
<a name="direct-query-cloudwatch-logs-next-steps-dashboard"></a>

创建数据源后， OpenSearch 服务会为您提供 OpenSearch仪表板 URL。您可通过此 URL 配置访问控制、定义表、为常用日志类型设置基于日志类型的控制面板，并使用 SQL 或 PPL 查询数据。

有关更多信息，请参阅 [在 OpenSearch 仪表板中配置和查询 CloudWatch 日志数据源](direct-query-cloudwatch-logs-configure.md)。

## 其他资源
<a name="direct-query-cloudwatch-logs-additional-resources"></a>

### 手动创建的 IAM 角色所需权限
<a name="direct-query-cloudwatch-logs-additional-resources-required-permissions"></a>

 创建数据来源时，您可以选择一个 IAM 角色，以管理对数据的访问权限。你有两个选择：

1. 自动创建新的 IAM 角色

1. 使用手动创建的现有 IAM 角色。

如果您使用手动创建的角色，则需为该角色关联正确的权限。这些权限必须允许访问特定数据源，并允许 S OpenSearch ervice 代入该角色。这是必需的，这样 OpenSearch 服务才能安全地访问您的数据并与之交互。

以下示例策略演示了创建和管理数据来源所需的最低权限。如果您拥有更广泛的权限，例如 `logs:*` 或 `AdminstratorAccess` 策略，则这些权限包含示例策略中的最低权限。

在以下示例政策中，*placeholder text *用您自己的信息替换。

------
#### [ JSON ]

****  

```
    {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AmazonOpenSearchDirectQueryAllLogsAccess",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups",
                "logs:StartQuery",
                "logs:GetLogGroupFields"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "111122223333"
                }
            },
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:log-group:*"
            ]
        }
    ]
}
```

------

该角色还必须具有指定目标 ID 的以下信任策略。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "TrustPolicyForAmazonOpenSearchDirectQueryService",
            "Effect": "Allow",
            "Principal": {
                "Service": "directquery.opensearchservice.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:opensearch:us-east-1:111122223333:datasource/rolename"
                }
            }
        }
    ]
}
```

------

有关创建角色的说明，请参阅[使用自定义信任策略创建角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)。

默认情况下，该角色只能访问直接查询数据来源索引。尽管您可以配置该角色以限制或授予对数据来源的访问权限，但建议不要调整该角色的访问权限。**如果您删除数据来源，该角色也将被删除**。如果任何其他用户被映射到该角色，则将移除其访问权限。

### 直接查询数据源的访问策略示例
<a name="direct-query-cloudwatch-logs-additional-resources-access-policy"></a>

直接查询数据源的访问策略遵循 IAM 策略语法。策略文档必须采用有效的 JSON 格式。以下示例策略授予对直接查询数据源的特定 AWS 账户 访问权限。

在以下示例政策中，*placeholder text*用您自己的信息替换。

```
{
 "Version": "2012-10-17", 		 	 	 
 "Statement": [
   {
     "Effect": "Allow",
     "Principal": {
     "AWS": "arn:aws:iam::account-id:root"
     },
     "Action": [
       "opensearch:StartDirectQuery",
       "opensearch:GetDirectQuery",
       "opensearch:CancelDirectQuery",
       "opensearch:GetDirectQueryResult"
     ],
     "Resource": "arn:aws:opensearch:region:account-id:datasource/data-source-name"
   }
 ]
}
```

如果您未配置访问策略，则只有数据源所有者才能访问数据源。

# 在 OpenSearch 仪表板中配置和查询 CloudWatch 日志数据源
<a name="direct-query-cloudwatch-logs-configure"></a>

现在，您已经创建了数据源，可以开始使用它了 Dashboar OpenSearch ds。本节将引导您了解 OpenSearch 仪表板中数据源的各种用例。

## 从“Discover”页面查询日志组
<a name="direct-query-cloudwatch-logs-query-from-discover"></a>

在 “ OpenSearch 发现” 页面中，您可以使用配置的新直接查询数据源来查询 CloudWatch 日志组。为此，请选择**浏览日志**，然后使用搜索栏通过 SQL 或 PPL 构建查询。您可以对日志组返回的数据进行筛选、排序和可视化处理。要了解 CloudWatch 日志集成支持哪些语句、命令和限制，请参阅[支持的 SQL 和 PPL 命令](direct-query-supported-commands.md)。

## 为数据来源创建控制面板视图
<a name="direct-query-cloudwatch-logs-setup-integration"></a>

使用 S OpenSearch ervice 时，您可以使用预先构建的仪表板模板快速分析常用 AWS 日志类型。对于 CloudWatch 日志，有 VPC、 CloudTrail AWS WAF、和 Network Firewall 日志的模板。这些模板可助您快速创建符合特定数据需求的定制化控制面板。其中包括为特定日志类型量身定制的控制面板。这使您能够快速启动并运行分析这些流行的 AWS 日志源，而不必从头开始构建所有内容。

**注意**  
仪表板使用索引视图，该视图使用直接查询 OpenSearch Compute Units (OCUs) 以及无服务器集合索引OCUsOCUs、搜索和存储从 CloudWatch 日志中提取数据。

按照以下步骤，使用其中一个预先构建的模板创建控制面板，以便您立即开始探索和分析数据。

**创建控制面板视图**

1. 导航到亚马逊 OpenSearch 服务控制台，网址为[https://console.aws.amazon.com/aos/](https://console.aws.amazon.com/aos/)。

1. 在左侧导航窗格中，选择**集中管理**，然后选择**连接的数据来源**。

1. 选择数据来源以打开详细信息页面。

1. 请选择**创建控制面板**。

1. 选择要创建的控制面板类型。

1. 输入控制面板的名称。

1. 输入控制面板的可选描述。

1. 选择一个或多个要在控制面板上查看的日志组。

1. 选择刷新控制面板中数据的频率。

1. 选择要使用 OpenSearch 的工作空间。

   1. 要创建新工作区，请选择**创建新工作区**，并输入名称。

   1. 要使用现有工作区，请选择**选择现有工作区**。

1. 请选择**创建控制面板**。

## 在 D OpenSearch iscover 中查询 CloudWatch 日志数据
<a name="direct-querying-cloudwatch-logs-query"></a>

要查询数据，请从下拉菜单中选择数据来源。如果您使用的是 CloudWatch 日志，请从 Essentials 工作区导航到 “发现”，然后开始使用 OpenSearch SQL 或管道处理语言 (PPL) 查询数据。有关受支持命令的列表，请参阅 [支持的 SQL 和 PPL 命令](direct-query-supported-commands.md)。

**注意**  
如果您已创建实体化视图，则可使用 DQL 查询数据，前提是您已在其中建立索引。

### 问题排查
<a name="cloudwatch-logs-troubleshooting"></a>

在某些情况下，返回的结果可能不合预期。如果遇到任何问题，请确保遵循 [建议](direct-query-cloudwatch-logs-overview.md#direct-query-cloudwatch-logs-recommendations)。

## 定价
<a name="direct-query-cloudwatch-logs-pricing"></a>

亚马逊 OpenSearch 服务为 CloudWatch 日志直接查询提供 OpenSearch 计算单位 (OCU) 定价。当你运行直接查询时，你会产生 OCUs 每小时的费用，这些费用列为账单上的 DirectQuery OCU 使用类型。您还将单独收取 Amazon L CloudWatch ogs 费用。

直接查询分为两种类型：交互式查询和索引视图查询。
+ *交互式查询*用于填充数据选择器并对 CloudWatch 日志中的数据进行分析。 OpenSearch Service 使用单独的预热任务处理每个查询，而无需维护延长的会话。
+ *索引视图查询*使用计算来维护服务中的索引视图。 OpenSearch 此类查询通常耗时更长，因为其将不同数量的数据量摄取到指定索引中。对于与 CloudWatch Logs 连接的数据源，索引数据存储在 OpenSearch 无服务器集合中，您需要按索引数据 (IndexingOCU)、搜索的数据 (SearchOCU) 和以 GB 为单位存储的数据付费。

有关更多信息，请参阅 [Amazon OpenSearch 服务定价](https://aws.amazon.com/opensearch-service/pricing/)中的 “直接查询” 和 “无服务器” 部分。

## 限制
<a name="direct-query-cloudwatch-logs-limitations"></a>

以下限制适用于 CloudWatch 日志中的直接查询：
+ 与 CloudWatch 日志的直接查询集成仅在 OpenSearch 服务集合和 OpenSearch 用户界面上可用。
+ OpenSearch 无服务器集合的网络有效载荷限制为 100 MiB。
+ CloudWatch 日志支持 VPC Flow CloudTrail，以及从控制台安装的 AWS WAF 仪表板集成。
+ AWS CloudFormation 尚不支持模板。
+ OpenSearch 与使用直接查询相比，SQ OpenSearch L 和 PPL 语句在使用 OpenSearch 索引时有不同的限制。直接查询支持子查询和查找等 JOINs高级命令，而 OpenSearch 索引上对这些命令的支持有限或根本不存在。有关更多信息，请参阅 [支持的 SQL 和 PPL 命令](direct-query-supported-commands.md)。

## 建议
<a name="direct-query-cloudwatch-logs-recommendations"></a>

在 CloudWatch 日志中使用直接查询时，我们建议采取以下措施：
+ 在单个查询中搜索多个日志组时，请使用相应的语法。有关更多信息，请参阅 [多日志组函数](supported-directquery-sql.md#multi-log-queries)。
+ 使用 SQL 或 PPL 命令时，需将特定字段用反引号括起来才能成功查询。包含特殊字符（非字母和非数字）的字段需要使用反引号。例如，对 `@message`、`Operation.Export,` 和 `Test::Field` 使用反引号。纯字母名称的列无需使用反引号。

  包含简单字段的查询示例：

  ```
  SELECT SessionToken, Operation, StartTime  FROM `LogGroup-A`
  LIMIT 1000;
  ```

  附加反引号的类似查询：

  ```
  SELECT `@SessionToken`, `@Operation`, `@StartTime` FROM `LogGroup-A`
  LIMIT 1000;
  ```
+ 对查询设置限制，确保不会提取太多数据。
+ 不支持包含仅大小写不同的相同字段名（例如 `field1` 和 `FIELD1`）的查询。

  例如，不支持以下查询：

  ```
  Select AWSAccountId, AwsAccountId from LogGroup
  Select a.@LogStream, b.@logStream from Table A INNER Join Table B ona.id = b.id
  ```

  然而，由于两个日志组中的字段名（@logStream）完全相同，因此支持以下查询：

  ```
  Select a.@logStream, b.@logStream from Table A INNER Join Table B on a.id = b.id
  ```
+ 函数和表达式必须对字段名进行操作，并作为包含在 `FROM` 子句中指定日志组的 `SELECT` 语句的一部分。

  例如，不支持此查询：

  ```
  SELECT cos(10) FROM LogGroup
  ```

  支持此查询：

  ```
  SELECT cos(field1) FROM LogGroup
  ```

## 配额
<a name="direct-query-cloudwatch-logs-quotas"></a>

**注意**  
如果您想使用 L CloudWatch ogs Insights 进行直接查询，请务必参考[为使用 OpenSearch SQL 的 “ CloudWatch 日志见解” 用户提供的更多信息](supported-directquery-sql.md#supported-sql-for-multi-log-queries)。


| 说明 | 值 | 软限制？ | 注意 | 
| --- | --- | --- | --- | 
| 跨直接查询的账户级 TPS 限制 APIs | 3 TPS | 是 |  | 
| 最大数据来源数 | 20 | 是 | 限额为每个 AWS 账户。 | 
| 最大自动刷新索引或实体化视图数 | 30 | 是 | 限额按数据来源计算。 | 
| 最大并发查询数 | 30 | 是 |  限制以每个数据源为单位，适用于处于待处理或运行状态的查询。 包括交互式查询（例如，像这样的数据检索命令`SELECT`）和索引查询（例如，像 `CREATE` /这样的操作`ALTER`）。  | 
| 每次查询的最大并发 OCU 数 | 512 | 是 |  OpenSearch 计算单位 (OCU)。限制基于 15 个执行器和 1 个驱动程序，每个执行器配备 16 个 vCPU 和 32 GB 内存。表示并发处理能力。  | 
| 最大查询执行时间，以分钟为单位 | 60 | 否 | 限制适用于 Logs Insights 中的 OpenSearch PPL/SQL 查询。 CloudWatch  | 
| 清除陈旧查询的期限 IDs | 90 天 | 是 | 这是 OpenSearch 服务清除较旧条目的查询元数据的时间段。例如，对于超过 90 天的查询，调用 GetDirectQuery 或 GetDirectQueryResult 失败。 | 

## 支持的 AWS 区域
<a name="direct-query-cloudwatch-logs-regions"></a>

 CloudWatch 日志中的直接查询支持以下内容 AWS 区域 ：
+ 亚太地区（孟买） 
+ 亚太地区（香港）
+ 亚太地区（大阪）
+ 亚太地区（首尔）
+ 亚太地区（新加坡）
+ 亚太地区（悉尼）
+ 亚太地区（东京）
+ 加拿大（中部）
+ 欧洲地区（法兰克福）
+  欧洲地区（爱尔兰）
+ 欧洲地区（斯德哥尔摩）
+ 欧洲地区（米兰）
+ 欧洲（西班牙）
+ 美国东部（弗吉尼亚州北部）
+ 美国东部（俄亥俄州）
+ 美国西部（俄勒冈州）
+ 美国西部（北加利福尼亚）
+ 欧洲地区（巴黎） 
+ 欧洲地区（伦敦）
+ 南美洲（圣保罗）