2016-05-13 7 views
0

randonNUM、 は、私が変更したいので、私は動的フィールドは、フィールドのフォーマットは、フィールドが動的であるlogstash名前フィールドを動的

A-B-C::D_[randomNum] 

のように見えてきた「 - 」と「_」と[削除randomNUM] 、それが続くとのように見えるだろうだ、

A_B_C::D 

は、この問題を解決するための任意のプラグイン/戦略はありますか?

答えて

0

あなたは、実際のフィールド名とfieldnameを置き換えてくださいmutate/gsubフィルタ

filter { 
    mutate { 
    gsub => [ 
     # replace random num suffix 
     "fieldname", "_\d+", "", 
     # replace all dashes with underscores 
     "fieldname", "-", "_" 
    ] 
    } 
} 

でこれを達成することができるはずです。あなたのコメントを考える

UPDATE

、それはフィールドの動的な名前ではなく、値の判明。このため、ruby filterを使用して、すなわち、あなたが上記の溶液を使用することはできませんが、次のいずれかが動作するはずです:

filter { 
    ruby { 
    code => " 
     newhash = {} 
     event.to_hash.each {|key, value| 
     if key =~ /^CISCO/ then 
      newkey = key.gsub(/_\d+/, '').gsub('-', '_') 
      newhash[newkey] = event[key] 
      event.remove(key) 
     end 
     } 
     newhash.each {|key,value| 
     event[key] = value 
     } 
    " 
    } 
} 

このフィルタを実行した後、あなたのイベントは、フィールドA_B_C::Dの代わりに、元A-B-C::D_num

+0

ハイテクを持っていますヴァル、あなたの返事をありがとう!申し訳ありませんが、私はその質問ではっきりしていませんでした。私はrandomNumのためにフィールドを設定する方法はありません。私が特定できるのは、フィールド名の接頭辞です。 "A-B-C :: D_ *"のように – stefansaye

+0

フィールド名ではなくフィールド値です – Val

+0

はい、フィールド名はフィールド値ではありません。私の例では、出力はA-B-C :: D_ [randomNum] => field_valueのようになります。 – stefansaye

関連する問題