elasticsearch索引清理脚本

hcwei 2020年06月10日 80次浏览

背景

由于elasticsearch每天需要接受大量日志,久而久之就会占用大量磁盘空间,所以需要定期清理以保证足够的磁盘空间。这里写了一个脚本实现定期清理日志,此脚本只保留最近三天的日志,如有其他需求可以自行修改此脚本。

1.创建脚本

[root@localhost ~]# cat /tools/scripts/es-index-clear.sh
#/bin/bash
#功能:删除3天前的es-index日志

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

#当前日期
time=`date`

#删除3天前的日志
curl -XDELETE http://10.0.0.40:9200/host-sys-log-${DATA}
curl -XDELETE http://10.0.0.40:9200/host-nginx-log-${DATA}
curl -XDELETE http://10.0.0.40:9200/host-apache-log-${DATA}

#打印日志
if [ $? -eq 0 ]
then
  echo "[${time}] clear $DATA log successful.." >> /tmp/es-index-clear.log
else
  echo "[${time}] clear $DATA log failed.." >> /tmp/es-index-clear.log
fi

2.添加定时任务

[root@localhost ~]# echo "clear es-index." >> /var/spool/cron/root
[root@localhost ~]# echo "0 1 * * * /bin/bash /tools/scripts/es-index-clear.sh &> /dev/null" >> /var/spool/cron/root