如何用日志时间戳替换logstash@timestamp

如何用日志时间戳替换logstash@timestamp,logstash,logstash-grok,Logstash,Logstash Grok,日志中我的时间戳的格式如下 2016-04-07 18:11:38.169 which is yyyy-MM-dd HH:mm:ss.SSS 这个日志文件不是活动的(存储的/旧的),我试图用logstash@timestamp值替换这个timpestamp,以改善Kibana可视化 我在logstash中的过滤器如下所示 grok { match => { "message" => [ "(?<timestamp>(\

日志中我的时间戳的格式如下

2016-04-07 18:11:38.169  which is  yyyy-MM-dd HH:mm:ss.SSS
这个日志文件不是活动的(存储的/旧的),我试图用logstash@timestamp值替换这个timpestamp,以改善Kibana可视化

我在logstash中的过滤器如下所示

     grok {
       match => {
            "message" => [ "(?<timestamp>(\d){4}-(\d){2}-(\d){2} (\d){2}:(\d){2}:(\d){2}.(\d){3}) %{SYSLOG5424SD} ERROR u%{BASE16FLOAT}.%{JAVACLASS} - TransId:2b948ed5-12c0-4ae0-9b99-f1ee01191001 - TransactionId ::\"2b948ed5-12c0-4ae0-9b99-f1ee01191001\"- Actual Time taken to process \:\: %{NUMBER:responseTime:int}" ]
            } 

  }

date {
        match => [ "timestamp:date" , "yyyy-MM-dd HH:mm:ss.SSS Z"  ]
        timezone => "UTC"
        target => "@timestamp" 
         } 
采样记录线-

2016-04-07 18:11:38.171 [SimpleAsyncTaskExecutor-1] ERROR s.v.wsclient.RestClient - TransId:2b948ed5-12c0-4ae0-9b99-f1ee01191001 - TransactionId ::"2b948ed5-12c0-4ae0-9b99-f1ee01191001"- Actual Time taken to process :: 521

请您帮助并让我知道,我要在这里拧到哪里。

您基本上应该有一个grok匹配,以便使用日志行的
时间戳

grok {
    patterns_dir => ["give your path/patterns"]
    match => { "message" => "^%{LOGTIMESTAMP:logtimestamp}%{GREEDYDATA}" }          
}
在模式文件中,确保日志中的模式与
时间戳
相匹配,可能如下所示:

LOGTIMESTAMP %{YEAR}%{MONTHNUM}%{MONTHDAY} %{TIME}
完成
grok
过滤后,您可能可以使用过滤后的值,如:

mutate {
    add_field => { "newtimestamp" => "%{logtimestamp}" }
    remove_field => ["logtimestamp"]
}
date {
    match => [ "newtimestamp" , "ISO8601" , "yyyy-MM-dd HH:mm:ss.SSS" ]
    target => "@timestamp"  <-- the timestamp which you wanted to apply on
    locale => "en"
    timezone => "UTC"
}
变异{
add_field=>{“newtimestamp”=>“%{logtimestamp}}”
删除_字段=>[“logtimestamp”]
}
日期{
匹配=>[“新时间戳”、“ISO8601”、“yyyy-MM-dd HH:MM:ss.SSS”]
目标=>“@时间戳”“en”
时区=>“UTC”
}

希望这有帮助

您可以使用logstash的日期过滤器插件

date {
    match => ["timestamp", "UNIX"]
}

请添加一个示例日志行。感谢您的回复。。更新了对响应的感谢。我有我的想法,抱歉。。再次更新问题。我将尝试使用mutate和update。。再次感谢是的,请让我知道。并确保根据您的调整grok匹配。@Vishwa在这方面运气好吗?对延误表示歉意。我试过你建议的那一个。。无法通过,但视力调整有效。下面是为我工作的日期过滤器日期{match=>[“timestamp”,“ISO8601”]target=>“@Logtimestamp”locale=>“en”timezone=>“UTC”}我在Kibana Visualization的日期字段中获得了@Logtimestamp作为新属性,我可以利用它绘制图形。没有使用mutate,我的grok是{TIMESTAMP_ISO8601:TIMESTAMP}
date {
    match => ["timestamp", "UNIX"]
}