我们已经成功地在我们的生产环境中设置了ELK堆栈。我们还可以在Kibana服务器上看到日志(日志是非结构化的)输出。

一切对我们来说都很好。但是,我们唯一关心的是,kibana中的消息是针对的每行写入给定日志文件而构造的。

问题:

因此,有没有一种方法可以合并(合并成行)日志消息,由限制最大行数(File beat中的,然后再将它们发送到logstash或 flex 搜索),这将被视为ElasticSearch / 1事件Kibana / Logstash。

注意:仅需注意日志消息是非结构化的(它们中没有特定的正则表达式模式)。所以不能使用this。但是我确实尝试了 max-lines 方法,但是在kibana中的事件显示了单行文档。

例。

如果我的日志(日志文件)具有这样的条目

Sending ... 0 .. 2016-02-17 13:20:13 +0530
Sending ... 1 .. 2016-02-17 13:20:13 +0530
Sending ... 2 .. 2016-02-17 13:20:14 +0530
Sending ... 3 .. 2016-02-17 13:20:14 +0530
Sending ... 4 .. 2016-02-17 13:20:14 +0530
Sending ... 5 .. 2016-02-17 13:20:15 +0530
Sending ... 6 .. 2016-02-17 13:20:15 +0530
Sending ... 7 .. 2016-02-17 13:20:16 +0530
Sending ... 8 .. 2016-02-17 13:20:16 +0530
Sending ... 9 .. 2016-02-17 13:20:16 +0530
Sending ... 10 .. 2016-02-17 13:20:17 +0530
Sending ... 11 .. 2016-02-17 13:20:17 +0530
Sending ... 12 .. 2016-02-17 13:20:18 +0530
Sending ... 13 .. 2016-02-17 13:20:18 +0530
Sending ... 14 .. 2016-02-17 13:20:18 +0530
Sending ... 15 .. 2016-02-17 13:20:19 +0530
Sending ... 16 .. 2016-02-17 13:20:19 +0530
Sending ... 17 .. 2016-02-17 13:20:20 +0530
Sending ... 18 .. 2016-02-17 13:20:20 +0530
Sending ... 19 .. 2016-02-17 13:20:20 +0530
Sending ... 20 .. 2016-02-17 13:20:21 +0530
Sending ... 21 .. 2016-02-17 13:20:21 +0530
Sending ... 22 .. 2016-02-17 13:20:22 +0530
Sending ... 23 .. 2016-02-17 13:20:22 +0530
Sending ... 24 .. 2016-02-17 13:20:22 +0530
Sending ... 25 .. 2016-02-17 13:20:23 +0530
Sending ... 26 .. 2016-02-17 13:20:23 +0530
Sending ... 27 .. 2016-02-17 13:20:24 +0530
Sending ... 28 .. 2016-02-17 13:20:24 +0530
Sending ... 29 .. 2016-02-17 13:20:24 +0530
Sending ... 30 .. 2016-02-17 13:20:25 +0530
Sending ... 31 .. 2016-02-17 13:20:25 +0530
Sending ... 32 .. 2016-02-17 13:20:26 +0530
Sending ... 33 .. 2016-02-17 13:20:26 +0530
Sending ... 34 .. 2016-02-17 13:20:26 +0530
Sending ... 35 .. 2016-02-17 13:20:27 +0530
Sending ... 36 .. 2016-02-17 13:20:27 +0530
Sending ... 37 .. 2016-02-17 13:20:28 +0530
Sending ... 38 .. 2016-02-17 13:20:28 +0530
Sending ... 39 .. 2016-02-17 13:20:29 +0530
Sending ... 40 .. 2016-02-17 13:20:29 +0530
Sending ... 41 .. 2016-02-17 13:20:30 +0530

我希望文件节拍将它们分组(更好的词是将它们合并)

(示例:filebeat中的配置,这些配置将合并它们。)

因此,最终发送到logstash / elastic的事件应如下所示

1个事件(消息为..)
Sending ... 0 .. 2016-02-17 13:20:13 +0530
Sending ... 1 .. 2016-02-17 13:20:13 +0530
Sending ... 2 .. 2016-02-17 13:20:14 +0530
Sending ... 3 .. 2016-02-17 13:20:14 +0530
Sending ... 4 .. 2016-02-17 13:20:14 +0530
Sending ... 5 .. 2016-02-17 13:20:15 +0530
Sending ... 6 .. 2016-02-17 13:20:15 +0530
Sending ... 7 .. 2016-02-17 13:20:16 +0530
Sending ... 8 .. 2016-02-17 13:20:16 +0530
Sending ... 9 .. 2016-02-17 13:20:16 +0530
Sending ... 10 .. 2016-02-17 13:20:17 +0530
Sending ... 11 .. 2016-02-17 13:20:17 +0530
Sending ... 12 .. 2016-02-17 13:20:18 +0530
Sending ... 13 .. 2016-02-17 13:20:18 +0530
Sending ... 14 .. 2016-02-17 13:20:18 +0530
Sending ... 15 .. 2016-02-17 13:20:19 +0530

2个事件(消息为..)
Sending ... 16 .. 2016-02-17 13:20:19 +0530
Sending ... 17 .. 2016-02-17 13:20:20 +0530
Sending ... 18 .. 2016-02-17 13:20:20 +0530
Sending ... 19 .. 2016-02-17 13:20:20 +0530
Sending ... 20 .. 2016-02-17 13:20:21 +0530
Sending ... 21 .. 2016-02-17 13:20:21 +0530
Sending ... 22 .. 2016-02-17 13:20:22 +0530
Sending ... 23 .. 2016-02-17 13:20:22 +0530
Sending ... 24 .. 2016-02-17 13:20:22 +0530
Sending ... 25 .. 2016-02-17 13:20:23 +0530
Sending ... 26 .. 2016-02-17 13:20:23 +0530
Sending ... 27 .. 2016-02-17 13:20:24 +0530
Sending ... 28 .. 2016-02-17 13:20:24 +0530
Sending ... 29 .. 2016-02-17 13:20:24 +0530
Sending ... 30 .. 2016-02-17 13:20:25 +0530
Sending ... 31 .. 2016-02-17 13:20:25 +0530
Sending ... 32 .. 2016-02-17 13:20:26 +0530

等等 ...

但是不幸的是,它只是为每行创建一个事件。请参阅随附的屏幕截图。

elasticsearch - 合并filebeat + logstash中的行-LMLPHP

这里我的Filebeat配置看起来像this(由于日志通常是非结构化的,因此上面的给定日志仅是一次,因此不能再次使用regex。)

想到了吗?

注意:文件更新版本1.1.0

最佳答案

您将filebeat多行的max_lines用于错误的目的。

max_lines用于确保刷新多行事件Elasticsearch / Logstash(Filebeat documentation)。

这意味着,例如,当您将max_lines设置为5时。
而且您有7行多线事件。 Filebeat将仅在发送前5行之后才刷新多行事件的内存并开始发送第二个事件。

目前,Filebeat 1.1.0无法实现您想要的方式。您总是可以发布日志文件样本,以显示日志文件的不规则性,也许我们大家都能找到一个模式(Github issue)。

另一方面,您为什么要这样做?

关于elasticsearch - 合并filebeat + logstash中的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35415175/

10-16 16:58