elasticsearch索引自动清理
查看所有的索引文件:
curl -XGET http://localhost:9200/_cat/indices?v
删除索引文件以释放空间:
curl -XDELETE http://localhost:9200/filebeat-2016.12.28
单节点的elk可在索引目录删除索引文件:集群环境删除某节点的索引文件,会导致集群服务不可用.集群环境需要使用API的方式进行删除.
索引文件保留在服务器中,大大减小服务器的性能,占用硬盘空间,
因此使用脚本自动删除elk中两个月以前的索引以释放空间:
--#!/bin/bash
find '/data/elasticsearch/data/elks/nodes/0/indices/' -name 'filebeat-*' -ctime +60 > index.txt
cd ~
cat index.txt | while read line
do
curl -XDELETE "http://localhost:9200/"$(basename $line)""
done
添加计划任务:
$crontab -e
0 0 * * * cd /root && ./elk_index_remove.sh >>/dev/null
ps:shell中单引号&双引号:
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的.
单引号字符串中不能出现单引号(对单引号使用转义符后也不可以).
双引号里可以有变量.
双引号里可以出现转移字符.
使用数组循环删除.
index=(curl -XGET 'http://localhost:9200/_cat/indices/*?v'|awk '{print $3}'|sed '1d'
)
for i in ${index[*]}:do
curl -XDELETE "http://localhost:9200/$i"
done
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步