0

我正在尝试为 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 过滤器中的时间戳吗?

谢谢

4

2 回答 2

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" ]
    }

谢谢你的帮助

于 2019-06-17T15:30:13.253 回答
0

正如@baudsp 所述,您可以使用自定义模式文件为 catalina 添加日期模式,或者将其嵌入到 grok 中,如下所示

(?<date>%{MONTHDAY}-%{MONTH}-%{YEAR} %{HOUR}:?%{MINUTE}(?::?%{SECOND}))

如果你经常使用该模式,把它放在一个文件中可能会更好,并提供更多的可读性

于 2019-05-21T18:46:13.573 回答