如何在Kibana中查找包含+符号字段的日志?
Kibana中查找包含+字符的日志的正确方法
问题背景
我的请求里包含带+符号的URL编码数据,想在Kibana中查找所有字段包含+字符的日志。我试过用RawRequest: *+*和RawRequest: %+%查询,但都没用,请问正确的查询方法是什么?示例数据:RawRequest: "something=1&anothersomehting=2&key=2+1"
正确查询方法
方法1:使用KQL(Kibana查询语言)
直接用contains关键字匹配字面量,无需转义特殊字符,语法直观:
RawRequest contains "+"
方法2:使用Lucene查询语法(转义特殊字符)
Lucene中+是逻辑与的特殊运算符,必须用反斜杠\转义后才能当作普通字符匹配,查询语句如下:
RawRequest: *\+*
为什么之前的方法无效
RawRequest: *+*:这里的+会被Lucene解析为逻辑与操作符,查询逻辑变成匹配所有非空的RawRequest字段,而非包含+字符的日志。RawRequest: %+%:Lucene的通配符是*和?,%不属于通配符,这个查询实际是匹配包含%+%字符串的日志,和目标需求不符。
内容的提问来源于stack exchange,提问作者Yurii Khilchenko
相关产品推荐
相关产品推荐

