由于ELK自身么有集成索引管理的功能,以至于时间推移,日志索引堆积,所以需要定期删除无用索引
1.写脚本
#!/bin/bash
#删除ELK30天前的日志
DATE=`date -d "30 days ago" +%Y.%m.%d`
curl -XGET -s -u elastic:situ1234 'http://127.0.0.1:9200/_cat/indices?v' |grep $DATE | awk -F '[ ]+' '{print $3}' >/tmp/elk.log
for elk in `cat /tmp/elk.log`
do
curl -XDELETE -u elastic:situ1234 "http://127.0.0.1:9200/$elk"
done
2.加入计划任务
# crontab -l
#每天凌晨1点定时删除索引
00 01 * * * bash /usr/local/elasticsearch/elk_cron.sh &>/dev/nul