Ant*_*ias 35 elasticsearch logstash kibana
我正在使用ELK从我的日志文件创建仪表板.我有一个包含价值ID和"成功" /"失败"值,显示与给定ID的操作是成功还是失败的条目的日志文件.每个操作/ id可以无限次地失败并且最多可以成功一次.在我的Kibana仪表板中,我想显示每个操作ID的"失败"值的日志条目计数,但我想过滤掉id存在"成功"日志条目的情况.即我只对从未成功的操作感兴趣.任何可以达到此目的的技巧提示?
Mla*_*hoi 88
这在Kibana 5搜索栏很容易.只需添加一个过滤器
!(_exists_:"your_variable")
Run Code Online (Sandbox Code Playgroud)
您可以切换过滤器或将反向查询写为
_exists_:"your_variable"
Run Code Online (Sandbox Code Playgroud)
在Kibana 4和Kibana 3中,您可以使用此查询,该查询现已弃用
_missing_:"your_variable"
Run Code Online (Sandbox Code Playgroud)
Ali*_*Ali 16
在较新的 ELK 版本中(我认为在 Elasticsearch 6 之后),您应该使用它field:*来检查该字段是否存在并not field:*检查它是否丢失。
弹性搜索参考:https : //www.elastic.co/guide/en/elasticsearch/reference/6.5/query-dsl-query-string-query.html#_wildcards
! (_exists_:NAME)不适合我。我使用来自以下方面的建议:
https://discuss.elastic.co/t/kibana-5-0-0--missing--is-not-working-anymore/64336
NOT _exists_:NAME
Run Code Online (Sandbox Code Playgroud)
更新我面临的问题是 ES 语法在否定运算符之后禁止空格。使用以下之一:
NOT _exists_:FIELD
!_exists_:FIELD
-_exists_:FIELD
Run Code Online (Sandbox Code Playgroud)
检查教程:https : //www.timroes.de/2016/05/29/elasticsearch-kibana-queries-in-depth-tutorial/
注意:在 Elasticsearch 7.x 中,Kibana 现在有一个下拉菜单,可以在搜索栏中选择 KQL 或 Lucene 样式的查询。请注意诸如_exists_:FIELDLucene 语法之类的语法,您需要相应地设置下拉菜单。
小智 8
在较新版本的 Kibana 中,默认语言现在是KQL(Kibana 查询语言),不再是 Lucene。所以这里的大多数答案都已经过时了。查询字段是否存在如下:
your_variable:*
Run Code Online (Sandbox Code Playgroud)
要回答你的问题,你可以否定这一点:
not your_variable:*
Run Code Online (Sandbox Code Playgroud)
您可以在这里找到更多文档:https://www.elastic.co/guide/en/kibana/7.15/kuery-query.html
如果您单击搜索字段内的该按钮,您也可以切换回 Lucene,但在我看来,新语言更容易使用:
