1. 程式人生 > >ELK批量刪除索引及叢集相關操作記錄-運維筆記

ELK批量刪除索引及叢集相關操作記錄-運維筆記

 

線上部署了ELK+Redis日誌分析平臺環境, 隨著各類日誌資料來源源不斷的收集, 發現過了一段時間之後, ELK檢視會原來越慢, 重啟elasticsearch伺服器節點之前同步時間也會很長,  這是因為長期以來ELK收集的索引沒有刪除引起的! 以下是ELK批量刪除索引的操作記錄:

1) 訪問head外掛(http://10.0.8.44:9200/_plugin/head/) 或者在elasticsearch節點上使用下面命令檢視elk的索引(10.0.8.44是elk叢集中的任意一個節點)

[[email protected] ~]# curl -XGET 'http://10.0.8.44:9200/_cat/shards'               

刪除索引的命令
[
[email protected]
~]# curl -XDELETE http://10.0.8.44:9200/索引 還可以根據需求,過濾出想要檢視的索引,比如檢視2018.08.02並且是10.0.52.22的索引 [[email protected] ~]# curl -XGET 'http://10.0.8.44:9200/_cat/shards' |grep "2018\.08\.02" |grep "10.0.52.22"|awk '{$1}'

2) 可以先將要刪除的索引查看出來存到臨時檔案裡, 然後進行批量刪除

比如批量刪除所有的索引
[[email protected] ~]# curl -XGET 'http://10.0.8.44:9200/_cat/shards'|awk '{print $1}'|uniq > /root/elk-index.tmp
[
[email protected]
~]# for i in $(cat /root/elk-index.tmp);do curl -XDELETE http://10.0.8.44:9200/$i;done

3) 為了方便可以在計劃任務裡面加定時任務刪除30天之前的日誌索引  (這裡線上elk的索引名中帶當天的日期, 日期格式為%Y.%m.%d.  具體看自己的索引命名規則)

[[email protected] ~]# vim /home/scripts/del_elasticseatch_index.sh
#!/bin/bash
#The index 30 days ago
curl -XGET ‘http://10.0.8.44:9200/_cat/shards‘ |awk ‘{print $1}‘ |grep `date -d "30 days ago" +%Y.%m.%d` |uniq > /tmp/index_name.tmp

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

[
[email protected]
~]# crontab -l 0 3 * * * bash /home/scripts/del_elasticseatch_index.sh