用的时间一长集群健康值就会变成红色状态,需要清理下,网上也有其他很多清理的方法,试了下之后还是决定自己写个。直接写个Shell脚本就可以了
非常简单,需要用到一点Shell脚本语言的基础知识
1.Shell的date用法
2.Elasticsearch删除索引
#!/bin/sh
dateStringA=`date -d “- 35 day” “+%Y%m%d”`
dateStringB=`date -d “- 35 day” “+%Y-%m-%d”`
dateStringC=`date -d “- 35 day” “+%Y.%m.%d”`
#echo “${dateStringA}”
echo -e “${dateStringB}\n”
#echo “${dateStringC}”
curl -XDELETE “http://localhost:9200/*-${dateStringA}”
echo -e “\n”
curl -XDELETE “http://localhost:9200/*-${dateStringB}”
echo -e “\n”
curl -XDELETE “http://localhost:9200/*-${dateStringC}”
echo -e “\n”
因为来自于几个不同的服务中 日志索引的日期格式各不相同,所以写了几个不同的格式匹配。现学现用,没什么技术含量。
curl -XDELETE “http://localhost:9200/*-${dateStringA}”
就是删除名字匹配的索引的请求,然后再加个crontab任务就完成了。
crontab -e
10 1 * * * sh /tmp/es-index-clear.sh > /dev/null 2>&1
相关内容
Shell语法 https://www.jianshu.com/p/ed628dd99434
Shell语法date用法 https://blog.csdn.net/shandianling/article/details/7640933
elasticsearch按照日期定时批量删除索引 https://juejin.im/post/58e5de06ac502e006c254145
Elasticsearch 集群健康值红色终极解决方案 https://blog.csdn.net/laoyang360/article/details/78443006
发表评论