ELK学习笔记之Elasticsearch删除指定日期的数据(脚本+定时任务)

摘要:
0x00概述当前的ES版本是6.3.x。经过长时间的积累,ES中可用的数据越来越多,需要删除指定日志之前的日志。0x01ES删除索引和数据#XX天前!漂亮“#exit0savedays=`expr$savedays+1`done}#从第60天到第90天关闭索引closeIndex'filebeat-'6090#从第90天删除索引deleteIndex'filebeat-'60900x03摘要您可以编写上述shell内容的脚本,并将其添加到crontab计划任务中。

0x00 概述

目前使用的ES版本为6.3.x,经过长时间的积累,ES内数据越来越多,需要删除指定日志之前的日志。

例如只要求保留60天的日志,那么就要删除60天之前的所有索引和日志。

0x01 ES删除XX天之前的索引和数据

#!/bin/sh#ES版本为6.3.x

function delIndex()
{
        #此处输入要删除的索引名字,例如要删除filebeat-xxx索引的日志,此处要输入‘filebeat-’
        index_name=$1
        #此处输入要数据保留的天数,例如要保留最近60天的数据,此处要输入60
        savedays=$2
        #$3变量也是天数,例如你要保留60天的数据,此处输入90,就是会删除第60到90天这段时间的数据,60<=90
        while [ $savedays -le $3]
        do
                #此处是es内索引的日期格式,有的是2019.11.26,有的是2019-11-26
                format_day='%Y.%m.%d'
                #format_day='%Y-%m-%d'
                
                #此处通过date命令组成索引的时间戳部分,例如2019.11.26或者2019-11-26
                sevendayago=`date -d "-${savedays} day " +${format_day}`
                
                #此处组成完整的es数据的索引,数据格式filebeat-2019.11.26或者filebeat-2019-11-26
                index=$index_name$sevendayago
                #echo $sevendayago
echo $index
                curl -XDELETE "http://127.0.0.1:9200/${index}"
                #exit 0
                
                #删除完第60天的索引后,开始删除第61天的索引,直到第90天
                savedays=`expr $savedays + 1`
        done
}

#删除索引前,要关闭索引,然后再删除索引#逻辑与上面删除的逻辑一致
function closeIndex()
{
        index_name=$1savedays=$2
        while [ $savedays -le $3]
        do

                format_day='%Y.%m.%d'
                #format_day='%Y-%m-%d'
                sevendayago=`date -d "-${savedays} day " +${format_day}`
                index=$index_name$sevendayago
                #echo $sevendayago
echo $index
                curl -XPOST "http://127.0.0.1:9200/${index}/_close?pretty"
                #exit 0
                savedays=`expr $savedays + 1`
        done
}

#关闭第60天到第90天的索引
closeIndex ‘filebeat-’ 60 90

#删除第60天到第90天的索引
deleteIndex ‘filebeat-’ 60 90

0x03 总结

可以将上面的shell内容做成脚本,加入crontab定时任务。

免责声明:文章转载自《ELK学习笔记之Elasticsearch删除指定日期的数据(脚本+定时任务)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android平台Overlay机制父类子类指针相互转换问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

七、ES故障排查

在这里记录一下排查es服务故障的思路 1、查看端口 es服务会开启9200跟9300端口 kibana会开启5601端口 es-head会开启9100端口 ss -lntup | grep 9200 ss -lntup | grep 9300 ss -lntup | grep 5601 ss -lntup | grep 9100 2、curl查看 在服务...

HTML提交form表单后获取返回的数据

编写form表单 <form method="post" action="xxx"> <input type="text"> <input type="submit" value="提交"/> </form> 当用户点击按钮时就会自动提交表单到后台处理,若此时想拿到后台返回的数据,则需要引入...

SAPBW数据仓库增量更新

  1    说说假增量     我们都知道,对于BW来说,很多ECC的标准数据源自带了增量更新功能,每天各种凭证产生的增量数据会自动堆积到增量队列里,然后BW端做一个增量信息包按天把这些增量抽取到数据仓库里,非常轻松自然,对于客户和顾问,都是透明的自动的容易实施的,这也是上过ECC的企业数据仓库采用SAP BW的一个优势所在。   但是对于非ECC的一般...

使用python操作mysql数据库

一、pymysql的使用 1.首先在python中安装pymysql模块(CMD窗口命令下)。 pip install pymsql 安装完成后导入import pymysql 2.pyysql 连接数据库的必要参数: 主机、端口、用户名。密码、数据库 注意:pymysql不能提供创建数据库的服务,数据库要提前创建 3.连接步骤: ​ -1. 建立数据库连...

Mysql创建索引

1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。 例如,有3个未索引的表t1、t2、t3,分别只包含列c1、c2、c3,每个表分别含有1000行数据组成,指为1~1000的数值,查找对应值相等行的查询如下所示。  ...

破解数据匮乏现状:纵向联邦学习场景下的逻辑回归(LR)

摘要:主要介绍了华为云可信智能计算服务(TICS)采用的纵向联邦逻辑回归(LR)方案。 本文分享自华为云社区《纵向联邦学习场景下的逻辑回归(LR)》,作者: 汽水要加冰。 海量训练数据是人工智能技术在各个领域成功应用的重要条件。例如,计算机视觉和商务经融推荐系统中的 AI 算法都依靠大规模标记良好的数据才能获得较好的推理效果。然而在医疗、银行以及一些政务...