web-dev-qa-db-ja.com

Logstashからメッセージフィールドを削除できますか?

基本的なLogstash-> Elasticsearchセットアップがありますが、logstashフィルターが機能した後は 'message'フィールドは不要であることがわかります。このrawメッセージフィールドをelasticsearchに保存すると、不要なデータがストレージimoに追加されるだけです。

このフィールドを安全に削除できますか?ESに問題が発生しますか?アドバイスや読み物は大歓迎です。

18
James Jiang

いいえ、ESに問題は発生しません。 messageフィールドが冗長または未使用の場合は削除できます。

この filter をフィルターの最後に追加できます。

mutate
{
     remove_field => [ "message" ]
}
31
Ben Lim

これは、jsonフィルター内でも実行できます。

filter {
  json {
    source => "message"
    remove_field => ["message"]
  }
}
7
Steve

私はベンリムの回答にコメントとして次を追加しましたが、コメントにコードブロックを追加する方法、またはそれが可能かどうかさえわかりません...

messageフィールドを作成しない入力とコーデックの組み合わせを使用できる場合は、それを削除する必要はありません。

たとえば、次の入力とコーデックの組み合わせ(JSON Lines over TCP)では、messageフィールドは作成されません。

input {
  tcp {
    port => 5044
    codec => json_lines
  }
}
output {
  elasticsearch {
    hosts => ["localhost"]
    document_type => "mytype"
    index => "myindex"
  }
}
0