【发布时间】:2017-02-06 14:21:49
【问题描述】:
在我的应用程序中,我的 log fromat 如下-
logFormat: '%-5level [%date{yyyy-MM-dd HH:mm:ss,SSS}] [%X{appReqId}] [%X{AppUserId}] %logger{15}: %m%n'
该格式的输出就像
INFO [2017-02-03 11:09:21.792372] [b9c0d838-10b3-4495-9915-e64705f02176] [ffe00000000000003ebabeca] r.c.c.f.r.MimeTypeResolver: [Tika MimeType Detection]: filename: 'N/A', detected mime-type: 'application/msword', time taken: 2 ms
现在我希望日志的每个字段都可以在 kibana 查询,为此我希望 logstash 解析输入日志消息,似乎 grok 过滤器可以帮助我们。如果 grok 过滤器能够正确过滤我的消息输出应该是这样的
"message" => "INFO [2017-02-03 11:09:21.792372] [b9c0d838-10b3-4495-9915-e64705f02176] [ffe00000000000003ebabeca] r.c.c.f.r.MimeTypeResolver: [Tika MimeType Detection]: filename: 'N/A', detected mime-type: 'application/msword', time taken: 2 ms",
"appReqId" => "b9c0d838-10b3-4495-9915-e64705f02176",
"timestamp" => "2017-02-03 11:09:21.792372",
"AppUserId" => "ffe00000000000003ebabeca",
"logger" => "r.c.c.f.r.MimeTypeResolver",
我无法弄清楚如何在 logstash.conf 文件中进行配置,以便获得所需的输出。 我试过像以下
filter {
grok {
match => { "message" => "%{LOGLEVEL:severity}* %{YEAR:year}-%{MONTHNUM:month}-%{MONTHDAY:day} %{TIME:time} %{JAVACLASS:class}\.%{JAVAFILE:file}" }
}
}
并在grok patter varifier 进行了验证,但它不起作用。任何形式的帮助都将不胜感激。
【问题讨论】:
标签: logstash kibana elastic-stack logstash-grok