

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

# Connect 连接到亚马逊 OpenSearch 服务数据源
<a name="using-Amazon-OpenSearch-in-AMG"></a>

**注意**  
在支持版本 9 或更高版本的工作区中，此数据来源可能需要您安装相应的插件。有关更多信息，请参阅 [使用插件扩展您的工作区](grafana-plugins.md)。

借助 Amazon Managed Grafana，您可以使用 Grafana AWS 工作空间控制台中的数据源配置选项将 OpenSearch 亚马逊服务添加为数据源。该数据源支持运行 OpenSearch 集群的 OpenSearch 服务域以及传统的 Elasticsearch 集群。

 AWS 数据源配置选项通过发现您现有的 OpenSearch 服务帐户来简化将 OpenSearch 服务添加为数据源，并管理访问所需的身份验证凭据的配置 OpenSearch。您可以使用此方法设置身份验证并将 OpenSearch 服务添加为数据源，也可以使用与在自我管理的 Grafana 服务器上相同的方法手动设置数据源和必要的身份验证凭据。

 OpenSearch 服务数据源支持管道处理语言 (PPL)。有关 PPL 的更多信息，请参阅[使用管道处理语言查询 Amazon OpenSearch 服务数据](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ppl-support.html)。

您可以使用 OpenSearch 服务数据源执行多种类型的简单或复杂 OpenSearch 查询，以便可视化存储在中的日志或指标 OpenSearch。您还可以使用存储在中的日志事件为图表添加注释。 OpenSearch

**Topics**
+ [

# 使用 AWS 数据源配置将 OpenSearch 服务添加为数据源
](ES-adding-AWS-config.md)
+ [

# 手动将 Amazon OpenSearch 服务添加为数据源
](ES-adding-the-data-source.md)
+ [

## OpenSearch 服务设置
](#ES-settings)
+ [

# 使用亚马逊 OpenSearch 服务数据源
](ES-use-datasource.md)
+ [

# 亚马逊 OpenSearch 服务无服务器
](datasources-opensearch-serverless.md)
+ [

# 跟踪支持
](datasources-opensearch-traces.md)

# 使用 AWS 数据源配置将 OpenSearch 服务添加为数据源
<a name="ES-adding-AWS-config"></a>

要使用 AWS 数据源配置，首先要使用 Amazon Managed Grafana 控制台启用服务托管 IAM 角色，这些角色向工作空间授予读取您账户或整个组织单位中的服务资源 OpenSearch 所必需的 IAM 策略。然后，您可以使用亚马逊托管 Grafana 工作空间控制台 OpenSearch 将服务添加为数据源。

**使用 AWS 数据源配置将 OpenSearch 服务添加为数据源**

1. 打开 Amazon Managed Grafana 控制台，其位于 [https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)。

1. 在页面左上角，选择菜单图标，然后选择**所有工作区**。

1. 选择工作区的名称。

1. 如果您在创建此工作空间时没有选择使用服务管理权限，请从使用客户托管权限更改为使用服务管理权限，以确保启用适当的 IAM 角色和策略以使用 Grafana 工作区控制台中的 AWS 数据源配置选项。为此，请按 **IAM 角色**选择编辑图标，然后选择**服务托管**、**保存更改**。有关更多信息，请参阅 [亚马逊托管 Grafana 数据源的权限和政策 AWS](AMG-manage-permissions.md)。

1. 选择**数据来源**选项卡。然后选中 **Amazon S OpenSearch er** vice 的复选框，然后选择**操作**、**启用服务托管策略**。

1. 再次选择 “**数据源**” 选项卡，然后在 “**亚马逊 OpenSearch **服务” 行**中选择 “在 Grafana 中配置**”。

1. 如有必要，使用 IAM Identity Center 登录 Grafana 工作区控制台。

1. **在 Grafana 工作区控制台的左侧导航栏中，选择图标，然后选择**AWS 服务， AWS 即亚马逊服务**。 OpenSearch **

1. 选择您希望 Amazon Managed Grafana 搜索以 OpenSearch 发现服务资源的区域，然后选择要添加的账户和 OpenSearch 服务域，配置索引设置，然后**选择**添加数据源。

# 手动将 Amazon OpenSearch 服务添加为数据源
<a name="ES-adding-the-data-source"></a>

**手动添加亚马逊 OpenSearch 服务数据源**

1.  在 Grafana 控制台的侧边菜单中，选择 **AWS** 图标，然后选择**数据来源**。

1. 选择**亚马逊 OpenSearch 服务**数据源。如有必要，您可以在搜索框中键入 **OpenSearch**，帮助查找。

1. 选择要从中搜索数据的**区域**。

1. 选择**添加数据来源**。

**注意**  
 如果您在侧边菜单中看不到**数据来源**链接，则表示您当前的用户没有 `Admin` 角色。

## OpenSearch 服务设置
<a name="ES-settings"></a>


|  Name  |  说明  | 
| --- | --- | 
|  Name  |  数据来源名称。您将在面板和查询中通过其名称查看数据来源。 | 
|  Default  |  默认数据来源意味着将为新面板预先选择该数据来源。 | 
|  Url  |  您的 OpenSearch 服务域的终端节点。端点采用以下格式: https://search-my-domain.us-east-1.es.amazonaws.com. | 
|  Access  |  服务器（默认）= 必须可从 Grafana 后端/服务器访问 URL。浏览器 = 必须可在浏览器中访问 URL。 | 

 访问模式控制对数据来源请求的处理方式。如果没有其他说明，服务器应该是首选方式。

### 服务器访问模式（默认）
<a name="ES-server-access-mode-default"></a>

 所有请求都是从浏览器向 Grafana 后端或服务器发出的，后端或服务器会将请求转发到数据来源，从而规避了可能的跨源资源共享（CORS）要求。如果选择此访问模式，则必须可以从 Grafana 后端或服务器访问 URL。

### 浏览器（直接）访问
<a name="ES-browser-direct-access"></a>

Amazon Managed Grafana 不支持浏览器直接访问。

### 索引设置
<a name="ES-index-settings"></a>

 在这里，您可以为指定默认值`time field`并指定 OpenSearch 索引的名称。您可以对索引名称或通配符使用时间模式。

### OpenSearch/弹性搜索版本
<a name="OpenSearch-version"></a>

在版本下拉菜单中指定您的版本 OpenSearch 或旧版 Elasticsearch 版本。版本很重要，因为每个版本的查询组成方式不同。目前，Grafana 支持 1.0.x OpenSearch 。支持的 Elasticsearch 版本有 `2.0+`、`5.0+`、`5.6+`、`6.0+` 和 `7.0+`。值 `5.6+` 表示版本 5.6 或更高版本，但低于 6.0。值 `6.0+` 表示版本 6.0 或更高版本，但低于 7.0。最后，`7.0+` 表示版本 7.0 或更高版本，但低于 8.0。

### 最小时间间隔
<a name="ES-min-time-interval"></a>

按时间间隔自动分组的下限。建议设置以写入频率；例如，如果您的数据每分钟写入一次，则为 `1m`。此选项也可以 overridden/configured 位于仪表板面板的数据源选项下。此值的格式**必须**为数字，后跟有效的时间标识符；例如，`1m`（1 分钟）或 `30s`（30 秒）。支持以下时间标识符。


|  标识符  |  说明  | 
| --- | --- | 
|  y  |  Year  | 
|  M  |  Month  | 
|  w  |  周  | 
|  d  |  天  | 
|  h  |  小时  | 
|  m  |  分钟  | 
|  s  |  秒  | 
|  ms  |  毫秒  | 

### 日志
<a name="ES-logs-beta"></a>

在 [Explore](explore.md) 中可视化日志时，可选择从数据来源设置页面配置 `Message field name` 和 `Level field name` 这两个参数，以确定日志消息和日志级别将使用哪些字段。

 例如，如果您使用 Filebeat 的默认设置将日志传送到 OpenSearch 服务，则以下配置应该起作用。
+  **消息字段名称：**message 
+  **级别字段名称：**fields.level 

### 数据链接
<a name="ES-data-links"></a>

 数据链接可根据指定字段创建链接，该链接可在 Explore 的日志视图中访问。

 每个数据链接配置由以下部分组成：
+ **字段**：数据链接使用的字段名称。
+ **URL/查询**：如果是外部链接，则输入完整的链接 URL。如果是内部链接，则此输入将用作目标数据来源的查询。在这两种情况下，您都可以使用 `${__value.raw }` 宏从字段中插值。
+ **内部链接**：选择此选项以确定是内部链接还是外部链接。如果是内部链接，您可以使用数据来源选择器选择目标数据来源。仅支持跟踪数据来源。

# 使用亚马逊 OpenSearch 服务数据源
<a name="ES-use-datasource"></a>

## 指标查询编辑器
<a name="ES-metric-query-editor"></a>

 OpenSearch 查询编辑器允许您选择多个指标并按多个术语或筛选条件进行分组。使用右侧的加号和减号图标 add/remove 查看指标或按子句分组。一些指标和 group by 子句具有选项。选择选项文本展开行，以查看和编辑指标或分组依据选项。

## 使用管道处理语言（PPL）
<a name="ES-PPL"></a>

Amazon S OpenSearch ervice 数据源支持管道处理语言 (PPL)，该语言支持更简单但强大的查询和可视化功能。 OpenSearchPPL 使客户无需撰写冗长的 OpenSearch 域特定语言 (DSL) 语句或使用 JSON 对象编写查询即可浏览和查找数据。使用 PPL，您可以将查询写成一组由管道分隔的命令，类似于 UNIX 管道。

以下面的示例 DSL 查询为例：

```
GET opensearch_sample_data_logs/_search{"from":0,"size":0,"timeout":"1m","query":{"bool":{"should":[{"term":{"response.keyword":{"value":"404","boost":1}}},{"term":{"response.keyword":{"value":"503","boost":1}}}],"adjust_pure_negative":true,"boost":1}},"sort":[{"_doc":{"order":"asc"}}],"aggregations":{"composite_buckets":{"composite":{"size":1000,"sources":[{"host":{"terms":{"field":"host.keyword","missing_bucket":true,"order":"asc"}}},{"response":{"terms":{"field":"response.keyword","missing_bucket":true,"order":"asc"}}}]},"aggregations":{"request_count":{"value_count":{"field":"request.keyword"}},"sales_bucket_sort":{"bucket_sort":{"sort":[{"request_count":{"order":"desc"}}],"size":10}}}}}}>
```

前面的 DSL 查询可以替换为以下 PPL 命令，该命令简洁易懂。

```
source = opensearch_sample_data_logs | where response='404' or response='503' | stats count(request) as request_count by host, response | sort –request_count
```

有关 PPL 的更多信息，请参阅[使用管道处理语言查询 Amazon OpenSearch 服务数据](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ppl-support.html)。

## 序列命名和别名模式
<a name="ES-series-naming-and-alias-patterns"></a>

 您可以使用 `Alias` 输入字段控制时间序列的名称。


|  模式  |  说明  | 
| --- | --- | 
|  \$1\$1term fieldname\$1\$1  |  替换为术语 Group By 的值。 | 
|  \$1\$1metric\$1\$1  |  替换为指标名称（例如 Average、Min、Max）。 | 
|  \$1\$1field\$1\$1  |  替换为指标字段名称。 | 

## 管道指标
<a name="ES-pipeline-metrics"></a>

*一些指标聚合称为管道聚合；例如，*移动平均*线和衍生物。* OpenSearch 管道指标需要另一个指标作为依据。使用指标旁边的眼睛图标可隐藏指标，使其不显示在图表中。这对于查询中仅包含用于管道指标的指标很有用。

## 模板化
<a name="ES-templating"></a>

 您可以在指标查询中使用变量来代替服务器、应用程序和传感器名称等硬编码的内容。变量显示为控制面板顶部的下拉选择框。您可以使用这些下拉框来更改控制面板中显示的数据。

 有关模板化和模板变量的更多信息，请参阅 [模板和变量](templates-and-variables.md)。

### 查询变量
<a name="ES-query-variable"></a>

 OpenSearch *服务数据源支持两种类型的查询，您可以在查询变量的*查询*字段中使用。*该查询是使用自定义 JSON 字符串编写的。


|  Query  |  说明  | 
| --- | --- | 
|  \$1"find": "fields", "type": "keyword"\$1  |  返回索引类型为 keyword 的字段名称列表。 | 
|  \$1"find": "terms", "field": "@hostname", "size": 1000\$1  |  使用术语聚合返回字段的值列表。查询将使用当前控制面板的时间范围作为查询的时间范围。 | 
|  \$1"find": "terms", "field": "@hostname", "query": '<lucene query>'\$1  |  使用术语聚合和指定的 Lucene 查询筛选条件返回字段的值列表。查询将使用当前控制面板的时间范围作为查询的时间范围。 | 

术语查询的默认大小限制为 500。要设置自定义限制，请在查询中设置大小属性。您可以在查询中使用其他变量。以下代码示例显示了一个名为 `$host` 的变量的查询定义。

```
{"find": "terms", "field": "@hostname", "query": "@source:$source"}
```

在前面的示例中，我们在查询定义中使用了另一个名为 `$source` 的变量。每当您使用下拉列表更改 `$source` 变量的当前值时，它都会启动 `$host` 变量的更新。更新后，`$host` 变量仅包含按（在本例中为 `@source` 文档属性）筛选的主机名。

默认情况下，这些查询按术语顺序返回结果（然后可以按字母顺序或数字顺序对任何变量进行排序）。要生成按文档计数排序的术语列表（前 N 个值列表），请添加 `doc_count` 的 `orderBy` 属性。这将自动选择降序排序。可通过设置 `order: "asc"` 将 `asc` 与 doc\$1count（后 N 个值列表）结合使用，但不建议这样做，因为会增加文档计数的误差。要使术语按文档计数顺序排列，请将变量的**排序**下拉列表设置为**禁用**。或者，您也可以使用**按字母顺序**对其重新排序。

```
{"find": "terms", "field": "@hostname", "orderBy": "doc_count"}
```

### 在查询中使用变量
<a name="ES-using-variables-in-queries"></a>

 共有两种语法：
+  `$<varname>` 示例：@hostname:\$1hostname 
+  `[[varname]]` 示例：@hostname:[[hostname]] 

 为什么是两种？ 第一种语法更容易读写，但不能在词中间使用变量。启用*多值*或*包含所有值*选项后，Grafana 会将标签从纯文本转换为兼容 Lucene 的条件。

 在前面的示例中，我们有一个 lucene 查询，该查询使用名为 `$hostname` 的变量根据 `@hostname` 属性筛选文档。同时使用了*术语*分组依据字段输入框中的变量。这让您可以使用变量快速更改数据的分组方式。

## Annotations
<a name="ES-annotations"></a>

您可以使用注释在图形上叠加丰富的事件信息。您可以使用控制面板菜单或注释视图添加注释查询。Grafana 可以查询 OpenSearch 任何索引中的注解事件。有关更多信息，请参阅 [Annotations](dashboard-annotations.md)。


|  名称  |  说明  | 
| --- | --- | 
|  Query  |  您可以将搜索查询留空，也可以指定 Lucene 查询。 | 
|  Time  |  时间字段的名称；必须是日期字段。 | 
|  Time End  |  时间结束字段的可选名称必须是日期字段。如果设置，注释将被标记为介于 time 和 time-end 之间的区域。 | 
|  Text  |  事件描述字段。 | 
|  Tags  |  用于事件标签的可选字段名称（可以是数组或 CSV 字符串）。 | 

## 查询 日志
<a name="ES-querying-logs-beta"></a>

 在 “浏览” 中可以查询和显示来自 OpenSearch 的日志数据。要显示您的日志，请选择 OpenSearch 服务数据源，然后根据需要输入 Lucene 查询。有关更多信息，请参阅 [Explore](explore.md)。

### 日志查询
<a name="ES-log-queries"></a>

 返回结果后，日志面板会显示日志行列表和条形图，其中 x 轴显示时间，y 轴显示频率或计数。

### 筛选日志消息
<a name="ES-filter-log-messages"></a>

 或者，在查询字段中输入 Lucene 查询以筛选日志消息。例如，如果使用默认的 Filebeat 设置，则可以使用 `fields.level:error` 仅显示错误日志消息。

# 亚马逊 OpenSearch 服务无服务器
<a name="datasources-opensearch-serverless"></a>

**注意**  
OpenSearch 服务无服务器支持仅适用于运行 Grafana 9.4 及更高版本的 Grafana 工作空间。

您可以使用 OpenSearch 服务数据源通过亚马逊托管 Grafana 访问亚马逊 OpenSearch 服务无服务器数据。数据访问权限由数据访问策略控制。以下示例展示了允许用户查询特定的集合和索引的策略。请务必将 *`collection_name`*、*`index_name`* 和 *`principal_arn`* 替换为适用于您的用例的正确值。

```
[
  {
    "Rules": [
      {
        "Resource": ["collection/{collection_name}"],
        "Permission": ["aoss:DescribeCollectionItems"],
        "ResourceType": "collection"
      },
      {
        "Resource": ["index/{collection_name}/{index_name}"],
        "Permission": ["aoss:DescribeIndex", "aoss:ReadDocument"],
        "ResourceType": "index"
      }
    ],
    "Principal": ["principal_arn"],
    "Description": "read-access"
  }
]
```

# 跟踪支持
<a name="datasources-opensearch-traces"></a>

该 OpenSearch 插件支持以表格形式查看跟踪列表，并支持在 Trace View 中**查看单个跟踪**，用于显示跟踪跨度的时间表。

**注意**  
只有使用 Lucene 查询才能查询 OpenSearch 轨迹。  
跟踪支持仅适用于支持 9.4 或更高版本的 Grafana 工作区。

要创建显示所有跟踪的查询，请使用带空白查询的 Lucene 查询类型 `Traces`。如有必要，请选择**表**可视化类型。

在表中选择跟踪 ID 将在跟踪视图中打开该跟踪。

要创建显示单条跟踪的查询，请使用查询 `traceid: {traceId}`，并在必要时选择**跟踪**可视化类型。