正在加载

向机器学习结果添加自定义 URL

Elastic Stack 无服务器

您可以选择性地将一个或多个自定义 URL 附加到异常检测作业。 这些链接显示在异常资源管理器单指标查看器中的异常表中,可以将您定向到仪表板、Discover 应用程序或外部网站。 例如,您可以定义一个自定义 URL,为用户提供一种从结果集中向下钻取到源数据的方式

An example of the custom URL links in the Anomaly Explorer anomalies table

当您在 Kibana 中创建或编辑异常检测作业时,它可以简化 Kibana 仪表板和 Discover 应用程序的自定义 URL 的创建,并使您能够测试您的 URL。 例如

Add a custom URL in {{kib}}

对于每个自定义 URL,您必须提供 URL 和标签,标签是显示在异常表中的链接文本。 您还可以选择性地提供时间范围。 当您链接到 Discover 或 Kibana 仪表板时,您将拥有其他选项来指定相关的数据视图或仪表板名称和查询实体。

您可以在自定义 URL 中使用美元符号 ($) 分隔的令牌。 这些令牌会被替换为异常记录中相应字段的值。 例如,Raw data URL 可能会解析为 discover#/?_g=(time:(from:'$earliest$',mode:absolute,to:'$latest$'))&_a=(index:ff959d40-b880-11e8-a6d9-e546fe2bba5f,query:(language:kuery,query:'customer_full_name.keyword:"$customer_full_name.keyword$"'))。 在这种情况下,当您单击该链接时,customer_full_name.keyword 字段的相关值将传递到目标页面。

提示

并非源数据中的所有字段都存在于异常结果中。 例如,如果在检测器中将字段指定为 field_nameby_field_nameover_field_namepartition_field_name,则可以在自定义 URL 中使用它。 但是,仅在 categorization_field_name 属性中使用的字段不会存在于异常结果中。 当您在 Kibana 中创建自定义 URL 时,仅当检测器中存在适当的字段时,才会显示查询实体选项。

$earliest$$latest$ 令牌将所选异常的时间跨度的开始和结束传递到目标页面。 这些令牌被替换为 ISO-8601 格式的日期时间字符串。 如果您为异常表选择了 1 小时的间隔,则这些令牌使用异常时间前后各一小时作为最早和最晚时间。 您可以通过为自定义 URL 设置时间范围来更改此行为。

还有 $mlcategoryregex$$mlcategoryterms$ 令牌,它们与您对字段值进行分类的异常检测作业有关。 有关此类分析的更多信息,请参见检测异常数据类别$mlcategoryregex$ 令牌传递所选异常类别的正则表达式值,该值由异常记录的 mlcategory 字段的值标识。 $mlcategoryterms$ 令牌传递所选异常类别的术语值。 每个分类术语都以加号 (+) 字符为前缀,因此当令牌传递到 Kibana 仪表板时,生成的仪表板查询会寻求与该类别的所有术语匹配。 例如,以下 API 更新作业以添加使用 $earliest$$latest$$mlcategoryterms$ 令牌的自定义 URL

 POST _ml/anomaly_detectors/sample_job/_update {
  "custom_settings": {
        "custom_urls": [
          {
            "url_name": "test-link1",
            "time_range": "1h",
            "url_value": "discover#/?_g=(time:(from:'$earliest$',mode:quick,to:'$latest$'))&_a=(index:'90943e30-9a47-11e8-b64d-95841ca0b247',query:(language:lucene,query_string:(analyze_wildcard:!t,query:'$mlcategoryterms$')),sort:!(time,desc))"
          }
        ]
      }
}

当您在 Kibana 的异常表中单击此自定义 URL 时,它会打开 Discover 页面,并显示异常发生前后一小时内的源数据。 由于此作业正在对日志消息进行分类,因此传递到查询中目标页面的某些 $mlcategoryterms$ 令牌值可能包括 +REC +Not +INSERTED +TRAN +Table +hostname +dbserver.acme.com

提示
  • 异常表中的自定义 URL 链接使用弹出窗口。 您必须配置您的 Web 浏览器,使其不会阻止弹出窗口,或者为您的 Kibana URL 创建例外。
  • 在创建到 Kibana 仪表板的链接时,仪表板的 URL 可能非常长。 请注意拼写错误、行尾字符和 URL 编码。 还要确保您为目标 Kibana 数据视图使用适当的索引 ID。
  • 如果使用影响因素名称进行字符串替换,请记住它可能并不总是出现在分析结果中,并且在这些情况下,URL 无效。 并非每个异常都始终存在具有统计意义的影响因素。
  • 替换为 $earliest$$latest$ 令牌的日期采用 ISO-8601 格式,并且目标系统必须理解此格式。
  • 如果作业对嵌套的 JSON 字段执行分析,则用于字符串替换的令牌可以使用点表示法引用这些字段。 例如,$cpu.total$
  • Elasticsearch 源数据映射可能会使查询字符串难以正常工作。 在保存作业配置之前测试自定义 URL,以检查它是否按预期工作,尤其是在使用字符串替换时。
© . All rights reserved.