Design patterns 没有模式文件的Grok logstash消息
我想知道是否可以在不使用外部模式文件的情况下使用logstash搜索消息,并直接在我的配置中写入我的模式: 例如,现在它的工作原理如下:Design patterns 没有模式文件的Grok logstash消息,design-patterns,logstash,Design Patterns,Logstash,我想知道是否可以在不使用外部模式文件的情况下使用logstash搜索消息,并直接在我的配置中写入我的模式: 例如,现在它的工作原理如下: input { stdin{ } } filter { grok { patterns_dir => "./patterns" match => ["message","%{PATTERNFILE:test}"] } } output { stdout {
input {
stdin{
}
}
filter {
grok {
patterns_dir => "./patterns"
match => ["message","%{PATTERNFILE:test}"]
}
}
output {
stdout {codec => rubydebug}
}
filter {
grok {
patterns_dir => "./patterns"
match => ["message","%{.*:test}"]
}
}
我在patterns文件夹中有一个包含以下内容的文件:
PATTERNFILE .*
但我想直接在过滤器中写下我的模式,如下所示:
input {
stdin{
}
}
filter {
grok {
patterns_dir => "./patterns"
match => ["message","%{PATTERNFILE:test}"]
}
}
output {
stdout {codec => rubydebug}
}
filter {
grok {
patterns_dir => "./patterns"
match => ["message","%{.*:test}"]
}
}
但它不起作用。要直接在配置文件中写入模式,而无需外部模式文件,解决方案是:
filter {grok{ match => ["message", "(?<test>.*)"]}}
在“自定义模式”一节中介绍了该方法。对于使用模式目录,您应该使用完整路径/etc/logstash/conf.d/patterns/dns\u domain,例如:
grok {
patterns_dir => "/etc/logstash/conf.d/patterns/dns_domain"
match => { "Unparsed DNS Domain" => "%{BRACKETS:b1}%{META_INF:m1}" }
}
BRACKETS \(\d+\)
META_INF [0-9A-Za-z\s\-_]+
~
~
其中dns_域文件包含自定义模式。例如:
grok {
patterns_dir => "/etc/logstash/conf.d/patterns/dns_domain"
match => { "Unparsed DNS Domain" => "%{BRACKETS:b1}%{META_INF:m1}" }
}
BRACKETS \(\d+\)
META_INF [0-9A-Za-z\s\-_]+
~
~
匹配=>{message=>%{PATTERNFILE}