logstash:不能改变日期字段,但可以改变其他类型

时间:2016-01-05 07:54:30

标签: logstash

date {
  match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
  target => "ttt"
}

mutate {
    add_field => { "eee" => "%{ttt}"}
}

mutate {
    gsub => [
        "eee", "2016", "2015"
    ]
}

我想在我的字段eee中将2016年更改为2015年,但是logstash并不想更改它。我试图改变一个非日期字段,它的工作原理......为什么?

2 个答案:

答案 0 :(得分:0)

如果您正在运行logstash 2,他们只修复了this bug,因此您可能会更新日期过滤器。

如果您仍想自己动手,为什么不在调用date {}之前将其添加到syslog_timestamp(字符串)?您也需要修改模式。

答案 1 :(得分:0)

date {
  match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
  target => "aaaa"
}


mutate {
  add_field => { "eeee" => " %{aaaa}" }
}


mutate {
  gsub => [ "eeee", "2016", "2015" ]
}

mutate {
  strip => ["eeee"]
}

我找到的唯一解决方案是强制logstash通过添加前导空格强制将eeee视为字符串而不是不可变日期。