我正在尝试为Apache tomcat 8安装的这一行日志(从catalina.log中提取)找到一种模式。
30-Apr-2019 15:40:40.044 INFOS [main] org.apache.catalina.startup.VersionLoggerListener.log message
在logstash中,没有一种日期格式与此日期格式匹配。
您知道如何将日期30-Apr-2019 15:40:40.044
解析为我的logstash过滤器中的时间戳吗?
谢谢
答案 0 :(得分:0)
如@baudsp所述,您可以使用自定义模式文件为catalina添加日期模式,也可以将其嵌入到grok中,如here
(?<date>%{MONTHDAY}-%{MONTH}-%{YEAR} %{HOUR}:?%{MINUTE}(?::?%{SECOND}))
如果您经常使用该模式,将其放在文件中可能会更好,并提供更高的可读性
答案 1 :(得分:0)
最后,有一个解决方案:
我在文件custom.txt中添加了新模式
MY_DATE_PATTERN %{MONTHDAY}-%{MONTH}-%{YEAR} %{HOUR}:?%{MINUTE}(?::?%{SECOND})
然后在我的logstash.conf文件中放入此过滤器:
grok {
patterns_dir => ["./patterns"]
match => {
"message" => "%{MY_DATE_PATTERN:timestamp}%{SPACE}%{GREEDYDATA:loglevel}%{SPACE}\[%{GREEDYDATA:thread}\]%{SPACE}%{JAVACLASS:classname}%{SPACE}%{GREEDYDATA:logmessage}"
}
}
date {
match => [ "timestamp" , "dd-MMM-yyyy HH:mm:ss.SSS" ]
}
感谢您的帮助