kibana 3 查询中的正斜杠

kibana 3 查询中的正斜杠

我正在尝试添加一个与以斜杠结尾的请求匹配的查询,如下所示:

n.n.n.n - - [16/Oct/2013:16:40:41 +0100] "GET / HTTP/1.1" 200 25058 "-" "Mozilla/5.0 (iPad; CPU OS 7_0_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A501 Safari/9537.53"

我正在使用 Lucene 查询类型。

如果我的查询设置为*,我就会看到该事件。

如果我将其设置为request:"css",我就会看到 CSS 请求,正如预期的那样。

但是,以下所有操作均未产生结果:

  • request:"/"
  • request:"\/"
  • request:"\\/"

我尝试了 Lucene 正则表达式,但没有成功:

  • request:/\//

我注意到其他人也遇到了类似的问题,尽管是在 Kibana 2 上:https://github.com/rashidkpc/Kibana/issues/401

如何查询以字符结尾的请求/

答案1

您定义了什么映射?

根据您在 [请求] 字段上定义的映射,斜杠“/”可能不会存储在 elasticsearch 索引中。

如果您为 kibana 的 [请求] 字段添加一个术语面板,您是否会看到完整的请求值,或者是否会看到这些值被拆分为关键字/术语?

答案2

我设法通过在记录输出到 elasticsearch 之前添加一个字段来解决我的问题。

在我的indexer.conf文件中,我添加了以下代码:

filter {
  if [request] =~ /\/$/ {
    mutate {
      add_field => {
        'file_type' => 'html'
      }
    }
  }
}

我现在可以通过查询挑选出我感兴趣的记录file_type:"html"

这实际上可能是一种更好的方法,因为这里有关于使用前导通配符的警告:

允许在单词开头使用通配符(例如“*ing”)特别重要,因为需要检查索引中的所有术语,以防它们匹配。

来源:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#_wildcards

所以,我可能会添加图像、JavaScript、CSS等的测试。

答案3

对于我来说,在 .* 周围使用括号效果很好。

request.raw:/(.*)\//

它返回所有以 结尾的 url /

相关内容