elasticsearch的索引自动清理及自定义清理

近发现elasticsearch近期索引文件大的吓人,清理了下之前的索引文件,发现服务器性能大大的减轻了一半,想一直保留近一个月的索引文件,但是又不想每个月手动清楚,在此写了一个小脚本

查询索引:

curl -XGET 'http://127.0.0.1:9200/_cat/indices/?v'

一、 手动删除

rm -rf *2017-03-*

二、api删除

curl -XDELETE 'http://127.0.0.1:9200/logstash-2016-07-*'

清理掉了所有 3月份的索引文件,我发现curl 删除比rm删除要快出很多

三、脚本加api删除(推荐)

 cat es-index-clear.sh

#/bin/bash


#指定日期(7天前)
DATA=`date -d "1 week ago" +%Y.%m.%d`


#当前日期
time=`date`


#删除7天前的日志
curl -XDELETE http://127.0.0.1:9200/*-${DATA}


if [ $? -eq 0 ];then
echo $time"-->del $DATA log success.." >> /tmp/es-index-clear.log
else
echo $time"-->del $DATA log fail.." >> /tmp/es-index-clear.log
fi

 

四、添加到任务计划

crontab -e
10 1 * * * sh /tmp/es-index-clear.sh > /dev/null 2>&1

 

 

转自:http://www.iyunv.com/thread-259586-1-1.html

 

posted on 2017-04-25 17:08  vijayfly  阅读(13510)  评论(0编辑  收藏  举报

导航