elasticsearch “怎么做?”;“不存在的地方”;Kibana/ELK中的类型过滤?,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana" /> elasticsearch “怎么做?”;“不存在的地方”;Kibana/ELK中的类型过滤?,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana" />

elasticsearch “怎么做?”;“不存在的地方”;Kibana/ELK中的类型过滤?

elasticsearch “怎么做?”;“不存在的地方”;Kibana/ELK中的类型过滤?,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana,我正在使用ELK从日志文件创建仪表板。我有一个日志文件,其中包含一个id值和一个“success”/“failure”值,显示具有给定id的操作是成功还是失败。每个操作/id可以失败无数次,最多成功一次。在我的Kibana仪表板中,我希望为每个操作id显示带有“failure”值的日志条目计数,但我希望筛选出存在该id的“success”日志条目的情况。i、 我只对从未成功过的行动感兴趣。有什么技巧可以达到这个目的吗?一个选项是在Kibana中为这个条件创建一个自己的查询。然后让你的面板进行计算

我正在使用ELK从日志文件创建仪表板。我有一个日志文件,其中包含一个id值和一个“success”/“failure”值,显示具有给定id的操作是成功还是失败。每个操作/id可以失败无数次,最多成功一次。在我的Kibana仪表板中,我希望为每个操作id显示带有“failure”值的日志条目计数,但我希望筛选出存在该id的“success”日志条目的情况。i、 我只对从未成功过的行动感兴趣。有什么技巧可以达到这个目的吗?

一个选项是在Kibana中为这个条件创建一个自己的查询。然后让你的面板进行计算,只是为了使用这个查询

value:failure
更多信息请点击此处:
这在Kibana 5搜索栏中很简单。只需添加一个过滤器

!(_exists_:"your_variable") 
您可以切换过滤器或将反向查询写入

_exists_:"your_variable"

在Kibana4和Kibana3中,您可以使用此查询,该查询现在已被弃用

_missing_:"your_variable"  

注意:在Elasticsearch 7.x中,Kibana现在可以在搜索栏中下拉选择KQL或Lucene样式的查询。请注意,
\u exists\u:FIELD
等语法是Lucene语法,您需要相应地设置下拉列表

!(\u exists\u:NAME)
对我不起作用。我使用以下建议:

更新我面临的问题是ES语法禁止在否定运算符后加空格。使用以下其中一种:

NOT _exists_:FIELD
!_exists_:FIELD
-_exists_:FIELD
检查教程:


注意:在Elasticsearch 7.x中,Kibana现在可以在搜索栏中下拉选择KQL或Lucene样式的查询。请注意,诸如
\u exists.\u:FIELD
等语法是Lucene语法,您需要相应地设置下拉列表。

在较新的ELK版本中(我认为在Elasticsearch 6之后),您应该使用
字段:
检查字段是否存在,而
不使用字段:
检查它是否缺失

弹性搜索参考:

我只能看到基于文档内容选择文档的选项,而我正在寻找一种基于其他文档内容选择文档的解决方案,即SQL“不存在”/“不在”样式的查询。我错过了什么吗?以下工作对你来说不合适:1。在Kibana中,使用获取日志条目的条件创建一个新查询。在您的例子中,仅使用value:failure可能就足够了,如果数据位于同一个字段上,但这也适用于诸如NOT之类的布尔运算符。2.在Kibana中添加一个新面板,基于简单术语的面板应该可以。在“参数”字段中,输入要计数的ID,然后在“查询”下拉列表中选择“已选择”,并突出显示上一步执行的查询。问题是按sql“不存在”进行筛选样式:我只想计算value=failure的条目,而不存在相同id的value=success的条目。好的,那么上面的方法就行不通了。如果您有任何其他字段指示成功的日志条目,您可以将其从查询中排除,则上述操作应该有效。此外,Kibana 4现在支持聚合,这可能允许您进行更高级的唯一计数。作为参考,这里有一个链接,指向“存在”和“缺失”的u符号的记录位置:
\u缺失
似乎不再出现在ElasticSearch 5.0中<代码>!(_exists:“field”)工作正常。感谢您更新查询语法@federane!注意:在7.x中,当出现
时,我必须将
(!\u exists\u:“您的变量”)
放在括号中谢谢!顺便说一句,在Kibana搜索行中,它只适用于我的大写“NOT”
NOT _exists_:FIELD
!_exists_:FIELD
-_exists_:FIELD