es 按月建索引,定时删除3个月前索引

这篇具有很好参考价值的文章主要介绍了es 按月建索引,定时删除3个月前索引。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.建模板

#log_template为模板名称可更改
PUT /_template/log_template?pretty
{
#以log开头的索引都会使用此模板创建
  "template": "log*",

  "settings": {
#设置es分片数量,可不设
    "number_of_shards": 10

  },

  "mappings": {
#设置模板中属性,可不设置
      "properties": {

        "name": {

          "type": "text",

          "index": "true"

        }
      }
  },
#索引别名,查询时可使用别名查询索引
  "aliases": {"log":{}}

}

2.创建索引时携带年月(如果按日删除需携带年月日) 

例: log-202208

3.根据别名查询数据

#log为别名
GET /log/_search

4.定时删除过期数据,本文使用shell脚本文章来源地址https://www.toymoban.com/news/detail-583679.html

#!/bin/bash
  
function delete_indices() {
#comp_date=`date -d "7 day ago" +"%Y-%m-%d"`  7天前
    comp_date=`date -d "3 month ago" +"%Y-%m-%d"`
    date1="$1"
    date2="$comp_date"

    t1=`date -d "$date1" +%s`
    t2=`date -d "$date2" +%s`
    if [ $t1 -le $t2 ]; then
        echo "$1时间早于$comp_date,进行索引删除"
        #转换一下格式,将类似2022-10-01格式转化为20221001
        curl -XDELETE http://192.168.3.111:9200/*$2
    fi
}
#如果按日删除 需将grep '[[:digit:]]\{6\}' 改为grep '[[:digit:]]\{8\}'
curl -XGET http://192.168.3.111:9200/_cat/indices | awk -F" " '{print $3}' | awk -F"-" '{print $NF}' | grep '[[:digit:]]\{6\}' | sort | uniq  | while read line
do
 #如果按日删除 需将p="${line:0:4}-${line:4:2}-01" 改为 p="${line:0:4}-${line:4:2}-${line:6}"
    p="${line:0:4}-${line:4:2}-01"
    o="${line}"
    #调用索引删除函数
    delete_indices $p $o
done

到了这里,关于es 按月建索引,定时删除3个月前索引的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ES 查看、删除索引命令

    1 、获取 cat命令 列表: 2 、带用户名密码查看索引信息 3、 查看索引信息及空间占用: 4、清理指定索引空间 5、 删除索引 6、删除30天前的索引记录 7、crontab 定时清理30天前数据 8、修改带密码的索引副本数量  

    2024年02月09日
    浏览(49)
  • Es 索引查询与删除

    1、 #删除单个索引 2、#删除多个指定索引,中间用逗号隔开 3、#模糊匹配删除 4、#使用通配符,删除所有的索引 5、#获取当前索引 6、如果存储不够可以设置定时删除,下面是保留3天的日志 以下是定时删除脚本:

    2024年02月11日
    浏览(45)
  • es 索引操作(创建、查看、删除)

    Elasticsearch采用Rest风格API,因此其API就是一次http请求,只要能发起http请求。 settings:表示索引库设置,其中可以定义索引库的各种属性 比如分片数 副本数等,暂时不设置,都走默认。 GET /索引名称 GET /索引名称1,索引名称2,索引名称3,… 信息就比较多了 #! Deprecation: Elasticse

    2023年04月08日
    浏览(38)
  • ES(elasticsearch)删除指定索引

    需要删除指定的索引 执行命令 比如:DELETE /mysql-status_-2023.06 执行结果: 执行命令 比如:HEAD /mysql-status_-2023.06 执行结果: 说明已经删除完毕 删除命令: DELETE /索引名 查看是否删除成功: HEAD /索引名 查看索引命令: GET /索引名称 批量查看索引命令: GET /索引名称1,索引名称

    2024年02月11日
    浏览(62)
  • ES中删除索引中某个字段

    ES中无法直接增删索引中的字段,只能能够覆盖,即重建新的索引 例:删除索引my_index中的source字段 先将source字段中的数据删除 否则后面reindex时,索引中会自动增加source字段和类型 创建新的索引my_index_bak,该mapping中不包含source字段 数据迁移 删除原来的索引 再重新创建索引

    2024年02月11日
    浏览(43)
  • 使用java来删除es索引(基于es7.8)

    先引入pom依赖: 然后在main方法里进行测试:

    2024年02月16日
    浏览(39)
  • ES简单教程(五)使用ElasticsearchRestTemplate手动生成ES索引 项目启动自动生成ES索引

    其实使用 SpringBoot 项目玩ES的时候,人家本身是提供了一个注解 @Docment 是可以自动在项目启动的时候创建ES索引的! 只不过没用,因为 ES 的版本在升级, ElasticsearchRestTemplate 配套的脚手架也在升级,所以你会在网上遇到一个情况:搜到的各类解决方案可能都太适配你的情况,

    2024年02月03日
    浏览(60)
  • ES按照时间删除索引上的数据

    集群的索引没有预先规划大小,导致索引特别大,删除数据删除索引的形式进行,只能在原来的索引上进行数据删除操作。  删除索引时采用最经典的方式,即按照时间戳进行删除,比如删除90天以前的历史数据,保留最新的。 Elasticseach会有后台线程根据Lucene的合并规则定期

    2024年02月11日
    浏览(42)
  • Spring Boot Elasticsearch7.6.2实现创建索引、删除索引、判断索引是否存在、获取/添加/删除/更新索引别名、单条/批量插入、单条/批量更新、删除数据、递归统计ES聚合的数据

    注意:我的版本是elasticsearch7.6.2、spring-boot-starter-data-elasticsearch-2.5.6 引入依赖 有时候你可能需要查询大批量的数据,建议加上下面配置文件

    2024年02月13日
    浏览(70)
  • ES简单教程(二)使用ElasticsearchRestTemplate新增、删除索引文档数据

    注意 :不是新增索引哈,是为某个索引新增/删除文档数据,即为某个表新增或者删除表数据。

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包