ES数据定期删除
如果不删除ES数据,将会导致ES存储的数据越来越多,磁盘满了之后将无法写入新的数据。这时可以使用脚本定时删除过期数据。
方法一、
#/bin/bash
#只保留30天内的日志索引(删除30天前一天的日志)
filefilter=$(date -d "30 days ago" +%Y.%m.%d)
echo $filefilter
url='https://192.168.181.52:9200/*-'$filefilter
echo $url
#删除30天前一天的索引
#curl -XDELETE $url
#删除30天前一天的索引(带密码)
curl --cacert certs/ca/ca.crt -u elastic:OMcds4eJW3d9VQDDm0Ul -XDELETE $url
可以视个人情况调整保留的天数。该脚本只需要在ES中一台机器定时运行即可。
crontab -e添加定时任务:
0 1 * * * /home/elk_7.12.0/es-index-clear.sh
每天的凌晨一点清除索引。
注意:保证crond服务是启动的
[root@server scripts]# systemctl status crond