如何使用logstash读取日志中的数据?

How to read data in logs using logstash?

我刚刚开始日志存储,我在日志文件中有日志文件,整个对象都打印在日志中,因为我的对象很大,我不能将 grok 模式写入整个对象,而且我只期望两个值从那些对象中。你能告诉我们我怎样才能得到它吗?

我的日志文件如下所示

2015-06-10 13:02:57,903 你完成的 OBJ[name:test;loc:blr;country:india,acc:test@abe.com]

这只是一个示例,我的对象在 int 中有很多属性,在这些对象中我只需要获取名称和 acc。

问候 莫涵.

您可以使用以下模式进行相同的操作

%{GREEDYDATA}\[name:%{WORD:name};%{GREEDYDATA},acc:%{NOTSPACE:account}\]

GREEDYDATA 我们定义如下 -

GREEDYDATA .*

关键在于理解greedydata宏。 它尽可能吃掉所有可能的字符。

Logstash 模式不必匹配整行。您还可以在一个 grok{} 中提取主要信息(日期、时间等),然后使用不同的 grok{} 提取您想要的两个字段。