创建自定义 grok 过滤器
Creating custom grok filters
我需要为行格式为 :
的文件查找 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*%{GREEDYDATA:ans}
字段 USERNAME
适用于 dbm.kfa
但不适用于 swapper/3
,因为 USERNAME
不包含 \
字符。我想为此创建一些自定义过滤器,但不知道如何创建。
任何帮助将不胜感激。非常感谢!
要创建自定义模式,您需要使用以下格式的外部文件并将该文件放在仅用于模式文件的目录中。
PATTERN_NAME [regex for your pattern]
然后您需要更改您的 grok 配置以指向模式文件目录。
grok {
patterns_dir => ["/path/to/patterns/dir"]
match => { "message" => "%{PATTERN_NAME:fieldName}" }
}
但在您的特定情况下,如果您将 %{USERNAME:name}
更改为 %{DATA:name}
,它应该可以工作。
有关自定义模式的更好解释,您应该阅读 this part of the documentation。
您还可以在这个 github repository, the most used are in the grok-patterns
文件中找到 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*%{GREEDYDATA:ans}
字段 USERNAME
适用于 dbm.kfa
但不适用于 swapper/3
,因为 USERNAME
不包含 \
字符。我想为此创建一些自定义过滤器,但不知道如何创建。
任何帮助将不胜感激。非常感谢!
要创建自定义模式,您需要使用以下格式的外部文件并将该文件放在仅用于模式文件的目录中。
PATTERN_NAME [regex for your pattern]
然后您需要更改您的 grok 配置以指向模式文件目录。
grok {
patterns_dir => ["/path/to/patterns/dir"]
match => { "message" => "%{PATTERN_NAME:fieldName}" }
}
但在您的特定情况下,如果您将 %{USERNAME:name}
更改为 %{DATA:name}
,它应该可以工作。
有关自定义模式的更好解释,您应该阅读 this part of the documentation。
您还可以在这个 github repository, the most used are in the grok-patterns
文件中找到 logstash 附带的所有核心 grok
模式。