logstash如何将日志中字符串类型的时间转化成@timestamp

在ELK组合中我们在outputs/elasticsearch中常用的%{+YYYY.MM.dd}来创建索引,而这种写法是必须要读@timestamp这个字段的。默认情况下@timestamp字段显示的是当前时间,但我们可能需要记录的是日志中的字符串类型的时间,所以我们需要把日志中字符串类型的时间覆盖掉@timestamp中的当前时间。

 

创建配置文件 code.conf

 

input  {

     stdin{}

}

filter {

    grok {

        match => ["message", "%{TIMESTAMP_ISO8601:logdate}"]

    }

    date {

        match => ["logdate", "yyyy-MM-dd HH:mm:ss,SSS"]

        target => "@timestamp"

    }

}

output{

     stdout{

     codec=>rubydebug{}

     }

}

 

说明:标红出为日志中的时间格式,这个根据具体的日志自行修改或自己开发正则去匹配。

      这里我用的是logstash自带的正则。要查看自带了哪些正则可查看文件:/logstash-2.2.0/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-2.0.2/patterns/grok-patterns

 

测试:

./logstash -f code.conf

手动输入:

     2016-08-24 18:05:39,830

 

可以看到@timestamp字段已经被覆盖。最后别忘了删除logdate字段

     mutate {

        remove => ["logdate"]

    }

 

关于kafka与logstash数据交互

关于logstash数据进elasticsearch

 

---
更多文章关注公众号

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值