正在加载

限制

Elastic Stack Serverless

以下限制和已知问题适用于 Elastic 机器学习功能的 9.0.0 版本。这些限制分为四个类别

  • 平台限制 与托管 Elastic Stack 的机器学习功能的平台有关。
  • 配置限制 适用于异常检测作业的配置过程。
  • 操作限制 影响正在运行的异常检测作业的行为。
  • Kibana 中的限制 仅适用于通过用户界面管理的异常检测作业。

机器学习使用流式 SIMD 扩展 (SSE) 4.2 指令,因此它仅适用于 CPU 支持 SSE4.2 的计算机。如果您在较旧的硬件上运行 Elasticsearch,则必须通过将 xpack.ml.enabled 设置为 false 来禁用机器学习。请参阅 Elasticsearch 中的机器学习设置

当同时运行许多机器学习作业并且 CPU 资源不足时,必须优先考虑 JVM 性能,以便搜索和索引延迟保持在可接受的范围内。为此,当 Linux 和 MacOS 环境上的 CPU 受到限制时,本机分析进程的 CPU 调度优先级会降低,以支持 Elasticsearch JVM。此改进不适用于 Windows 环境。

您必须拥有相应的许可证才能对通过跨集群搜索 (CCS) 访问的远程集群的数据集启动机器学习作业。有关不同订阅级别可用的功能的详细信息,请参阅 订阅 页面。

默认情况下,terms 聚合返回前十个术语的存储桶。您可以通过设置 size 参数来更改此默认行为。

如果您将预聚合数据发送到作业进行分析,则必须确保 size 配置正确。否则,某些数据可能无法分析。

不支持在数据馈送中使用 脚本度量聚合。请参阅 聚合数据以提高性能 页面,了解有关数据馈送中聚合的更多信息。

您不能在作业的 by_field_nameover_field_name 属性中使用以下字段名称:bycountover。当您在 Kibana 中创建高级作业时,此限制也适用于这些属性。

如果将异常检测作业配置为分析可聚合字段(作为索引映射定义一部分的字段),并且此字段包含数组,则该数组将转换为逗号分隔的连接字符串。数组中的项目按字母顺序排序,并删除重复的项目。例如,数组 ["zebra", "dog", "cat", "alligator", "cat"] 变为 alligator,cat,dog,zebra。由于字符串不存在于源数据中,因此异常浏览器图表不会显示该作业的任何结果。如果启用了模型图,则单一度量查看器将显示结果。

如果数组字段不可聚合,并且是从 _source 检索的,则该数组也会转换为逗号分隔的连接列表。但是,列表项不会按字母顺序排序,也不会删除重复项。以上面的示例为例,在这种情况下,逗号分隔的列表将是 zebra,dog,cat,alligator,cat

分析大型数组会导致较长的字符串,这可能需要更多的系统资源。考虑在数据馈送中使用查询来过滤数组的相关项目。

您无法通过 Kibana 中的作业向导在 冻结层 数据上创建异常检测作业。如果要创建此类作业,请改用 API。

有一些限制会影响您创建预测的能力

  • 您每个异常检测作业最多可以同时生成三个预测。对您保留的预测数量没有限制。创建新预测时,不会覆盖现有预测。相反,它们会在过期时自动删除。

  • 如果在您的异常检测作业中使用 over_field_name 属性(也就是说,它是一个人口作业),则无法创建预测。

  • 如果在您的异常检测作业中使用以下任何分析函数,则无法创建预测

    • lat_long

    • rarefreq_rare

    • time_of_daytime_of_week

      有关这些功能的更多信息,请参阅 函数参考

异常检测作业按用户定义的时间字段对所有数据进行排序,该字段经常被访问。如果时间字段是一个 运行时字段,则在查询时计算字段值的性能影响会显著降低作业速度。运行异常检测作业时,请使用索引字段作为时间字段。

如果数据馈送包含使用已弃用语法的 Painless 脚本,则在预览或启动数据馈送时会显示弃用警告。但是,无法批量检查所有数据馈送的弃用警告,因为运行所需的查询可能是一个资源密集型过程。因此,由于已弃用的 Painless 语法而导致的任何弃用警告在升级助手中都不可用。

分类识别非结构化日志的静态部分,并将相似的消息分组在一起。默认的分类分词器假定为英语日志消息。对于其他语言,您必须为作业定义不同的 categorization_analyzer

此外,用于影响分类过程的词典仅包含英语单词。这意味着分类在英语中的效果可能比在其他语言中更好。自定义词典的功能将在未来的版本中添加。

与机器学习作业关联的计数之一是 missing_field_count,它指示缺少配置字段的记录数。

由于作业分析 JSON 数据,因此 missing_field_count 可能会产生误导。由于数据的结构,可能会预期缺少字段,因此不会产生不良结果。

有关 missing_field_count 的更多信息,请参阅 获取异常检测作业统计信息 API

启用 Elasticsearch 安全功能后,数据馈送会存储创建或更新该数据馈送的用户当时的角色。这意味着,如果用户在创建或更新数据馈送后其角色发生了更改,则数据馈送将继续运行,而不会发生变化。但是,如果与数据馈送一起存储的角色的权限发生了更改,则会影响数据馈送。有关更多信息,请参阅数据馈送

在 6.6 及更高版本中,get jobs APIget job statistics API 最多返回 10,000 个作业。 同样,get datafeeds APIget datafeed statistics API 最多返回 10,000 个数据馈送。

运行预测时,可能会考虑以下一些因素

  • 预测与实时机器学习分析同时运行。也就是说,在生成预测时,机器学习分析不会停止。但是,预测可能会对异常检测作业产生影响,尤其是在内存使用方面。因此,只有在模型内存状态可接受时,才会运行预测。
  • 创建预测时,必须打开异常检测作业。否则,会发生错误。
  • 如果数据不足以生成任何有意义的预测,则会发生错误。通常,在数据分析的学习阶段早期创建的预测不太准确。

Kibana 中的机器学习功能使用弹出窗口。您必须配置 Web 浏览器,使其不阻止弹出窗口,或者为您的 Kibana URL 创建一个例外。

在 Kibana 中,不会显示异常浏览器单指标查看器图表,原因是:

  • 由于分类导致的异常(如果未启用模型图),
  • 如果数据馈送使用脚本字段且未启用模型图(定义指标字段的脚本除外),
  • 如果数据馈送使用复合聚合,且该复合聚合具有除 termsdate_histogram 之外的复合源,
  • 如果您的 数据馈送使用带有嵌套 terms aggs 的聚合且未启用模型图,
  • freq_rare 函数,
  • info_contenthigh_info_contentlow_info_content 函数,
  • lat_long 地理函数
  • time_of_daytime_of_week 函数,
  • varphigh_varplow_varp 函数。

有关支持的检测器函数的更详细视图,请参阅下表。

在数据很少的情况下,图表看起来也很奇怪。例如,如果只有一个数据点,则它表示为单个点。如果只有两个数据点,则它们由一条线连接。下表显示了单指标查看器中支持哪些检测器函数。

检测器函数 函数描述 支持
count、high_count、low_count、non_zero_count、low_non_zero_count 计数函数
count、high_count、low_count、non_zero_count、low_non_zero_count 带有不是 doc_count 的 summary_count_field_name(未启用模型图) 计数函数
使用数据馈送配置中基数聚合的非 doc_count 的 summary_count_field 的 non_zero_count(未启用模型图) 计数函数
distinct_count、high_distinct_count、low_distinct_count 计数函数
mean、high_mean、low_mean Mean、high_mean、low_mean
min Min
max Max
metric Metric
median、high_median、low_median Median、high_median、low_median
sum、high_sum、low_sum、non_null_sum、high_non_null_sum、low_non_null_sum 求和函数
varp、high_varp、low_varp Varp、high_varp、low_varp 是(仅当启用了模型图时)
lat_long Lat_long 否(但在异常浏览器中显示地图)
info_content、high_info_content、low_info_content Info_content、High_info_content、Low_info_content 是(仅当启用了模型图时)
rare Rare
freq_rare Freq_rare
time_of_day、time_of_week 时间函数

如果您在 Kibana 中创建作业,则必须使用数据馈送。 如果要分析的数据未存储在 Elasticsearch 中,则您无法使用数据馈送,因此也无法在 Kibana 中创建作业。 但是,您可以使用机器学习 API 创建作业。 有关更多信息,请参阅数据馈送API 快速参考

如果在 Kibana 中创建单个或多个指标作业,则可能会在后台启用一些选项,对于大型或长时间运行的作业,您可能需要重新考虑这些选项。

例如,在 Kibana 中创建单个指标作业时,通常会启用 model_plot_config 高级配置选项。 该配置选项会导致模型信息与结果一起存储,并提供更详细的异常检测视图。 它专门由 Kibana 中的单指标查看器使用。 但是,启用此选项后,会给系统性能带来相当大的开销。 如果您的作业有许多实体,例如来自数万台服务器的数据,则为每个存储桶存储此附加模型信息可能会有问题。 如果您不确定是否需要此选项,或者遇到性能问题,请编辑您的作业配置以禁用此选项。

同样,在 Kibana 中创建单个或多个指标作业时,在某些情况下,它会对从 Elasticsearch 中检索的数据使用聚合。 以这种方式汇总数据的好处之一是 Elasticsearch 会自动在您的集群中分配这些计算。 然后将此汇总数据馈送到机器学习,而不是原始结果,这减少了在检测异常时必须考虑的数据量。 但是,如果您有两个作业,其中一个作业使用预聚合数据,而另一个作业不使用预聚合数据,则它们的结果可能会有所不同。 这种差异是由于输入数据的精度差异造成的。 机器学习分析旨在感知聚合,并且通过预聚合数据获得的性能可能提高,从而使潜在的较差精度值得。 如果要查看或更改作业中使用的聚合,请参阅数据馈送中的 aggregations 属性。

当数据馈送的聚合间隔与作业的存储桶跨度不匹配时,在单指标查看器异常浏览器中绘制的图表的值与作业的实际值不同。 为了避免这种行为,请确保数据馈送配置中的聚合间隔和异常检测作业配置中的存储桶跨度具有相同的值。

空间使您能够在 Kibana 中组织异常检测作业,并且仅查看属于您的空间的作业和其他已保存对象。 但是,此有限范围不适用于日历过滤器; 它们在所有空间中都可见。

汇总索引和带有汇总索引的数据视图不能在 Kibana 中的异常检测作业或数据馈送中使用。 如果您尝试分析存在于使用实验性数据汇总功能的索引中的数据,则异常检测作业创建向导将失败。 如果您使用 API 创建使用数据汇总功能的异常检测作业,则作业结果可能无法在 Kibana 中的单指标查看器异常浏览器中正确显示。

© . All rights reserved.