2017-01-19 1 views
0

logstashを使用してメトリック・ビート・データを取得しようとしています。 (入力としてKafkaとして&出力としてElasticSearch)。私は、データを参照出力で メトリック・ビート・セット・データの「メッセージ」フィールドを削除します

input { 
    kafka { 
    bootstrap_servers => "XX.XX.XXX.XX:9092" 
    topics => ["cc-data"] 
    } 
} 
output { 
    elasticsearch { 
    hosts => ["XX.XX.XXX.XX:9200"] 
    index => "metricbeat-%{+YYYY.MM.dd}" 
    } 
} 

:私は一人で、「メッセージ」フィールドを望んでいない

 { 
     "_index" : "metricbeat-2017.01.18", 
     "_type" : "logs", 
     "_id" : "AVmzQUytyldhSr4kUaUS", 
     "_score" : 1.0, 
     "_source" : { 
      "@timestamp" : "2017-01-18T20:21:45.324Z", 
      "@version" : "1", 
      "message" : "{\"@timestamp\":\"2017-01-18T20:21:44.394Z\",\"beat\":{\"hostname\":\"ip-XX-XXX-XX-XXX\",\"name\":\"ip-XX-XXX-XX-XXX\",\"version\":\"5.0.0\"},\"metricset\":{\"module\":\"system\",\"name\":\"process\",\"rtt\":104061},\"system\":{\"process\":{\"cpu\":{\"start_time\":\"2016-08-03T10:10:17.000Z\",\"total\":{\"pct\":0.000000}},\"fd\":{\"limit\":{\"hard\":4096,\"soft\":1024},\"open\":0},\"memory\":{\"rss\":{\"bytes\":0,\"pct\":0.000000},\"share\":0,\"size\":0},\"name\":\"migration/2\",\"pgid\":0,\"pid\":47,\"ppid\":2,\"state\":\"sleeping\",\"username\":\"root\"}},\"type\":\"metricsets\"}" 
     } 
     } 
    ] 
    } 
} 

...そのままその代わり、そのフィールド内のすべての件のデータが表示されます[したいです「メッセージ」フィールド名だけを削除しますが、その内容は表示されます。フィールド名だけを削除してそのまま保持します。

私たちはどのようにこれを達成できますか?

答えて

0

kafka入力は、デフォルトでplainのコーデックを持ちます。つまり、トピックをコンシューマに表示し、コンテンツをプレーンな文字列として解釈します。あなたが代わりに必要なのは、それにjsonにコーデックを変更することですJSON構造にコンテンツを解析します

input { 
    kafka { 
    bootstrap_servers => "XX.XX.XXX.XX:9092" 
    topics => ["cc-data"] 
    codec => "json"   # <---- add this 
    } 
} 
+0

こんにちはヴァル、ここで私は取得していますエラーがある - [2017-01-19T05:22:48052] [ WARN] [logstash.outputs.elasticsearch]失敗した操作。 {:status => 400、:アクション=> ["index"、{:_id => nil、:_index => "metricbeat-2017.01.19"、:_type => "metricsets"、:_routing => nil} 2017-01-19T04:45:04.733Z%{host}%{message}]、レスポンス=> {"index" => {"_ index" => "metricbeat-2017.01.19"、 "_type" => "" = "" mapper_parsing_exception "、" reason "=>" [system.process.cpuの解析に失敗しました。 start_time] "、" causes_by "=> {" type "=>" illegal_argument_exception " –

+0

メトリックビートデータです。 –

+0

これは今や別の問題です。それはJSONとして 'message'フィールドを正しく解析しているということです。 'curl -XGET localhost:9200/_template'と' curl -XGET localhost:9200/metricbeat-2017.01.19'の出力から質問を更新できますか? – Val

関連する問題