

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

# Connect 连接到 OpenSearch 数据源
<a name="using-opensearch-in-AMG"></a>

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

借助 Amazon Managed Grafana，您可以添加[OpenSearch](https://opensearch.org/docs/)开源（或传统的 Elasticsearch）作为数据源。您可以执行多种类型的简单或复杂 OpenSearch 查询，以可视化存储在中的日志或指标 OpenSearch。您还可以使用存储在中的日志事件为图表添加注释。 OpenSearch

## OpenSearch 作为数据源添加
<a name="opensearch-adding-the-data-source"></a>

**注意**  
为了能够添加 OpenSearch 数据源，你需要将你的 Grafana IAM 账户添加到 ALL\_ACCESS 和 SECURITY\_MANAGER 角色中。

1.  选择顶部标题中的 Grafana 图标，打开侧边菜单。

1.  在侧边菜单的**控制面板**链接下，您应该可以找到名为**数据来源**的链接。

1.  选择顶部标题中的 **\+ 添加数据来源**按钮。

1.  **OpenSearch**从 “**类型**” 下拉列表中选择。

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


|  Name  |  说明  | 
| --- | --- | 
|  Name  |  数据来源名称。您将在面板和查询中通过其名称查看数据来源。 | 
|  Default  |  默认数据来源意味着将为新面板预先选择该数据来源。 | 
|  Url  |  您的 OpenSearch 服务器的 HTTP 协议、IP 和端口。 | 
|  Access  |  服务器（默认）= 必须可以从 Grafana backend/server 访问网址。浏览器 = 必须可在浏览器中访问 URL。 | 

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

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

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

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

 Amazon Managed Grafana 不支持通过浏览器直接访问数据源。 OpenSearch

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

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

### OpenSearch/Elasticsearch 版本
<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="opensearch-min-time-interval"></a>

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


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

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

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

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

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

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

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

## 使用 OpenSearch 数据源
<a name="opensearch-use-datasource"></a>

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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