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删除指定日期的数据(脚本+定时任务)的更多相关文章

  1. ELK学习笔记之ElasticSearch简介

    0x00 什么是Elasticsearch Elasticsearch (ES)是一个基于 Lucene 的开源搜索引擎,它不但稳定.可靠.快速,而且也具有良好的水平扩展能力,是专门为分布式环境设计的 ...

  2. ELK学习笔记之Elasticsearch和Kibana数据导出实战

    0x00 问题引出 以下两个导出问题来自Elastic中文社区. 问题1.kibana怎么导出查询数据?问题2:elasticsearch数据导出就像数据库数据导出一样,elasticsearch可以 ...

  3. ELK 学习笔记之 elasticsearch Shard和Segment概念

    Shard和segment概念: 转载: http://blog.csdn.net/likui1314159/article/details/53217750 Shard(分片) 一个Shard就是一 ...

  4. ELK 学习笔记之 elasticsearch基本概念和CRUD

    elasticsearch基本概念和CRUD: 基本概念: CRUD: 创建索引: curl -XPUT 'http://192.168.1.151:9200/library/' -d '{" ...

  5. ELK 学习笔记之 elasticsearch环境搭建

    ELK概述: ElasticSearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等 Logstash是一 ...

  6. ELK学习笔记之Elasticsearch启动常见错误

    问题出现的环境: OS版本:CentOS-7-x86_64-Minimal-1708 ES版本:elasticsearch-6.2.2 1. max file descriptors [4096] f ...

  7. ELK学习笔记之ElasticSearch的索引详解

    0x00 ElasticSearch的索引和MySQL的索引方式对比 Elasticsearch是通过Lucene的倒排索引技术实现比关系型数据库更快的过滤.特别是它对多条件的过滤支持非常好,比如年龄 ...

  8. ELK 学习笔记之 elasticsearch启动时Warning解决办法

    elasticsearch启动时Warning解决办法: 转载:http://www.dajiangtai.com/community/18136.do?origin=csdn-geek&dt ...

  9. ELK 学习笔记之 elasticsearch elasticsearch.yml配置概述

    elasticsearch.yml配置概述: 设置集群名字 cluster.name 定义节点名称 node.name 节点作为master,但是不负责存储数据,只是协调. node.master: ...

随机推荐

  1. 由 ToString()和Convert.ToString() 引发的问题

    对于久经沙场的程序猿来说,类型转换再熟悉不过了,在代码中我们也会经常用到. 前几天,有个学生问我关于类型转换ToString()和Convert.ToString()的区别,这么常用的东西我竟然支支吾 ...

  2. IIS安装和ASP.NET Web应用程序开发期间部署到IIS自定义主机域名并附加进程调试

    一.IIS安装,此处以Windows10操作系统为例 首先依次进入控制面板=>程序=>程序与功能=>启用或关闭Windows功能 将Internet开头的三个选项全部打钩后点击确定安 ...

  3. 如何利用python爬取网易新闻

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: LSGOGroup PS:如有需要Python学习资料的小伙伴可以 ...

  4. 总结了Python中的22个基本语法

    "人生苦短,我用Python".Python编程语言是最容易学习.并且功能强大的语言.只需会微信聊天.懂一点英文单词即可学会Python编程语言.但是很多人声称自己精通Python ...

  5. MySQL入门——MySQL数据库和SQL语言

    MySQL入门——MySQL数据库和SQL语言 摘要:本文主要了解了MySQL关系型数据库和SQL语言的基本知识. MySQL数据库 简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB ...

  6. paypal开发指南

    一.开发者地址: https://developer.paypal.com 使用在paypal上注册的账号登陆即可, 二.沙箱账号 paypay自动会为你创建两个沙箱账号,一个商家,一个买家.在acc ...

  7. iOS开发证书那点事儿

    iOS开发是用Xcode作为开发工具,Xcode在安装之后就自带了模拟器(Simulator).模拟器是个好工具,它对用户没有任何要求,但是我们必须牢记一件事:开发出来的App最终是要在真机上执行,没 ...

  8. redis和memcached的对比

    redis:① 支持的数据结构比较多 ② 支持集群 ③ 支持数据持久化,RDB.AOF ④ 单个value最大值512MB      ⑤ 单核 memcached: ① 支持K/V结构的数据 ② 不支 ...

  9. Mysql—数据库管理与表管理

    数据库管理 表管理 删除表

  10. PyCharm重命名文件时更改引用的地方

    Shift + F6 在文件夹直接更改文件名称时,其它文件里有调用这个模块的话,名称是不会改变的,只会报错,显示找不到这个模块,这时,可以在pycharm里直接更改 右键你需要改名的文件,选择Refa ...