Logstash - 自定义时间戳错误

Logstash - Custom Timestamp Error

我正在尝试在 Logstash 中输入时间戳字段,但收到 dateparsefailure 消息。

我的留言 -

2014-08-01;11:00:22.123

管道文件

input {
stdin{}
#beats {
#        port => "5043"
#    }
}
# optional.
filter {
  date {
        locale => "en"
        match => ["message", "YYYY-MM-dd;HH:mm:ss.SSS"]
        target => "@timestamp"
        add_field => { "debug" => "timestampMatched"}
   }
 }
output {
elasticsearch {
        hosts => [ "127.0.0.1:9200" ]
    }
stdout { codec => rubydebug }
}

谁能告诉我我错过了什么?

更新 1

我参考了 link - How to remove trailing newline from message field,现在可以使用了。

但是,在我的日志消息中,我有除时间戳之外的多个值

<B 2014-08-01;11:00:22.123 Field1=Value1 Field2=Value2

当我将其作为输入时,它不起作用。如何读取日志的一部分并将其作为时间戳?

更新 2

现在可以使用了。

更改配置文件如下

filter {
kv
   {

   }
 mutate {
    strip => "message"
  }
  date {
        locale => "en"
        match => ["timestamp1", "YYYY-MM-dd;HH:mm:ss.SSS"]
        target => "@timestamp"
        add_field => { "debug" => "timestampMatched"}
   }

 }

我在下面发布了答案和我用来解决问题的步骤,以便我可以帮助像我这样的人。

第 1 步 - 我以键值对的形式读取消息

第 2 步 - 我删除了导致解析异常的额外 space

第 3 步 - 我读取了各个字段中的时间戳值和其他字段。

input {
beats {
        port => "5043"
    }
}
# optional.
filter {
  kv { }
  date {
            match => [ "timestamp", "yyyy-MM-dd HH:mm:ss,SSS" ]
            remove_field => [ "timestamp" ]
        }
}
output {
elasticsearch {
        hosts => [ "127.0.0.1:9200" ]
    }
}