我们的对象,解析和所有:
{
"message" => "[2014-12-15 14:28:03,786] WARN org.apache.sshd.serve
"@version" => "1",
"@timestamp" => "2014-01-15T14:28:03.786Z",
"type" => "errorlog",
"host" => "localhost",
"path" => "/var/lib/gerrit/log/error_log",
"tags" => [
[0] "multiline"
],
"gerrit_timestamp" => "2014-12-15 14:28:03,786",
"loglevel" => "WARN",
"object" => "org.apache.sshd.server.session.ServerSession"
}
正如您所看到的,我们将日期提取到gerrit_timestamp
就好了。然后我们有一个日期过滤器来阅读gerrit_timestamp
,并将其填入@timestamp
date {
type => "errorlog"
match => [ "gerrit_timestamp", "YYYY-MM-DD HH:mm:ss,SSS" ]
target => "@timestamp"
}
为什么@timestamp会在11个月后关闭?
答案 0 :(得分:1)
根据经验,日期功能需要使用正确的日期布局进行调用,否则什么都不会出来,我不确定为什么你的日期在你的例子中是11个月,我建议你尝试以下方法:
date {
type => "errorlog"
match => [ "gerrit_timestamp", "yyyy-MM-dd HH:mm:ss,SSS" ]
}
此示例中的目标是多余的,因为默认行为是将值设置为@timestamp。根据{{3}} y是年份,而Y是年份的年份,不完全相同,D是一年中的一天,即1-365之间,而不是月份的日期,即d。