目 錄
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.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