【问题标题】:Search special characters in Kibana search bar在 Kibana 搜索栏中搜索特殊字符
【发布时间】:2017-05-24 22:34:55
【问题描述】:

我有 ELK 5.2.1 用于日志分析。现在我需要通过 Kibana 搜索栏搜索一些字符串。例如,我需要查找包含“usage:527”的日志。我理解语法应该遵循https://lucene.apache.org/core/2_9_4/queryparsersyntax.html。但这对我不起作用。 我试过了:

"usage\:527"
"usage:527"
"usage?527"
message:/usage\:527/
message:/.*usage:527.*/

但没有任何效果。任何有经验的人可以帮助我吗?谢谢!

我知道使用开发工具查询是另一种方式,但我的一些 ELK 用户没有这种能力。

这是索引详细信息:

    curl  -XGET -u elastic localhost:9200/app_web_log-20170410
Enter host password for user 'elastic':
{"app_web_log-20170410":{"aliases":{},"mappings":{"log":{"properties":{"@timestamp":{"type":"date"},"@version":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"beat":{"properties":{"hostname":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"version":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"deployment":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"input_type":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"message":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"module":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"offset":{"type":"long"},"source":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"type":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}},"settings":{"index":{"creation_date":"1491782403146","number_of_shards":"5","number_of_replicas":"1","uuid":"73cWj5AHTmeFdXnJk4xCjQ","version":{"created":"5020199"},"provided_name":"app_web_log-20170410"}}}}

【问题讨论】:

  • 也试过{"match":{"message":"usage?275"}}。但还是不行。
  • 你的message字段的映射是什么?
  • 消息字段来自logstash。是日志条目
  • 运行curl -XGET localhost:9200/logstash-*会得到什么?
  • 我只有 {}。实际上我没有以logstahs *开头的索引。我已经改名了。但是使用该命令也得到了 {}

标签: elasticsearch kibana


【解决方案1】:

根据您的映射,如果消息字段包含确切的值usage:527,您可以在 Kibana 中尝试以下查询:

message.keyword:"usage:527"

如果usage:527 是您的消息字段的子字符串,那么您可以尝试使用regular expression,像这样

message.keyword:/usage:527/

【讨论】:

  • 谢谢。但这也行不通。我尝试了“527”和“用法”,两者都有效。但“用法:527”有效。
  • 你能显示包含usage:527的消息字段的完整值吗?
  • 2017年5月28日05:26:58024 [HTTP-生物8099-EXEC-23113] INFO [ServiceUsageController:用法:527] 123456789012345 - 76eb59576928e53067cff5eb17c9279e令牌XXX-abbfd74e529c4bb665a4c696f471c221,响应数据:{”代码":"0","token":"XXX-abbfd74e529c4bb665a4c696f471c221","properties":{"allowAppReport":0,"initPageType":2,"showPackageIcon":0,"timeZone":"GMT-03:00 "},"tid":"76eb59576928e53067cff5eb17c9279e"}
  • 我在里面看不到usage:527。你能检查我更新的答案吗?
  • 感谢您的提问。一点运气都没有。它仍然是一样的。很好奇为什么。
猜你喜欢
  • 2015-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-10
  • 2020-08-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多