ELK学习笔记之Elasticsearch删除指定日期的数据(脚本+定时任务)
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=$1
savedays=$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删除指定日期的数据(脚本+定时任务)的更多相关文章
- ELK学习笔记之ElasticSearch简介
0x00 什么是Elasticsearch Elasticsearch (ES)是一个基于 Lucene 的开源搜索引擎,它不但稳定.可靠.快速,而且也具有良好的水平扩展能力,是专门为分布式环境设计的 ...
- ELK学习笔记之Elasticsearch和Kibana数据导出实战
0x00 问题引出 以下两个导出问题来自Elastic中文社区. 问题1.kibana怎么导出查询数据?问题2:elasticsearch数据导出就像数据库数据导出一样,elasticsearch可以 ...
- ELK 学习笔记之 elasticsearch Shard和Segment概念
Shard和segment概念: 转载: http://blog.csdn.net/likui1314159/article/details/53217750 Shard(分片) 一个Shard就是一 ...
- ELK 学习笔记之 elasticsearch基本概念和CRUD
elasticsearch基本概念和CRUD: 基本概念: CRUD: 创建索引: curl -XPUT 'http://192.168.1.151:9200/library/' -d '{" ...
- ELK 学习笔记之 elasticsearch环境搭建
ELK概述: ElasticSearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等 Logstash是一 ...
- ELK学习笔记之Elasticsearch启动常见错误
问题出现的环境: OS版本:CentOS-7-x86_64-Minimal-1708 ES版本:elasticsearch-6.2.2 1. max file descriptors [4096] f ...
- ELK学习笔记之ElasticSearch的索引详解
0x00 ElasticSearch的索引和MySQL的索引方式对比 Elasticsearch是通过Lucene的倒排索引技术实现比关系型数据库更快的过滤.特别是它对多条件的过滤支持非常好,比如年龄 ...
- ELK 学习笔记之 elasticsearch启动时Warning解决办法
elasticsearch启动时Warning解决办法: 转载:http://www.dajiangtai.com/community/18136.do?origin=csdn-geek&dt ...
- ELK 学习笔记之 elasticsearch elasticsearch.yml配置概述
elasticsearch.yml配置概述: 设置集群名字 cluster.name 定义节点名称 node.name 节点作为master,但是不负责存储数据,只是协调. node.master: ...
随机推荐
- WPF属性绑定实现双向变化
WPF依赖项属性可以实现属性的绑定,成功绑定之后只要修改后台绑定的属性,即可UI同步自动更新绑定的值,无需手动刷新界面:同样,前台的值变化后,通过获取绑定的属性值也可获取UI变化后的值,实现双向变化的 ...
- python基础(23):面向过程与面向对象的优劣、初识面向对象
1. 面向过程与面向对象的优劣 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程 ...
- C++ 自增、自减运算符的重载和性能分析
01 ++.--运算符重载函数的格式 自增运算符和自减运算符是有前置和后置之分的,如: a++ // 后置自增运算符 ++a // 前置自增运算符 b-- // 后置自减运算符 --b // 前置自减 ...
- 面试题-JavaScript交换两个变量的方法
在平时的业务开发或者面试过程中,经常会遇到交换两个变量这种问题,于是,个人总结以下几种交换变量的方法: 1.方案一 使用一个临时变量来交换 2.方案二 使用ES6解构赋值语法来交换 3.方案三利用数 ...
- ts开发环境搭建
ts为typescript的缩写,是javascript的超集. npm源改为国内 由于 Node 的官方模块仓库网速太慢,模块仓库需要切换到阿里的源. npm config set registry ...
- 如何把转入成功的XXX.sql导入到自己的数据库里
1.新建自己的mysql连接,mysql连接名随便起,如cxf 密码尽量写123456或者root,防止忘记.按照图示右键(如果想在已有的mysql连接基础上建立数据库连接直接看第二步) 2.右键名 ...
- 解决springboot读取jar包中文件的问题
转载自: https://www.oschina.net/question/2272552_2269641 https://stackoverflow.com/questions/25869428/c ...
- 【bzoj1941】[Sdoi2010]Hide and Seek(kd-tree)
bzoj 题意: 给出\(n\)个点,对于每个点,\(d_i\)等于距离其最远的点的距离减去距离最近的点的距离.这里的距离为曼哈顿距离. 求\(min\{d_i\}\). 思路: 考虑直接对每个点暴力 ...
- 【cf375】D. Tree and Queries(dsu on tree+线段树)
传送门 题意: 给出一颗以\(1\)为根的有根树,每个结点有个颜色\(c_i\). 之后要回答\(m\)组询问,每组询问包含\(v_i,k_i\),要回答以\(v_i\)为根的子树中,颜色出现次数不小 ...
- C++中的异常处理(上)
C++内置了异常处理的语法元素try... catch ...-try语句处理正常代码逻辑-catch语句处理异常情况-try语句中的异常由对应的catch语句处理 try { ,); } catch ...