【问题标题】:Update @timetamp field in logstash with custom timestamp value使用自定义时间戳值更新 logstash 中的 @timetamp 字段
【发布时间】:2015-05-04 12:16:43
【问题描述】:

我有以下用于解析以下异常堆栈跟踪的 logstash 配置文件。

堆栈跟踪

2015-03-02 09:01:51,040 [com.test.MyClass] ERROR - execution resulted in Exception
com.test.core.MyException
    <exception line1>
    <exception line2>
2015-03-02 09:01:51,040 [com.test.MyClass] ERROR - Encountered Exception, terminating execution

配置文件:

input {
stdin {}
}

filter {
  multiline {
      pattern => "(^%{TIMESTAMP_ISO8601}) | (^.+Exception+) | (^.+Error+)"
      negate => true
      what => "previous"
    }
}

output {
stdout { codec => rubydebug }
}

我能够将堆栈跟踪解析为单个 logstash 字段名称 message。但是我想用第一个异常行的时间戳更新 @timestamp,即 2015-03-02 09:01:51,040

目前它一直在为 @timestamp 使用默认时间戳

任何帮助将不胜感激。

【问题讨论】:

    标签: elasticsearch logstash grok logstash-grok logstash-forwarder


    【解决方案1】:

    您需要使用GROK过滤器提取时间值,然后使用DATE过滤器将值解析为@timestamp

    例如:

    input {
            stdin {
                    codec => multiline {
                            pattern => "(^%{TIMESTAMP_ISO8601}) | (^.+Exception+) | (^.+Error+)"
                            negate => true
                            what => "previous"
                    }
            }
    }
    
    filter {
    
            grok {
                    match => ["message" , "%{TIMESTAMP_ISO8601:logtime} %{GREEDYDATA:msg}"]
            }
    
            date {
                    match => ["logtime", "YYYY-MM-dd HH:mm:ss,SSS"]
            }
    }
    
    output {
        stdout { codec => rubydebug }
    }
    

    此外,在输入中使用多行而不是在过滤器中是,过滤器中的多行会将消息折叠到消息数组中,而不是单个消息字符串。所以,它会导致 grok 和 date 过滤器失败。

    【讨论】:

    • 如果您使用 filebeat 作为 logstash 的输入,您可能需要首先删除默认情况下添加的 @timestamp 字段 filebeat。像这样:grok { match => { "message" => "%{TIMESTAMP_ISO8601:logtime} %{GREEDYDATA:content}" } } date { remove_field => [ "%{@timestamp}" ] match => ["logtime ", "yyyy-MM-dd HH:mm:ss,SSS"] } 你也可以在这里查看:github.com/logstash-plugins/logstash-input-beats/issues/…
    猜你喜欢
    • 2015-02-20
    • 1970-01-01
    • 2012-06-30
    • 2015-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多