【问题标题】:Multiline in Logstash with timestamp in each lineLogstash 中的多行,每行带有时间戳
【发布时间】:2015-11-06 13:50:03
【问题描述】:

我在一个文件中写了一个多行日志,如下所示:

INFO   | jvm 1    | main    | 2014/11/06 13:41:30.112 | ERROR [appHTTP50] [appEmployeeAuthenticationProvider] Can't login with username 'username'
INFO   | jvm 1    | main    | 2014/11/06 13:41:30.112 | org.framework.security.authentication.BadCredentialsException: Bad credentials
INFO   | jvm 1    | main    | 2014/11/06 13:41:30.112 |     at de.app.platform.security.CoreAuthenticationProvider.authenticate(CoreAuthenticationProvider.java:133)
INFO   | jvm 1    | main    | 2014/11/06 13:41:30.112 |     at ca.canadiantire.security.appEmployeeAuthenticationProvider.authenticate(appEmployeeAuthenticationProvider.java:39)
INFO   | jvm 1    | main    | 2014/11/06 13:41:30.112 |     at org.framework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
INFO   | jvm 1    | main    | 2014/11/06 13:41:30.112 |     at org.framework.security.authentication.ProviderManager.authenticate(ProviderManager.java:177)

但是,下面的行是在开始的每行跟踪中:

信息 |虚拟机 1 |主要 | 2014/11/06 13:41:30.112 |

有谁知道如何将这一行留在“错误”附近的开头,并使用 grok 将该行的这一部分放在跟踪中,并在 Logstash 中作为一条消息获得完整的跟踪?欢迎任何其他解决方案。

【问题讨论】:

    标签: logstash logstash-grok logstash-configuration logstash-forwarder


    【解决方案1】:

    我认为 gsub{} 是答案。要么有一个条件节,可以从后续行中删除前言,例如:

    if [message] !~ /\| ERROR / {
        mutate {
            gsub => [ "message", "^.* \| ", "" ]
        }
    }
    

    如果它是“贪婪的”,可能会给你留下这样的一行:

    org.framework.security.authentication.BadCredentialsException: Bad credentials
    

    然后可以与后续的多行过滤器结合使用。

    显然,您需要使两个正则表达式都足够通用,以处理您期望的每个日志级别。

    【讨论】:

    • 嗨 Alain,这里的问题是只留下第一行并在跟踪中删除其他行,因为我们需要有初始时间戳。您对如何获得它有任何想法吗?另一件事是,我们不仅需要它来处理 ERROR,还需要处理 WARN 和 DEBUG。所以我想我们可以只用 mutate filter 插件替换(没有 if 语句)?
    • 我理解了这个问题,这就是我给你答案的原因。我也明白会有不止一个级别,这就是我在回答中提到这一点的原因。不,您不能删除“如果”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多