有什么方法可以使用Logstash和csv文件从ElasticSearch删除文档?我阅读了Logstash文档,却一无所获,并尝试了一些配置,但是使用操作“删除”却没有任何反应
output { elasticsearch{ action => "delete" host => "localhost" index => "index_name" document_id => "%{id}" } }
有人尝试过吗?我应该在配置的输入和过滤器部分添加一些特殊的东西吗?我使用文件插件作为输入,使用csv插件作为过滤器。
绝对可以按照您的建议去做,但是如果您使用的是Logstash 1.5,则需要使用该transport协议,因为delete通过HTTP协议进行操作时Logstash 1.5中存在一个错误(请参见问题#195)。
transport
delete
因此,如果您的delete.csvCSV文件格式如下:
delete.csv
id 12345 12346 12347
您的delete.confLogstash配置如下所示:
delete.conf
input { file { path => "/path/to/your/delete.csv" start_position => "beginning" sincedb_path => "/dev/null" } } filter { csv { columns => ["id"] } } output { elasticsearch{ action => "delete" host => "localhost" port => 9300 <--- make sure you have this protocol => "transport" <--- make sure you have this index => "your_index" <--- replace this document_type => "your_doc_type" <--- replace this document_id => "%{id}" } }
然后,在运行时,bin/logstash -f delete.conf您将能够删除其CSV文件中指定了ID的所有文档。
bin/logstash -f delete.conf