0

1 つの .log ファイルに複数の種類のログ メッセージがあるため、1 つ以上のマッチャーを使用して logstash フィルターを定義したいと考えています。ログファイルが 1 つあるかどうかを確認し、行で実行されている最初のフィルターだけでなく、さらに分離されたフィルターを定義しました。

4

1 に答える 1

2

grok複数のパターンでフィルターを使用するか、ifステートメントを使用して条件付きで解析することができます。

複数のパターンを使用するには、次のようにリストしますgrok

grok {
  match => [ "message", 
     "Error on line (?<line>\d+)",
     "Exception in (?<place>\d+)",
     "Something else"
  ]
}

Logstash はそれらを順番に評価し、そのうちの 1 つが一致すると停止します (または、一致しない場合はタグを付けます_grokparsefailure) 。

他にできることは、条件付き評価です。

if [message] =~ /Some pattern/ {
   grok {
     match => ['message','Some pattern of (?<number>\d+) stuff']
   }
} else if [message] =~ /Some other pattern/ {
  ...
}
于 2014-09-18T13:23:57.060 に答える