如何在Kibana的Discover UI中查看组/会话中的日志行?

时间:2018-11-05 07:16:53

标签: elasticsearch kibana elastic-stack kibana-6

我正在使用elasticsearch + kibana + logstash + filebeat最新的6.4.1来收集和分析Web日志。我的日志列如下:

timestamp, http_method, request_uri, http_status, host, user_agent, client_ip, client_port

我已经配置了ELK以在Kibana中显示我的日志。但是现在我想在会话中查看我的日志。我希望日志行可以按会话进行分组,并显示在Kibana的Discover页中。在我的情况下,具有相同(host, client_ip)的日志行属于同一会话。

我希望“带有会话/分组的UI”发现界面可以显示所有会话。当我单击它时,我仍然可以在一个会话中看到日志行。

有可能做到吗?或最佳方法是什么?谢谢。

2 个答案:

答案 0 :(得分:1)

Discover显示原始存储的日志条目为原始文档,即使不过滤任何内容,您也可以将搜索保存在Discover上。通过Vizualize,您可以创建小部件,这些小部件可以汇总会话之类的数据。我通常为时间轴制作一个或两个“可视生成器”,为(request_uri,host,user_agent,client_ip)制作一个数据表,为http_status制作一个饼图。借助这些视觉效果,您可以创建仪表板,并包含来自发现的搜索结果。在此仪表板上,您可以搜索和过滤,如果您从发现中添加搜索,则仪表板将显示每个原始数据,但仍将显示。我仅在添加新索引后使用Discover。

https://www.elastic.co/guide/en/kibana/current/visualize.html

https://www.elastic.co/guide/en/kibana/current/dashboard.html

如果您确实希望索引包含host / client_ip作为汇总,则必须对数据进行分组,然后再将其存储在elasticsearch中。仪表盘听起来是个更好的主意。

编辑:正如Waleed Ali所描述的,可视化效果看起来像这样

enter image description here

答案 1 :(得分:1)

如@sleepyhead所建议,发现并非出于您的目的。您可以从Kibana中的Visualize创建一个数据表(我想您已经完成了)。

接下来,在桶聚合部分中,您可以选择分割行并进行Terms聚合。在此处选择所需的字段(主机)。然后添加一个子存储桶,然后再次选择分割行,然后选择Terms聚合,然后选择另一个字段(client_ip)。

这将为两个字段(主机,client_ip)的每个唯一集合在数据表中创建一行,据我所知,这是您所需要的。

默认情况下,只会有一个列(计数),但是,您显然可以通过添加 Metric Aggregations 添加更多列。