ITPub博客

首页 > IT基础架构 > > elasticsearch-数据自动删除

elasticsearch-数据自动删除

作者:格伯纳 时间:2020-06-01 13:46:47 0 删除 编辑

最近我使用elasticsearch作为日志的存储分析引擎。用来存储团队开发人员的日志。使用es的过程中,索引越来越多,没有及时删除,就导致集群某台实例oom了。


解决办法:

编写一个shell脚本,然后使用linux的crontab,每天0点执行下。


1.寻找索引的规律

我们的日志索引格式如下:

以logstach开头,以年.月.日结尾

于是,我就想到使用正则匹配,即 logstash-*-12.15.11。


2.编写shell脚本

#!/bin/bash
echo "start delete es data"
echo `date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"`
dateStr=`date -d -32day +%Y.%m.%d`
echo delete time is ${dateStr}
#`curl -XDELETE 'http://10.240.47.81:9200/logstash-v4_insert_log-"${dateStr}'`
echo curl -XDELETE 'http://10.240.47.81:9200/logstash-*-'${dateStr}
result=`curl -XDELETE 'http://10.240.47.81:9200/logstash-*-'${dateStr}`
sleep 3
echo delete result ${result}


3.添加linux crontab

vim /etc/crontab

然后在最后加一行

0 0 * * * root sh /data/apps/es/cleanupesdata/cleanup.sh >> /data/apps/es/cleanupesdata/clean.log 


4.总结

类似shell,crontab这些知识,es的知识,我们可以不是很精通,但是遇到的时候,最好能写一次。因为,我们不写,没有人能替我们写,除非这个事情有团队帮忙做。带团队不容易,一些小的细节要认真处理。解决一个坑算一个。


补充:

昨天验证了下,脚本是没问题的。为了确保最终的准确性,今天再次验证。没问题。


脚本运行日志:

start delete es data

2018-01-26 00:00:01

delete time is 2017.12.25

curl -XDELETE 10.240.47.81:9200/logst

delete result {"acknowledged":true}


es数据确实删除了。这样就能保证我们的es日志集群不至于爆掉。阿弥陀佛。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31509949/viewspace-3119964/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 我发个大会的pdf
请登录后发表评论 登录
全部评论
管理员

注册时间:2018-03-30

  • 博文量
    2383
  • 访问量
    984257