Logstash 创建自定义grok过滤器
我需要为以下格式的行找到grok模式:Logstash 创建自定义grok过滤器,logstash,elastic-stack,logstash-grok,Logstash,Elastic Stack,Logstash Grok,我需要为以下格式的行找到grok模式: 3 dbm.kfa 0 340220 7766754 93.9 3 swapper/3 0 340220 7766754 93.9 这就是我到目前为止所做的grok模式 \s*%{INT:no1}\s*%{USERNAME:name}\s*%{INT:no2}\s*%{INT:no3}\s*%{INT:no4}\s*%{
3 dbm.kfa 0 340220 7766754 93.9
3 swapper/3 0 340220 7766754 93.9
这就是我到目前为止所做的grok模式
\s*%{INT:no1}\s*%{USERNAME:name}\s*%{INT:no2}\s*%{INT:no3}\s*%{INT:no4}\s*%{GREEDYDATA:ans}
USERNAME
字段适用于dbm.kfa
,但不适用于swapper/3
,因为USERNAME
不包含\
字符。我想为此创建一些自定义过滤器,但不知道如何创建一个
任何帮助都将不胜感激。非常感谢 要创建自定义模式,您需要使用以下格式的外部文件,并将该文件放在仅用于模式文件的目录中
PATTERN_NAME [regex for your pattern]
然后,您需要更改grok配置以指向pattern files目录
grok {
patterns_dir => ["/path/to/patterns/dir"]
match => { "message" => "%{PATTERN_NAME:fieldName}" }
}
但是在您的特定情况下,如果您将%{USERNAME:name}
更改为%{DATA:name}
,它应该可以工作
有关自定义模式的更好解释,请阅读
您还可以在这个文件中找到与logstash一起提供的所有coregrok
模式,使用最多的是该文件