[英]Grok logstash message without patterns file
我想知道是否可以在不使用外部模式文件的情況下使用logstash過濾消息,然后直接在配置中寫入我的模式:
例如,現在它的工作方式如下:
input {
stdin{
}
}
filter {
grok {
patterns_dir => "./patterns"
match => ["message","%{PATTERNFILE:test}"]
}
}
output {
stdout {codec => rubydebug}
}
我在patterns文件夾中有一個文件,內容如下:
PATTERNFILE .*
但是我想像這樣直接在過濾器中寫入模式:
filter {
grok {
patterns_dir => "./patterns"
match => ["message","%{.*:test}"]
}
}
但這不起作用。
要在沒有外部模式文件的情況下直接在配置文件中寫入模式,解決方案是:
filter {grok{ match => ["message", "(?<test>.*)"]}}
在http://logstash.net/docs/1.4.2/filters/grok的“自定義模式”部分中介紹了該方法
要使用patterns_dir ,應使用完整路徑/etc/logstash/conf.d/patterns/dns_domain ,例如:
grok {
patterns_dir => "/etc/logstash/conf.d/patterns/dns_domain"
match => { "Unparsed DNS Domain" => "%{BRACKETS:b1}%{META_INF:m1}" }
}
其中dns_domain文件包含自定義模式。 例如:
BRACKETS \(\d+\)
META_INF [0-9A-Za-z\s\-_]+
~
~
匹配=> {“消息” =>“%{PATTERNFILE}”}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.