目 录
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