

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

# Amazon OpenSearch 服务中的异常检测
<a name="ad"></a>

Amazon S OpenSearch ervice 中的异常检测使用随机剪辑森林 (RCF) 算法，近乎实时地自动检测 OpenSearch 数据中的异常。RCF 是一种无监督的机器学习算法，可对传入数据流的草图进行建模。该算法用于计算每个传入数据点的 `anomaly grade` 和 `confidence score` 值。异常检测使用这些值来区分数据中的异常与正常变化。

您可以将异常检测插件与[提醒插件](alerting.md)配合使用，以在检测到异常后立即通知您。

异常检测适用于运行任何 OpenSearch 版本或 Elasticsearch 7.4 或更高版本的域名。除了 `t2.micro` 和 `t2.small` 以外的所有实例类型都支持异常检测。

**注意**  
本文档简要概述了 Amazon OpenSearch 服务环境中的异常检测。有关全面的文档，包括详细步骤、API 参考、所有可用设置的参考以及创建可视化和仪表板的步骤，请参阅开源 OpenSearch 文档中的[异常检测](https://opensearch.org/docs/latest/monitoring-plugins/ad/index/)。

## 先决条件
<a name="ad-prereq"></a>

异常检测具有以下先决条件：
+ 异常检测需要 OpenSearch 或 Elasticsearch 7.4 或更高版本。
+ 异常检测仅支持 Elasticsearch 7.9 及更高版本以及所有版本的[精细访问控制](fgac.md)。 OpenSearch在 Elasticsearch 7.9 之前，只有管理员用户可以创建、查看和管理检测器。
+ 如果您的域使用精细的访问控制，则必须将非管理员用户[映射到](fgac.md#fgac-mapping) OpenSearch 仪表板中的`anomaly_read_access`角色才能查看检测器或`anomaly_full_access`创建和管理检测器。

## 异常检测入门
<a name="ad-example-es"></a>

要开始使用，请选择 “ OpenSearch 仪表板中的**异常检测**”。

### 步骤 1：创建检测器
<a name="ad-example-1"></a>

检测器即单个异常检测任务。您可以创建多个检测器，并且所有检测器可以同时运行，每个检测器分析来自不同来源的数据。

### 步骤 2：向检测器添加特征
<a name="ad-example-2"></a>

特征就是检查是否存在异常的索引中的字段。检测器可以发现跨一个或多个特征的异常。必须为每个特征选择以下聚合之一：`average()`、`sum()`、`count()`、`min()` 或 `max()`。

**注意**  
`count()`聚合方法仅在 Elasticsearch 7.7 或更高版本中 OpenSearch可用。对于 Elasticsearch 7.4，请使用如下所示的自定义表达式：  

```
{
  "aggregation_name": {
     "value_count": {
        "field": "field_name"
     }
  }
}
```

聚合方法决定了是什么构成异常。例如，如果选择 `min()`，则检测器将着重根据特征的最小值查找异常。如果选择 `average()`，则检测器将根据特征的平均值查找异常。每个检测器最多可以添加五个特征。

您可以配置以下可选设置（在 Elasticsearch 7.7 及更高版本中可用）：
+ **类别字段**-使用 IP 地址、产品 ID、国家/地区代码等维度对数据进行分类或切片。
+ **窗口大小**-设置要在检测窗口中考虑的数据流聚合间隔的数量。

设置要素后，预览样本异常并根据需要调整功能设置。

### 步骤 3：观察结果
<a name="ad-example-3"></a>

![\[异常检测仪表板上提供了以下可视化效果：\]](http://docs.aws.amazon.com/zh_cn/opensearch-service/latest/developerguide/images/ad.png)

+ **Live anomalies**（实时异常）- 显示了过去 60 个间隔的实时异常结果。例如，如果间隔设置为 10，则显示过去 600 分钟的结果。此图表每 30 秒刷新一次。
+ **Anomaly history**（异常历史记录）- 图表采用相应的置信度绘制异常等级。
+ **Feature breakdown**（特征细分） - 根据聚合方法绘制特征。您可以更改检测器的日期和时间范围。
+ **Anomaly occurrence**（异常发生）- 显示了检测到的每个异常的 `Start time`、`End time`、`Data confidence` 和 `Anomaly grade` 

  如果您设置了类别字段，您会看到一个额外的**热图**图表，该图表将异常实体的结果相关联。选择填充的矩形可查看更详细的异常视图。

### 步骤 4：设置警报
<a name="ad-example-4"></a>

要创建监视器以便在检测到任何异常情况时向您发送通知，请选择 **Set up alerts (设置警报)**。插件将您重定向到[添加监视器](https://docs.opensearch.org/latest/observing-your-data/alerting/monitors/)页面，您可以在其中配置警报。