尝试为特定的日志文件编写Grok模式

时间:2019-05-02 12:26:03

标签: devops elastic-stack logstash-grok oniguruma

我正在尝试为应用程序生成的日志文件编写Grok模式。我无法过滤掉几个字段。 输入日志文件

2019-05-02 05:32:41,017 INFO [some_class_name] Property: MatchResult(id=null, symbol=BTC_ETH, a=13172871, b=11372687136, c=1111, d=2222, e=139128979137, f=138713871, number=1.00000000000000000000, price=0.0423000, g=1, h=1, i=0.000100000000000000000000, j=0.000004525972500000000000000000000000000000000, createTime=Thu May 02 05:32:41 UTC 2019)
2019-05-02 11:06:46,356 INFO [Some_class_name] property:  User uid:2 Login ip:127.0.0.1

这两行都将在同一日志文件中。我需要过滤掉其中的每个字段。例如:

%{DATESTAMP:date} %{LOGLEVEL:log} \[%{DATA:class}\] %{NOTSPACE:Property}\: %{SPACE} %{NOTSPACE:user} %{WORD:uid}

在uid之后,我尝试使用此模式(对于日志文件的第二行,我无法获取数字,即uid:2) 同样,对于第一行,我直到Property:MatchResult,在'('之后,我都无法获得单独的字段。 我是第一次这样做。请让我知道是否需要更多信息。 谢谢

1 个答案:

答案 0 :(得分:1)

尝试一下:

template <>
struct A<B>::wrapper<B>
{
    // V-- this is where I am having issues --V
    static const X::(func)(int, int, char) = &X::doY
}

在Elasticsearch 6.7中测试