繁体   English   中英

Logstash更改时间格式

[英]Logstash change time format

我的日志语句如下所示。

2014-04-23 06:40:29 INFO [1605853264] [ModuleName] - [ModuleName] - Blah blah

我能够很好地解析它,并使用以下ES字段正确记录到ES

“LogTimestamp”:“2014-04-23T13:40:29.000Z”

但我的要求是将此语句记录如下,注意'z'被删除+0000。 我试过替换,gsub但没有改变输出。

“LogTimestamp”:“2014-04-23T13:40:29.000 + 0000”

有人可以帮忙吗?

这是我的模式

TEMP_TIMESTAMP %{YEAR}-%{MONTHNUM}-%{MONTHDAY}\s%{HOUR}:%{MINUTE}:%{SECOND} TEMP_LOG %{TEMP_TIMESTAMP:logdate}\s*?%{LOGLEVEL:TempLogLevel}\s*?\[\s?*%{BASE10NUM:TempThreadId}\]%{GREEDYDATA}

这是过滤器配置:

grok{
   patterns_dir => ["patterns"]
   match=> ["message", "%{TEMP_LOG}"]            
}

date{
   match => [ "logdate", "yyyy-MM-dd HH:mm:ss" ]            
   target => "LogTimestamp"
   timezone => "PST8PDT"            
}

mutate {
    gsub => ["logdate", ".000Z", ".000+0000"]
}

我还没有完全理解logstash中字段的含义以及它们如何映射到弹性搜索,这种混淆使我在这种情况下出错了。

你可以使用ruby插件做你想做的事!

根据您的要求,您想要改变这一点

“LogTimestamp”:“2014-04-23T13:40:29.000Z”

“LogTimestamp”:“2014-04-23T13:40:29.000 + 0000”

尝试使用此过滤器

filter {
    ruby {
        code => "
                event['LogTimestamp'] = event['LogTimestamp'].localtime('+00:00')
        "
    }
}

希望这可以帮到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM