向机器学习结果添加自定义 URL
编辑向机器学习结果添加自定义 URL
编辑您可以选择性地将一个或多个自定义 URL 附加到您的异常检测任务。这些链接会出现在 异常浏览器 和 单指标查看器 中的异常表格中,可以将您定向到仪表板、Discover 应用或外部网站。例如,您可以定义一个自定义 URL,为用户提供一种从结果集中向下钻取到源数据的方式。
当您在 Kibana 中创建或编辑异常检测任务时,它可以简化 Kibana 仪表板和 Discover 应用的自定义 URL 创建,并允许您测试 URL。例如:
对于每个自定义 URL,您必须提供 URL 和标签,标签是异常表格中显示的链接文本。您还可以选择性地提供时间范围。当您链接到 Discover 或 Kibana 仪表板时,您将有其他选项来指定相关的数据视图或仪表板名称以及查询实体。
自定义 URL 中的字符串替换
编辑您可以在自定义 URL 中使用美元符号 ($) 分隔的标记。这些标记会被替换为异常记录中相应字段的值。例如,原始数据
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_name
、by_field_name
、over_field_name
或 partition_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,以检查它是否按预期工作,尤其是在使用字符串替换时。