2017-12-29 7 views
0

Logstashは"host": "server01.staging"を取得し、.で値を分割して"host": "server01", "env": "staging"を取得します。それを行う方法はありますか?logstashでホストを変更する

私はこの試みた:

grok { 
    match => { 
    "message" => ... 
    "host" => '\A(?<host>.*?).(?<env>.*)' 
    } 
    overwrite => [ "message", "host" ] 

をしかし、それはまだあなたがホストおよびenvの間にドットをエスケープするのを忘れて出力

答えて

0

"host": "server01.staging"を参照してください。正規表現では、エスケープされていないドットは任意の文字にマッチします。

これは動作するはずです:

"host" => '\A(?<host>.*?)\.(?<env>.*)' 
+0

号はそれがあまりにも動作しません。私は '' host "=> '\ A(?。*?)\。(?。*)''を試しましたが、何も変わらない、新しいフィールド 'new_host'と' new_env'は表示されません。 – Alexey

+0

それは奇妙です、私は 'match => {" host "=> '\ A(?。*?)\。(?。*)'}'フィールドで 'new_host'と' new_env'。私はこのconfでそれをテストしました:https://gist.github.com/anonymous/e4597163d7fa8e19c9d150c045d9b739 – baudsp

関連する問題