Logstashプラグインを使用してCouchDBの変更を検出し、Elasticsearchインデックスを適切に更新しようとしています。Logstash couchdb_changesがElasticsearchに文書削除を正しく伝播しない
ドキュメントの作成/更新はうまく動作しますが、何らかの理由で削除が機能しません。ここで
は私Logstash構成です:
input {
couchdb_changes {
host => "localhost"
db => "products"
sequence_path => ".couchdb_products_seq"
type => "product"
tags => ["product"]
keep_revision => true
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "products"
# Pass the CouchDB document ID to Elastic, otherwise it is lost and Elastic generates a new one
document_id => "%{[@metadata][_id]}"
}
# Debug
stdout {
codec => rubydebug {
metadata => true
}
}
}
私はthis link渡って来なかったが、「プロトコル」パラメータは、もはやelasticsearch Logstashプラグインに存在する、と私はそのような巨大なバグが今で固定することが期待されます。私Logstashコンソールで
私は(布団から)CouchDBのドキュメントを削除するとき、私はこれを参照してください。代わりに、ID「15d6f519d6827a2f28de4df1d40082d5」との文書を削除するので
{
"@version" => "1",
"@timestamp" => "2016-05-13T14:06:55.734Z",
"type" => "product",
"tags" => [
[0] "product"
],
"@metadata" => {
"_id" => "15d6f519d6827a2f28de4df1d40082d5",
"action" => "delete",
"seq" => 10020
}
}
だから、それはその内容を置き換えます。ここでは、文書「15d6f519d6827a2f28de4df1d40082d5は」Elasticsearchで、削除した後です:
curl -XGET 'localhost:9200/products/product/15d6f519d6827a2f28de4df1d40082d5?pretty'
{
"_index" : "products",
"_type" : "product",
"_id" : "15d6f519d6827a2f28de4df1d40082d5",
"_version" : 3,
"found" : true,
"_source" : {
"@version" : "1",
"@timestamp" : "2016-05-13T14:06:55.734Z",
"type" : "product",
"tags" : [ "product" ]
}
}
削除が動作しない理由の任意のアイデア?これはcouchdb_changesプラグインのバグですか? elasticsearchプラグイン?私は、問題を見つけたと思う Elasticsearch 2.3.2 Logstash 2.3.2 のApache CouchDBの1.6.1