ELK过期索引定时删除脚本

五迷三道 提交于 2019-11-26 13:58:56

 

脚本1:

#/bin/bash
LAST_DATE=`date -d "14 day ago" +"%Y.%m.%d"` 
echo ${LAST_DATE}
curl -XDELETE 'http://192.168.7.117:9200/*_'${LAST_DATE}''

 


脚本2:

#!/bin/bash
###################################
function delete_indices() {
    echo "入参:$1"
    comp_date=`date -d "12day ago" +"%Y-%m-%d"`
    echo "12天前的时间: $comp_date"
    date1="$1 00:00:00"
   
    date2="$comp_date 00:00:00"
    

    t1=`date -d "$date1" +%s`
    echo "t1: $t1"
 
    t2=`date -d "$date2" +%s` 
    echo "t2: $t2"

    if [ $t1 -le $t2 ]; then
        echo "$1时间早于$comp_date,进行索引删除"
        #转换一下格式,将类似2017-10-01格式转化为2017.10.01
        format_date=`echo $1| sed 's/-/\./g'`
        echo "格式化后即将删除的索引日期: $format_date"
        curl -XDELETE http://192.168.7.117:9200/*$format_date
    fi
}

curl -XGET http://192.168.7.117:9200/_cat/indices | awk -F" " '{print $3}' | awk -F "_" '{print $NF}' | awk -F "-" '{print $NF}'|sort | uniq | egrep "[0-9]*\.[0-9]*\.[0-9]*" |sed 's/\./-/g'| while read LINE
do
    #调用索引删除函数
    delete_indices $LINE
    echo "=========================================="
done

以上脚本会自动检测当前索引中超过指定日志的,并进行删除 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!