您的位置:首页 > 其它

elasticsearch索引自动清理

2017-02-28 17:08 323 查看
查看所有的索引文件:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: