异常检测设置
异常检测插件为标准 OpenSearch 集群设置添加了多个设置。这些设置是动态的,因此您无需重启集群即可更改插件的默认行为。要了解有关静态和动态设置的更多信息,请参阅配置 OpenSearch。
您可以将设置标记为persistent
(持久)或transient
(瞬态)。
例如,要更新结果索引的保留期
PUT _cluster/settings
{
"transient": {
"plugins.anomaly_detection.ad_result_history_retention_period": "5m"
}
}
设置 | 默认值 | 描述 |
---|---|---|
plugins.anomaly_detection.enabled | True | 异常检测插件是否启用。如果禁用,所有检测器将立即停止运行。 |
plugins.anomaly_detection.max_anomaly_detectors | 1,000 | 用户可以创建的非高基数检测器(无类别字段)的最大数量。 |
plugins.anomaly_detection.max_multi_entity_anomaly_detectors | 10 | 集群中高基数检测器(带类别字段)的最大数量。 |
plugins.anomaly_detection.max_anomaly_features | 5 | 一个检测器可拥有的最大特征数量。 |
plugins.anomaly_detection.ad_result_history_rollover_period | 12h | 检查翻转条件的频率。如果设置为true ,异常检测插件会将结果索引翻转到一个新索引。 |
plugins.anomaly_detection.ad_result_history_max_docs_per_shard | 1,350,000,000 | 结果索引单个分片中的最大文档数。异常检测插件仅计算主分片中已刷新的文档。 |
plugins.anomaly_detection.max_entities_per_query | 1,000,000 | 高基数检测器每个检测间隔的最大唯一值。默认情况下,如果类别字段在检测间隔内具有超过配置的唯一值,异常检测插件会根据类别值的自然顺序(例如,实体ab 在bc 之前)对其进行排序,然后选择顶部值。 |
plugins.anomaly_detection.max_entities_for_preview | 5 | 高基数检测器在预览操作中显示的最大唯一类别字段值。默认情况下,如果类别字段在检测间隔内具有超过配置的唯一值,异常检测插件会根据类别值的自然顺序(例如,实体ab 在bc 之前)对其进行排序,然后选择顶部值。 |
plugins.anomaly_detection.max_primary_shards | 10 | 异常检测索引可拥有的最大主分片数。 |
plugins.anomaly_detection.filter_by_backend_roles | False | 当您启用安全插件并将其设置为true 时,异常检测插件会根据用户的后端角色过滤结果。 |
plugins.anomaly_detection.max_batch_task_per_node | 10 | 启动历史分析会触发一个批处理任务。此设置是每个数据节点可以运行的批处理任务数量。您可以将此设置从 1 调整到 1,000。如果数据节点无法支持所有批处理任务,并且您不确定数据节点是否能够运行更多历史分析,请添加更多数据节点,而不是将此设置更改为更高的值。增加此值可能会增加每个数据节点的负载。 |
plugins.anomaly_detection.max_old_ad_task_docs_per_detector | 1 | 您可以多次为同一个检测器运行历史分析。每次运行时,异常检测插件都会创建一个新任务。此设置是插件保留的先前任务的数量。将此值设置为至少 1 以跟踪其最后一次运行。您最多可以保留 1,000 个旧任务,以避免集群过载。 |
plugins.anomaly_detection.batch_task_piece_size | 1,000 | 历史任务的日期范围被分成更小的片段,异常检测插件逐片段运行任务。每个片段默认包含 1,000 个检测间隔。例如,如果检测器间隔为 1 分钟,一个片段为 1,000 分钟,则每 1,000 分钟查询一次特征数据。您可以将此设置从 1 更改为 10,000。 |
plugins.anomaly_detection.batch_task_piece_interval_seconds | 5 | 在同一历史分析任务的两个片段之间添加一个时间间隔。此间隔可防止任务消耗过多的可用资源,并避免饿死其他操作(如搜索和批量索引)。您可以将此设置从 1 更改为 600 秒。 |
plugins.anomaly_detection.max_top_entities_for_historical_analysis | 1,000 | 为高基数检测器历史分析运行的顶部实体最大数量。范围为 1 到 10,000。 |
plugins.anomaly_detection.max_running_entities_per_detector_for_historical_analysis | 10 | 在高基数检测器分析中可以并行运行的实体任务数量。集群上可用的任务槽位也会影响并行运行的实体数量。如果一个集群有 3 个数据节点,每个数据节点默认有 10 个任务槽位。假设您已经有两个高基数检测器,每个检测器运行 10 个实体。如果您启动一个占用 1 个任务槽位的单实体检测器,则可用的任务槽位数量为 10 * 3 - 10 * 2 - 1 = 9。如果您现在启动一个新的高基数检测器,该检测器只能并行运行 9 个实体,而不是 10 个。您可以根据集群的能力将此值从 1 调整到 1,000。如果设置更高的值,异常检测插件会更快地运行历史分析,但也会消耗更多资源。 |
plugins.anomaly_detection.max_cached_deleted_tasks | 1,000 | 您可以根据需要多次重新运行单个检测器的历史分析。异常检测插件仅保留有限数量的旧任务,默认情况下为 1 个旧任务。如果您为某个检测器运行历史分析三次,则最旧的任务将被删除。由于历史分析会在短时间内生成大量异常结果,因此有必要清理已删除任务的异常结果。通过此字段,您可以配置最多可以缓存多少个已删除任务。插件会在任务删除时清理任务的结果。如果插件未能执行此清理,它会将任务的结果添加到缓存中,并由一个每小时运行的 cron 作业执行清理。您可以使用此设置来限制缓存中旧任务的数量,以避免 DDoS 攻击。一小时后,如果您仍在缓存中找到旧任务结果,请使用删除检测器结果 API 手动删除任务结果。您可以将此设置从 1 调整到 10,000。 |
plugins.anomaly_detection.delete_anomaly_result_when_delete_detector | False | 当您删除检测器时,异常检测插件是否删除异常结果。如果您想节省一些磁盘空间,特别是当您有生成大量结果的高基数检测器时,请将此字段设置为 true。或者,您可以使用删除检测器结果 API 手动删除结果。 |
plugins.anomaly_detection.dedicated_cache_size | 10 | 如果高基数检测器的实时分析成功启动,异常检测插件保证每个节点在内存中保留 10 个(可通过此设置动态调整)实体模型。如果实体数量超过此限制,插件会将多余的实体模型放入所有检测器共享的内存空间中。实际的实体数量会根据可用内存和实体频率而变化。如果您希望插件保证在内存中保留更多实体模型,并且您的集群有足够的内存,您可以增加此设置值。 |
plugins.anomaly_detection.max_concurrent_preview | 2 | 最大并发预览数。您可以使用此设置来限制资源使用。 |
plugins.anomaly_detection.model_max_size_percent | 0.1 | 模型内存百分比的上限。 |
plugins.anomaly_detection.door_keeper_in_cache.enabled | False | 当设置为true 时,OpenSearch 会在非活跃实体缓存前放置一个布隆过滤器,以过滤掉不太可能出现多次的项。 |
plugins.anomaly_detection.hcad_cold_start_interpolation.enabled | False | 设置为 true 时,可在高基数异常检测 (HCAD) 的初始冷启动期间启用插值。 |
plugins.anomaly_detection.jvm_heap_usage_threshold | 95 | 指定 JVM 内存使用阈值(百分比),达到此阈值时异常检测器将被禁用。默认值为 95%,这意味着当 JVM 堆使用率达到 95% 时,检测器将被禁用。 |