使用Logstash从ES删除索引

时间:2018-07-09 13:14:00

标签: elasticsearch logstash

我想从ES删除索引,然后再从MySQL上传数据的更新版本。从今天开始,我使用curl删除数据,并使用Logstash上传,但是我想知道是否有一种方法可以不必手动分离,最好的情况是能够使用Logstash(及其调度程序)来进行操作全自动。说有没有办法在我的配置文件中简单地写一些东西来做到这一点?

我今天如何删除:

curl -X -DELETE 'http://localhost:9200/index'

之所以在上载新数据之前删除索引是因为我上载了来自各种来源的数据,因此决定何时更新数据的能力并不那么容易。这就是为什么我选择在上传更新版本之前删除数据的原因。如果有更聪明的方法来解决此问题,我希望听到它。

1 个答案:

答案 0 :(得分:0)

您可以创建一个批处理文件,以同时运行logstash进程和策展人操作。

下载并install curator使用说明。使用curator command line对索引执行操作。要删除,请检查Delete Indices操作。

action: delete_indices
description: >-
  Delete indices older than 45 days (based on index name), for logstash-
  prefixed indices. Ignore the error if the filter does not result in an
  actionable list of indices (ignore_empty_list) and exit cleanly.
options:
  ignore_empty_list: True
  disable_action: True
filters:
- filtertype: pattern
  kind: prefix
  value: %{Index_Name}
- filtertype: age
  source: name
  direction: older
  timestring: '%Y.%m.%d'
  unit: days
  unit_count: 45

Source - Delete Indices Example