elasticsearch 如何清理过期的数据
使用elasticsearch收集日志进行处理,时间久了,很老的数据就没用了并且占用很大的磁盘,这个时候就要对过期数据进行清理
删除elasticsearch数据分为两种:一种是删除索引(数据和表结构同时删除,作用同sql server 中 drop table "表格名"),另一种是删除数据(不删除表结构,作用同 sql server中delete 语句)
1、删除索引
#查询索引
[root@ecloud-elk-05 opt]# curl -u zhanghao:mima -XGET 'http://10.56.0.103:9200/_cat/indices'
green open bizlog-2021.09.11 pHsgvR7JQhmgMIBX24zhJg 1 1 25506896 2480707 44.3gb 22.1gb
green open bizlog-2021.10.01 noexo6r6Qe61qxmB30YzBQ 1 1 17382250 1859034 26.3gb 13.1gb
green open bizlog-2021.09.12 oYy6PpJERKatZnbhVJ6ZyA 1 1 19184655 1839037 33.1gb 16.5gb
green open bizlog-2021.09.13 w2LY5073QGy1I7r_9j1qag 1 1 29137518 2598039 49gb 24.5gb
green open deliver-2021.11.21 iNezTH7ISHmTt_dG3SdIvg 10 1 20071 0 7.9mb 3.9mb#查询索引的列表
[root@ecloud-elk-05 opt]# curl -u zhanghao:mima -XGET 'http://10.56.0.103:9200/_cat/indices' |awk '{print $3}' | awk -F'-' '{print $1}' |sort |uniq -c% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed
100 45633 100 45633 0 0 41564 0 0:00:01 0:00:01 --:--:-- 4159746 api_nginx_log2 .apm1 .async107 bizlog68 ctlog71 deliver1 .kibana_11 .kibana_task_manager_11 redis1 .reporting1 .security71 zmms_system#清理索引
[root@ecloud-elk-05 0]# curl -XDELETE -u zhanghao:mima http://10.56.0.103:9200/ctlog-2021.09.02
{"acknowledged":true}[root@ecloud-elk-05 0]#
清理索引的脚本一
[root@ecloud-elk-05 opt]# cat delete_es.sh
#********************************************************************
#Author: yzl
#QQ: calm_yzl@163.com
#Date: 2021-11-23
#FileName: es_index_clear.sh
#URL: yzil.cn
#Description: The test script
#Copyright (C): 2021 All rights reserved
#********************************************************************username=zhanghao
passwd=mima
ruikaecs='10.56.0.103'datemask=$(date -d "-30 day" '+%Y-%m-%d')
index_list=(api_nginx_log bizlog ctlog deliver zmms_system)
for indexname in ${index_list[@]};doecho "`date '+%Y%m%d-%H%M%S'`clean index data:${indexname}-${datemask}"curl -XDELETE -u ${username}:${passwd} "http://$ruikaecs:9200/${indexname}-${datemask}"echo "done"
done
清理索引的脚本二
#Author: yzl
#QQ: calm_yzl@163.com
#Date: 2021-11-23
#FileName: es_index_clear.sh
#URL: yzil.cn
#Description: The test script
#Copyright (C): 2021 All rights reserved
#********************************************************************# 需要清理几天以前的索引日志
CLEAN_DAY=30# 获取N天以前的年月日
YEAR=$(date -d "$(date -I) -$CLEAN_DAY"day"" +%Y)
MONTH=$(date -d "$(date -I) -$CLEAN_DAY"day"" +%m)
DAY=$(date -d "$(date -I) -$CLEAN_DAY"day"" +%d)# 获取需要过滤N天前的ES索引数据
DATA=`curl -s http://zhanghao:mima@10.56.0.103:9200/_cat/indices?v \
|awk '/[0-9]{4}.[0-9]{2}.[0-9]{2}/{print $3}' |awk -F[-.] '{s2=mktime($(NF-2)" "$(NF-1)" "$NF" 0 0 0");\
s1=systime()}{if(s1-s2 >= 86400*"'$CLEAN_DAY'") print $0}'`echo "即将清理"$YEAR'-'$MONTH'-'$DAY"前ES索引数据>>>>>>>>"
echo "清理数据为: "$DATA # 执行清理工作
for i in $DATAdosleep 1#curl -XDELETE -u zhanghao:mima http://10.56.0.103:9200/$i
doneecho "======================="
echo "执行完成"
echo "======================="
2、使用官网 delete_by_query进行删除
curl -u 用户名:密码 -H'Content-Type:application/json' -d'{"query": {"range": {"@timestamp": {"lt": "now-7d","format": "epoch_millis"}}}
}
' -XPOST "http://127.0.0.1:9200/*-*/_delete_by_query?pretty"-u是格式为userName:password,使用Basic Auth进行登录。如果elasticsearch没有使用类似x-pack进行安全登录,则不需要加-u参数
-H是指定文档类型是json格式
-XPOST是指定用POST方式请求
-d是指定body内容{"query": {"range": { //范围"@timestamp": {//时间字段"lt": "now-7d",//lt是小于(<),lte是小于等于(<=),gt是大于(>),gte是大于等于(>=),now-7d是当前时间减7天"format": "epoch_millis"}}}
}定时删除$ crontab -e* 0 * * * /usr/bin/curl -u username:password -H'Content-Type:application/json' -d'{"query":{"range":{"@timestamp":{"lt":"now-7d","format":"epoch_millis"}}}}' -XPOST "http://127.0.0.1:9200/*-*/_delete_by_query?pretty" > /tmp/elk_clean.txt每天0点删除超过7天的无效索引优点:不依赖第三方插件或者代码简单易理解不需要指定索引名称可用*通配符删除缺点:效率低
常见命令
查看索引列表
curl -k https://your_username:your_password@10.124.10.27:9200/_cat/indices?v查询集群是否健康
curl -k https://your_username:your_password@10.124.10.27:9200/_cluster/health查看所有shard
curl -k https://your_username:your_password@10.124.10.27:9200/_cat/shards启动命令
/usr/local/elasticsearch/bin/elasticsearch -d
elasticsearch 如何清理过期的数据相关推荐
- elasticsearch 怎么删除过期的数据
使用elasticsearch收集日志进行处理,时间久了,很老的数据就没用了或者用途不是很大,这个时候就要对过期数据进行清理.但是es5.0之后就不支持ttl,那怎么办呢? 1,请使用官方的工具ela ...
- elasticsearch定时删除过期索引index
elasticsearch定时清理过期索引index 一.定时函数 二.获取过期时间 三.获取esClient 四.获取全部索引 五.判定索引是否过期 六.删除过期索引 七.demo代码 一.定时函数 ...
- Redis 如何处理已经过期的数据?
上一篇我们讲了 Redis 内存用完之后的内存淘汰策略,它主要是用来出来异常情况下的数据清理,而本文讲的是 Redis 的键值过期之后的数据处理,讲的是正常情况下的数据清理,但面试者常常会把两个概念搞 ...
- 如何使用Elasticsearch groovy script脚本更新数据
2019独角兽企业重金招聘Python工程师标准>>> 如何使用Elasticsearch groovy script脚本更新数据 博客分类: 搜索引擎,爬虫 今天细说一下elast ...
- MongoDB 自动删除集合中过期的数据——TTL索引
简介 TTL (Time To Live, 有生命周期的) 索引是特殊单字段索引,MongoDB可以用来在一定时间后自动从集合中删除文档的特殊索引. 这对于某些类型的数据非常好,例如机器生成的事件 ...
- 【Flink】Flink 清理过期 Checkpoint 目录的正确姿势
1.概述 转载:Flink 清理过期 Checkpoint 目录的正确姿势 参考:Flink如何清除过期的CheckPoint
- AD如何清理过期电脑
客户的生产环境,有几千台电脑加入到域中,由于客户端测试电脑,很多没有正常退域,而直接重做系统,并且命名也各不相同,导至现在AD里面殘留很多电脑账号. 1.如何去检查及识别AD里面过期的电脑账号? 2. ...
- ChatGPT 和 Elasticsearch:OpenAI 遇见私有数据(二)
在之前的文章 "ChatGPT 和 Elasticsearch:OpenAI 遇见私有数据(一)" 中,我们详细描述了如何结合 ChatGPT 及 Elasticsearch 来进 ...
- EFK之elasticSearch自动清理方案
1 简介 本方案实现的功能点:输入日志文件.按照指定的日期(天数)清理数据.按照指定的磁盘路径使用率阈值清理数据.清除指定的索引数据,并配合crond实现定时监控和清理索引数据,以确保磁盘空间健康. ...
- 清理所有NSUserdefault数据
清理所有NSUserdefault数据 NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSDictiona ...
最新文章
- IDEA Reference - Essentials(基本要义)
- linux读整个文件内容,Linux查看整个文件
- 玩 High API 系列之:智能云相册
- 从青铜到王者,来聊聊 Synchronized 底层实现原理 | 原力计划
- 功能和界面哪个更重要
- 嵌入式系统开发-麦子学院(3)——Linux C初级编程1
- linux 文本随机抽样_Linux命令总结
- 【猿说VUE】Vue过滤器使用介绍(劳动节致敬)
- 鸿蒙系统可以微信吗,微信鸿蒙版下载-微信华为鸿蒙操作系统版 v7.0.21-91优手机网...
- 记工作的第一月--光说不练,假把式
- 【NOIP2016提高组】天天爱跑步
- RDBMS(关系型数据库)与HBase的对比
- 攻略(一):骑马与砍杀-潘德的预言mod快速自立攻略
- 计算机操作员高级图形图像处理photoshopcs2试题解答,图形图像处理(Photoshop平台)Photoshop CS2试题汇编(图像制作员...
- 【游戏美术】Unity中,场景的优化以及基本规范
- 如何通过安防网络设备的EHOME协议把设备接入EasyCVR平台,进行互联网直播及分发?
- Android基于卷积神经网络的数字手势识别识别数字手势0-10 Android studio编译
- SQL知识点小结(嵌套查询)
- Android使用Intent发送短信SMS
- 2023浙沪地区MEM项目提前批面试申请最后时间表(8-11月)
热门文章
- 读书笔记:《圈子圈套》
- windows 清理助手 3.1
- DOS命令是如何操作目录和文件夹的?
- 第二章第一题(将摄氏温度转换为华氏温度)(Convert Celsius to Fahrenheit)
- iOS H264编码及解码
- php 开发模式 自定义,smartprinter虚拟打印机 smarty+adodb+部分自定义类的php开发模式...
- bin音频文件转MP3
- 使用pdfFactory Pro虚拟打印机便笺功能为文件添加批注
- 问题解决:你需要trustedinstaller提供的权限才能删除
- 东芝 rc100 linux,东芝RC100 M.2 NVMe固态硬盘HMB特性解读