2016-11-26 10 views
2

Logstashで処理する際に、elasticsearchインデックス名をイベントのフィールドとして追加します。これはかなり単純ですが、インデックス名は印刷されません。ここには完全なLogstash設定があります。LogstashフィルタでElasticsearchインデックス名のメタデータにアクセスできません

input { 
    elasticsearch { 
     hosts => "elasticsearch.example.com" 
     index => "*-logs" 
    } 
} 
filter { 
    mutate { 
     add_field => { 
      "log_source" => "%{[@metadata][_index]}" 
     } 
    } 
} 
output { 
    elasticsearch { 
      index => "logstash-%{+YYYY.MM}" 
    } 
} 

これは、インデックスの実際の名前を%{[@metadata][_index]}に設定していないされているlog_sourceになります。私は_idとアンダースコアなしでこれを試しましたが、常に値だけでなく参照を出力します。

ただちに%{[@metadata]}を実行すると、リストに誤ってアクセスしようとしているというエラーがログに記録されるので、[@metadata]が設定されていますが、インデックスのように見えるか、値がありません。

他の誰かがイベントにインデックス名を割り当てる方法はありますか?

LogstashとElasticsearchの両方で5.0.1を使用しています。あなたはほとんどそこにいる

答えて

1

、あなたは単にデフォルトではfalseですdocinfo settingを、欠けている:

input { 
    elasticsearch { 
     hosts => "elasticsearch.example.com" 
     index => "*-logs" 
     docinfo => true 
    } 
} 
+0

感謝を。私はdocinfo_fieldsとdocinfo_targetを見ていました。 –

関連する問題