2016-07-18 15 views
2

私はfilebeatでELKスタックを使用しています。Logstashで完全な入力と一致するパターンは何ですか?

これは、ファイルからログを渡している

filebeat: 
    prospectors: 
    - 
     paths: 
     - /home/ubuntu/logs_* 
     input_type: log 
output: 
    logstash: 
    hosts: [${LOGSTASH_PORT_5044_TCP_ADDR}] 
    index: filebeat 
    console: 
    pretty: true 

filebeat.conf logs_test

サンプルログ

{"name":"test","statusCode":0,"deployment":"production","hostname":"ip-random-address","level":30,"jobName":"testJob","date":"2016-07-18T03:15:02.075Z","jobType":"script","msg":"","time":"2016-07-18T03:15:02.076Z","v":0} 

私は、外部へのHTTP呼び出しを作りたいですフィールドstatusCodeが1の場合のURL

ログオブジェクト全体がlogstashに渡されています。

マイlogstashコンフィグ

input { 
    beats { 
     port => 5044 
     codec => "json" 
    } 
} 



output { 
    if ([statusCode] and [statusCode] == 1) { 
     http { 
      format=>"message" 
      http_method=>"post" 
      url=>"http://www.example.com" 
      message=>'{"text": "%{some_pattern_matcher}"}' 
      } 
     } 
} 

[質問]何をすべき"some_pattern_matcher" HTTPリクエストにすべてのフィールドを送信すること。

PS:%{mesage}は機能しません。

+0

あなたは%{source}を試しましたか? –

答えて

0
input { 
    beats { 
     port => 5044 
     codec => "json" 
    } 
} 
filter{ 
    grok{ 
      match => { "message" => "%{GREEDYDATA:data}" } 
    } 
} 
output { 
    if ([statusCode] and [statusCode] == 1) { 
     http { 
      format=>"message" 
      http_method=>"post" 
      url=>"http://www.example.com" 
      message=> %{data} 
      } 
     } 
} 

私はそれを試していません。だからこのソリューションを試してみてください。もしあなたが持っているエラーを投稿しないでください。

+0

確かに、試してみましょう。 %{source}を先に試してみてください。 –

+0

{source}%は機能しませんでした。 GREEDYDATAに移動します。 –

+0

%{データ}が印刷されました。動作しませんでした。 –

関連する問題