定時自動清理elasticsearch索引

1.1 查看索引的方法

1.2 手動刪除索引的方法

1.3 腳本清理索引

1.4 定時任務

1.1 查看索引的方法

說明:

01:我這裏是將elasticsearch、kibana、logstash裝在一臺機器上的

02:192.168.10.138是elasticsearch監聽的內網IP地址

03:9200是elasticsearch的端口之一


#在elasticsearch服務器上查看索引的方法

1.png

#將索引進行排序

2.png

1.2 手動刪除索引的方法

#手動刪除15_tomcat_18080_catalina_log-2018.12.28索引

curl -XDELETE "http://192.168.10.138:9200/15_tomcat_18080_catalina_log-2018.12.28"


#手動刪除15_tomcat_18080_access_log-2018.12.28索引

curl -XDELETE "http://192.168.10.138:9200/15_tomcat_18080_access_log-2018.12.28"

1.3 腳本清理索引

#注意

01:該腳本後面需要添加到定時任務中去,讓其定時自動清理索引

02:如果elasticsearch運行了一段時間後,那麼是無法刪除7天前的數據

03:該腳本是刪除當前時間前的第7天的索引(不需要索引的名稱有一定的規則)

04:所以需要在部署好elasticsearch後,就把腳本添加到定時任務中去。

[root@node-1 scripts]# cat delete_elk_indexs.sh

#!/bin/bash
#
# Define variables
RETVAL=0
Port=9200
Ip=192.168.10.138
Time1=$(date +%Y.%m.%d)
Time2=$(date +%Y.%m.%d -d "-7day")

# Determine the user to execute
if [ "$UID" -ne "$RETVAL" ];then
  echo "Must be root to run scripts"
  exit 1
fi

# Load local functions
[ -f /etc/init.d/functions ] && source /etc/init.d/functions

# Delete index 7 days ago
curl -XDELETE "http://$Ip:$Port/*${Time2}" >/dev/null 2>&1
RETVAL=$?
if [ "$RETVAL" -eq 0 ];then
  action "delete elk 7 day ago index" /bin/true
 else
  action "delete elk 7 day ago index" /bin/false
fi

# Scripts return values
exit $RETVAL

#腳本執行結果

[root@ node-1 scripts]# sh delete_elk_indexs.sh

delete elk 7 day ago index [ OK ]

1.4 定時任務

[root@ node-1 scripts]# crontab -l|tail -2

# Crond delete elk 7 day ago index. USER:chenliang TIME:2019-01-03

00 12 * * * /bin/sh /server/scripts/delete_elk_indexs.sh >/dev/null 2>&1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章