如何 grok catalina 日志文件

How to grok catalina log file

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

谢谢

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

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

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

终于有了解决办法:

我在文件中放入了一个新模式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" ]
    }

感谢您的帮助