2016-04-05 11 views
1

logstashを使用して特定のドメイン(以下abcはabc.comを参照)のログを解析します。これはlogstash入力内で使用しようとしているフィルタです:上記の設定でlogstashで特定のドメインのログをフィルタリングして解析したい

input {.......} 
    filter { 
     if [message] =~ "abc" { 
      grok { 
       match => ["message", .......] 
      } 
     } 
    } 
    output { 
     elasticsearch{.......} 
    } 

、私はABCでログをフィルタするために指定しています、しかし、これは私がES指数で見ると、私はすべての異なるドメインのために解析されたばかりのログを見ることが、有効であると思われません私が欲しくないabcと一緒に。

ところで、私はHAPROXYログを解析しようとしています。私は特定のドメイン(abcはESにインデックス付けされているとする)だけをログに記録し、abc.com以外はすべて無視します。

答えて

1

条件を使用しない限り、すべての設定がすべてのメッセージに対して実行されます。 grok {}は "abc"に対してのみ実行されるべきですが、あなたの出力{}にはまだ達します。

if [message] =~ "abc" { 
} 
else { 
    drop { } 
} 
:、elasticsearchしようとしてから使用ドロップを他のメッセージを維持するために{}

関連する問題