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を使用しています。あなたはほとんどそこにいる
感謝を。私はdocinfo_fieldsとdocinfo_targetを見ていました。 –