grok时间戳模式的一些问题
2020-3-4 10:22:37 >> this will match with this pattern %{TIMESTAMP_ISO8601:my_time}
2020-3-4 0:2:37 >> this will fail with this pattern %{TIMESTAMP_ISO8601:my_time}
还尝试通过使用YEAR MONTH AND DAY
这样的单独模式来匹配该模式,但是再次达到时间%{HOUR}:%{MINUTE}:%{SECOND}
时它将中断。有什么主意吗?
答案 0 :(得分:0)
问题在于日志记录(?:[0-5][0-9])
中的分钟模式is defined。此模式需要一个两位数的分钟数,该数字在您的第二种情况(2020-3-4 0:2:37
)中会中断。
我将模式更改为接受一位数字的分钟数:(?:[0-5][0-9]|[0-9])
然后您可以使用以下自定义模式:
(?<my_time>%{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:?(?:[0-5][0-9]|[0-9])(?::?%{SECOND})?%{ISO8601_TIMEZONE}?)
这是TIMESTAMP_ISO8601
,其中MINUTE
被我的模式替换了。