版本:elasticsearch-7.3.2
脚本内容如下:
[root@access-server elasticsearch-7.3.2]# cat clear_data.py
#coding=utf-8
import requests
import json
#es_host = '127.0.0.1' # Elasticsearch访问地址
es_host = '127.0.0.1'
headers = {
'Content-Type': 'application/json'
}
url中,用*匹配所有的索引,也可以写成logstash-* 匹配所有以logstash-开头的索引等等。
url = 'http://{}:9200/*/_delete_by_query?conflicts=proceed'.format(es_host)
data = {
"query": {
"range": {
"@timestamp": { # 这里我根据默认的时间来作为查询的时间字段,也可以是自定义的
"lt": "now-7d", # 这里是10天,时间可自定义
"format": "epoch_millis"
}
}
}
}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.json())
#删除后,需要执行forcemerge操作,手动释放磁盘空间
url2 ='http://{}:9200/_forcemerge?only_expunge_deletes=true&max_num_segments=1'.format(es_host)
response = requests.post(url2)
print(response.json())
·```
将脚本加到计划任务里
- 3 * * * python /data/elasticsearch-7.3.2/clear_data.py >> /data/elasticsearch-7.3.2/logs/clear_data.log
版权声明:本文为tongzidane原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。