使用elasticsearch定時刪除索引數據

1、有的時候我們在使用ES

由於資源有限或業務需求,我們隻想保存最近一段時間的數據,所以有必要做定時刪除數據。

2、編寫腳本

vim del_es_by_day.sh
#!/bin/bash
#定時刪除elasticsearch索引
#author menard 2019-3-25
date=`date -d "-7 days" "+%Y.%m.%d"`
/usr/bin/curl -v --user elastic:password -XDELETE "http://192.168.10.201:9200/*-$date"

增加可執行權限 chmod +x del_es_by_day.sh

3、創建用於測試的索引

put test-2019.03.18
put index-2019.03.18

4、執行腳本測試結果,可以看到刪除成功

5、做定時任務

crontab -e
00 01 * * * /workspace/script/del_es_by_day.sh

補充:Elasticsearch定時備份索引數據與恢復

定時備份腳本

Linux定時任務功能使用cron服務來進行

編寫定時任務的cron表達式

crontab -e #進入cron定時任務編輯

定時任務

*/1 * * * * /opt/scheduler/es_bk.sh >> /opt/scheduler/bk_log.txt 2>&1

每隔1分鐘定時執行 /opt/scheduler/目錄下的es_bk.sh腳本,將數據內容寫入到 /opt/scheduler目錄下的bk.log.txt文件中

查看一下es_bk.sh腳本內容

#! /bin/bash
echo '=================================start======================================'
#刪除備份的快照
curl -i -X DELETE localhost:9200/_snapshot/es_backup/snapshot01
#再次備份
curl -i -X PUT localhost:9200/_snapshot/es_backup/snapshot01
echo '==================================end======================================='

ES備份數據需要將要備份的索引數據快照一份,需要指定一個快照名,且不能使用相同的快照,所以在每次備份之前需要刪除舊的快照,再備份。

ES備份與恢復

創建一個備份倉庫(目錄)

mkdir -p /bk/es/data
#修改權限
chmod -R 777 bk

修改elasticsearch.yml文件,指定倉庫位置

發送初始化倉庫請求

curl -i -H ""'Content-Type:application/json;charset=UTF-8'"" -X PUT --data '{"type": "fs","settings": {"location": "/bk/es/data"}}' localhost:9200/_snapshot/es_backup

es_backup是備份命名空間,可以隨意指定

創建第一份快照

curl -i -X PUT localhost:9200/_snapshot/es_backup/snapshot01

將使用es_backup這個備份將es的所有索引數據備份到snapshot01這個快照下,當然也可以隻備份指定索引

curl -i -H ""'Content-Type:application/json;charset=UTF-8'"" -X PUT --data '{"indices": "'bk_user_index_server'"}' localhost:9200/_snapshot/es_backup/snapshot01

重啟定時任務

systemctl restart cron

恢復索引

恢復指定

curl -i -H ""'Content-Type:application/json;charset=UTF-8'"" -X POST --data '{"indices": "'bk_user_index_server'"}' localhost:9200/_snapshot/es_backup/snapshot01/_restore

恢復所有

curl -i -X POST localhost:9200/_snapshot/es_backup/snapshot01/_restore

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。