写BUG的派大星

Patrick Star

  • 首页
  • 归档

  • 搜索
设计模式 Gis Kafka Druid 微信小程序 Java 开源项目源码 物体识别 机器学习 Mybatis 微服务 Feign OpenVPN CSS Streamsets CDH SpringCloud SpringBoot maven 分布式 Shell Tree Linux js WebSocket 多线程 集群 Hadoop 大数据 JDK ElasticSearch MySQL 数据库 Redis Http Nginx

ELK中定时清除过期索引的脚本

发表于 2021-01-19 | 分类于 Linux | 0 | 阅读次数 693

ELK中创建的索引格式为log_appname-2020.12.31,需要根据后面的日期判断是否过期并删掉过期索引。

脚本代码如下:

#!/bin/bash
###################################
es_ipaddr=http://192.168.100.100:9200
function delete_indices() {
    echo "入参:$1"
    comp_date=`date -d "7day ago" +"%Y-%m-%d"`
    echo "7天前的时间: $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 $es_ipaddr/*$format_date
    fi
}

curl -XGET $es_ipaddr/_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

执行结果:
image.png
每天定时调用这个脚本就可以了。

linux下定时调用可以使用crontab工具

  • 本文作者: Patrick
  • 本文链接: https://www.write1bug.cn/archives/elk中定时清除过期索引的脚本
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
# 设计模式 # Gis # Kafka # Druid # 微信小程序 # Java # 开源项目源码 # 物体识别 # 机器学习 # Mybatis # 微服务 # Feign # OpenVPN # CSS # Streamsets # CDH # SpringCloud # SpringBoot # maven # 分布式 # Shell # Tree # Linux # js # WebSocket # 多线程 # 集群 # Hadoop # 大数据 # JDK # ElasticSearch # MySQL # 数据库 # Redis # Http # Nginx
Druid + MySQL 支持emoji表情
动态代理模式
  • 文章目录
  • 站点概览
Patrick

Patrick

不是在改BUG,就是在写BUG。

52 日志
9 分类
36 标签
RSS
E-mail
Creative Commons
© 2018 — 2023 Patrick
人生如逆旅|我亦是行人
鲁ICP备18043140号-1