2017-01-07 11 views
1

Logstash Translate Filterを使用して、仲間が生成しているELKスタックに取り込んでいるネットワークデータを充実させようとしています。例えば、ここで私は手動でデータを豊かにされた方法です。Yamlファイルでregexを使用してLogstashを使用するにはどうすればいいですか?

translate { 
field => "id.orig_h" 
destination => "src_comp_name" 
dictionary => [ 
    "192.168.1.1", "Home_Router", 
    "192.168.1.150", "My_Laptop", 
    "192.168.1.210", "My_Desktop" 
    ] 
} 

これは動作しますが、それは私が最終的にそれを必要とするつもりです何のために拡張できません。だから私はyamlファイルに辞書を移動しようとしている正規表現を使用してタグを割り当てるIPアドレスに一致します。だから私はに私の変換機能を、編集:以下

translate { 
field => "id.orig_h" 
destination => "src_comp_name" 
dictionary_path => '/etc/logstash/config/compNames.yaml' 
} 

私ははYAMLファイルでやりたい大体何の内容は次のとおりです。

'^192\.168\.1\.[1-2]$': "Home_Routers" 
'^192\.168\.1\.1[0-9]{2}$': "Home_Laptops" 
'^192\.168\.1\.2[0-9]{2}$': "Home_Desktops" 

これは192.168.1.1/2はルータとしてタグ付けすることが原因となり、 .100-199にあるものはHome_Laptopsとしてタグ付けされ、.200-255には"Home_Desktops"というタグが付けられます。私はYamlファイルでregexを使用する方法を複数試しましたが、エラーが発生しています

"LogStash :: Filters :: Translate:辞書ファイルを/ etcに読み込むと、 /logstash/config/compNames.yaml"*

または、logstashは正しく開始していますが、一致するはずのトラフィックにはタグを付けません。

Logstashによるデータの豊富化のためにyamlファイルで正規表現マッチングを実装する方法に関するガイダンスはありますか?

答えて

1

translate関数にこれを追加します、

"exact" => true, 
    "regex" => true 
+0

うわー、働いていたので、ありがとうございました!これは、SOのボードでの私の最初の経験でした、適切かつ迅速かつ正確な答えと同様に質問を編集するのに助けてくれてありがとう! –

関連する問題