在 kibana 中按 uri 参数过滤

filter by uri param in kibana

我有一个如下所示的休息端点:

GET /files/{id}/properties

我想在 kibana 发现选项卡中通过 uri 过滤此端点,但我不知道如何在 kibana 中编写像“/files/*/properties”这样的正则表达式。我将端点 uri 存储在 uri 字段中。我该怎么做?

很难在 kibana 中直接使用正则表达式,但您可以在 Kibana 过滤器中使用正则表达式,因为您可以直接编辑过滤器。您可以在您的 kibana 中添加一个随机过滤器,然后单击以编辑您的过滤器,如下所示:[如果您使用的分词器不包含 /][=,则可以使用16=]

{
  "query": {
    "regexp": {
      "uri": {
        "value": "/files/.*/properties"
      }
    }
  }
}

关于如何添加和编辑过滤器:See this

更新:

刚试过,如果您使用默认分词器,您的 url 似乎会被分词为 ["files", "${id}", "properties"]。在这种情况下,我认为您无法使用正则表达式进行完整搜索。正则表达式仅适用于单个单词。我认为在这种情况下你应该使用短语匹配:

{
  "query": {
    "match": {
      "uri": {
        "query": "files properties",
        "type": "phrase",
        "slop": "2"
      }
    }
  }
}

在此处查看有关 phrase match with slop 的文档。