簡體   English   中英

沒有模式文件的Grok logstash消息

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM