2016-06-29 19 views
0

logstash confフィルタで、変数(変数名= targetmailid)と出力フィールドに複数のメールIDを割り当てましたが、その変数を使用しようとしています。ただし、複数の電子メールIDを出力のCCフィールドに割り当てています。提案してください。複数の受信者にlogstashメール

あなたはこのようにsprintfのフォーマット %{...}を使用する必要が
filter { 
     kv { 
       field_split => "," 
       value_split=>":" 

     } 

     if [ref_type] =~ /tag/ { 
       ruby { 

        code => "tag= event['ref'] 

           targetmailid = '[email protected],[email protected],[email protected]' 

           } 
        } 
     } 


     output { 

     if "tagcreate" in [tags] { 
       email { 
         body => "test messgage" 
         from => "[email protected]" 
         to => "[email protected]" 
         cc => "targetmailid" 
         subject => "test mail" 
         options => { 
          smtpIporHost => "smtp" 
          port => 25 
            } 
           } 
         } 

答えて

1

:また、以下の部分を変更してください

email { 
    body => "test messgage" 
    from => "[email protected]" 
    to => "[email protected]" 
    cc => "%{targetmailid}"   <--- modify this 
    subject => "test mail" 
    options => { 
     smtpIporHost => "smtp" 
     port => 25 
    } 
} 

UPDATE

if [ref_type] =~ /tag/ { 
     ruby { 
      code => "event['targetmailid'] = '[email protected],[email protected],[email protected]'" 
     } 
    } else { 
     mutate { 
      add_field => { "targetmailid" => ""} 
     } 
    } 
+0

こんにちは、私は上記のように変更した後にこのエラーが発生し、ログが再開されましたstash conf。 Net :: SMTPSyntaxError:501#5.1.3ユーザー名に無効な文字( '%')があります。ありがとうございました – bsd

+0

これは、すべてのイベントで変数 'targetmailid'が利用できないことを意味します。あなたが 'targetmailid'フィールドを作成する場所に' else'を追加するべきです( 'ruby'フィルタに' code => "..."パラメータがないことにも注意してください)。もし ' ref_type'が '/ tag /'と一致しません – Val

+0

こんにちは、元の質問を編集しました。コード=>の下にtargetmailid = 'testuser1 @ mail.com、testuser2 @ mail.com、testuser3 @ mail.com'を追加しました。ありがとう。 – bsd

関連する問題