ELK批量刪除索引及叢集相關操作記錄-運維筆記
阿新 • • 發佈:2018-11-21
線上部署了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