如何在 Kibana 的 Discover UI 中查看 group/session 中的日志行?

How to view the log rows in group/session in Kibana's Discover UI?

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

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

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

希望带session/groupingUI的Discover能显示所有session。当我点击它时,我仍然可以在一个会话中看到日志行。

可以吗?或者最好的方法是什么?谢谢。

Discover 将日志条目显示为存储的原始文档,您可以在 Discover 上保存搜索,即使不过滤任何内容。通过 Vizualize,您可以创建小部件,这些小部件可以像会话一样聚合数据。我通常为时间线制作一两个“视觉生成器”,为 (request_uri、主机、user_agent、client_ip) 制作一个数据 table,为 [=29=制作一个饼图].使用这些视觉效果,您可以创建一个仪表板并包含来自发现的搜索结果。在此仪表板上,您可以搜索和过滤,如果您从发现中添加搜索,仪表板将显示每个仍会显示的原始数据。我只在添加新索引后使用发现。

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 所描述的,可视化可能看起来像这样

正如@sleepyhead 所说,Discover 不是为了你要找的目的。您可以在 Kibana 中从 Visualize 创建 Datatable(我想您已经完成了)。

接下来,在 Bucket Aggregations 部分,您可以选择 Split Rows 并进行 Terms 聚合。 Select 你想要的字段(主机)在那里。然后添加一个子桶,然后再次选择 Split Rows 然后 Terms Aggregation 和 select 另一个字段 (client_ip).

这将在您的数据 table 中为每个唯一的两个字段集(主机,client_ip)创建一行,据我了解您的问题和评论。

默认情况下,只有一个列 (Count),但是,您显然可以通过添加 Metric Aggregations.

来添加更多列