我需要编写一个grok模式来检索“ ** **”中的内容
-----Start of script for server sitboap1 at **Fri Apr 17 14:24:19** HKT 2020---------
**user11** 87751 1 0 Apr16 ? 00:00:00 sh **job1.sh**
**user11** 877452 89451 0 Apr16 ? 00:00:00 sh **job2.sh** --server-config= full.xml
**user11** 89772 89452 3 Apr16 ? 00:02:35 **/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/bin/java** -D[stdd] -server -verbose:gc
日志应从顶部获取日期,从列表中获取用户名和作业名称。每个日期下的行数可能会有所不同。
我无法完全弄清一个完全符合我的要求的骗子。
它可以是Grost和Logstash中的过滤器的组合,但我的最终期望是拥有这些列。
您可以尝试以下grok过滤器。有2个过滤器。
要在标题中获取日期和时间。
-----Start of script for server (.*[a-z|A-Z|0-9]) at %{GREEDYDATA:UserDateTime} (.*[a-z|A-Z])
要获取目录。
%{GREEDYDATA:User} ([1-9][0-9]{1,10}) (.*) %{GREEDYDATA:execFile}
最后,您可以使用此website创建grok过滤器。