1. 程式人生 > >elk批量刪除索引

elk批量刪除索引

bin /tmp line ces name 同步 ont sea search

用了一段時間elk發現如果索引長時間不刪除,elk會越來越慢,重啟elasticsearch服務器節點之前同步時間也會很長

第一步:在elasticsearch節點上使用curl -XGET ‘http://192.168.3.164:9200/_cat/shards‘查看索引

[root@192-168-3-164 ~]#  curl -XGET http://192.168.3.164:9200/_cat/shards |more
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 57452 100 57452 0 0 467k 0 --:--:-- --:--:-- --:--:-- 471k laravel-oms26-online-2017.08.02 1 r STARTED 48 101.8kb 192.168.3.164 node2-192.168.3.164 laravel-oms26-online-2017.08.02 1 p STARTED 48 101.8kb 192.168.3.163 node1-192.168.3.163 laravel-oms26-online-2017.08
.02 4 r STARTED 65 118.1kb 192.168.3.165 node3-192.168.3.165 laravel-oms26-online-2017.08.02 4 p STARTED 65 118.1kb 192.168.3.163 node1-192.168.3.163 laravel-oms26-online-2017.08.02 2 p STARTED 42 61.4kb 192.168.3.164 node2-192.168.3.164 laravel-oms26-online-2017.08
.02 2 r STARTED 42 61.4kb 192.168.3.165 node3-192.168.3.165 laravel-oms26-online-2017.08.02 3 r STARTED 52 130.5kb 192.168.3.165 node3-192.168.3.165 laravel-oms26-online-2017.08.02 3 p STARTED 52 130.5kb 192.168.3.163 node1-192.168.3.163 laravel-oms26-online-2017.08.02 0 p STARTED 37 105.2kb 192.168.3.164 node2-192.168.3.164 laravel-oms26-online-2017.08.02 0 r STARTED 37 105.2kb 192.168.3.163 node1-192.168.3.163 etl213-online-2017.08.01 1 r STARTED 649 244.6kb 192.168.3.165 node3-192.168.3.165 etl213-online-2017.08.01 1 p STARTED 649 244.6kb 192.168.3.163 node1-192.168.3.163 etl213-online-2017.08.01 4 r STARTED 673 295.3kb 192.168.3.164 node2-192.168.3.164 etl213-online-2017.08.01 4 p STARTED 673 295.3kb 192.168.3.165 node3-192.168.3.165 etl213-online-2017.08.01 2 r STARTED 663 264.1kb 192.168.3.164 node2-192.168.3.164 etl213-online-2017.08.01 2 p STARTED 663 264.1kb 192.168.3.163 node1-192.168.3.163 etl213-online-2017.08.01 3 p STARTED 640 280kb 192.168.3.164 node2-192.168.3.164 etl213-online-2017.08.01 3 r STARTED 640 280kb 192.168.3.163 node1-192.168.3.163 etl213-online-2017.08.01 0 r STARTED 670 286.2kb 192.168.3.165 node3-192.168.3.165 etl213-online-2017.08.01 0 p STARTED 670 286.2kb 192.168.3.163 node1-192.168.3.163

第二步:過濾出想要刪除的索引存到臨時文件裏面 curl -XGET ‘http://192.168.3.164:9200/_cat/shards‘ |grep "2017\.08\.01" |grep 192.168.3.163 |awk ‘{print $1}‘ | uniq > elk-index.tmp

[root@192-168-3-164 ~]# curl -XGET http://192.168.3.164:9200/_cat/shards |grep "2017.08\.01" |grep 192.168.3.163 |awk {print $1} | uniq > elk-index.tmp
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 57452  100 57452    0     0   123k      0 --:--:-- --:--:-- --:--:--  123k
[root@192-168-3-164 ~]# cat elk-index.tmp 
wcf.core50-online-2017.08.01
etl211-online-2017.08.01
laravel-dujia-online-2017.08.01
dms217-online-2017.08.01
laravel-oms27-online-2017.08.01

第三步:刪除過濾出來的索引

for i in `cat elk-index.tmp`
   do 
      curl -XDELETE  http://192.168.3.164:9200/$i 
done
    

第四步為了方便可以在計劃任務裏面加定時任務刪除五天之前的日誌索引

[root@192-168-3-164 ~]# crontab -l
0 3 * * * bash /home/scripts/del_elasticseatch_index.sh

查看腳本文件內容cat /home/scripts/del_elasticseatch_index.sh

#!/bin/bash
#The index five days ago
curl -XGET http://192.168.3.164:9200/_cat/shards |grep 192.168.3.164 |awk {print $1} |grep `date -d "5 days ago" +%Y.%m.%d` |uniq > /tmp/index_name.tmp

for index_name in `cat /tmp/index_name.tmp`  
do
    curl -XDELETE  http://192.168.3.164:9200/$index_name
    echo "${FILE_NAME} delete success" >> /home/scripts/del_elasticseatch_index.log
done

elk批量刪除索引