我已将博客导入Elasticsearch
via Logstash
。这已成功完成。
我在日志文件中有一个clientip
始终填充的字段 ( ) 和另一个有时填充的字段 ( trueclientip
)。我想根据两者的合并进行聚合;例如,如果trueclientip
不为空,则使用,否则使用clientip
.
我如何使用 Kibana 中的可视化来做到这一点?我需要生成脚本字段还是有其他方法?
谢谢。
我已将博客导入Elasticsearch
via Logstash
。这已成功完成。
我在日志文件中有一个clientip
始终填充的字段 ( ) 和另一个有时填充的字段 ( trueclientip
)。我想根据两者的合并进行聚合;例如,如果trueclientip
不为空,则使用,否则使用clientip
.
我如何使用 Kibana 中的可视化来做到这一点?我需要生成脚本字段还是有其他方法?
谢谢。
定义一个应具有此公式的脚本字段:doc['trueclientip'].value ? doc['trueclientip'].value : doc['clientip'].value
并在您的聚合中使用它。
但是,这个脚本化字段功能和ip
类型有一个缺点:您从脚本中得到的似乎是数字本身(这是逻辑,因为 Kibana 4 中的脚本化字段仅使用 Lucene 表达式作为一种语言),而不是字符串表示。内部 IP 实际上long
是 Lucene 中的数字。
例如,127.0.0.1
在内部表示为2130706433
。这就是您将在 Visualize 中看到的内容。
确实不理想,在脚本领域拥有更高级的脚本语言会很好,但是github 问题已经存在。