ES日志索引清除

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

ES在ELK系统当中起着查询和存储功能,如果不删除ES数据,长时间将会导致ES存储的数据越来越多,磁盘满了之后将无法写入新的数据。这时可以使用脚本定时删除过期数据。

以下为脚本内容:

vim es_del.sh

chmod +x es_del.sh

#!/bin/bash
#description: Clear n days ago!
##ES日志清理##
source /etc/profile

# 停服可按实际情况决定,因filebeat,metricbeat,heartbeat所加载的索引在删除后需重新加载kibana仪表盘且在服务运行时删除索引后启用加载仪表板命令会报错,故此为保障以上三个索引状态的正常,在删除索引之前先进行停服
systemctl stop filebeat metricbeat heartbeat

ES_ip=192.x.x.x
#定义删除7天以前的函数
del_log(){
    check_day=`date -d '-7 days' '+%F'`
    index_day=$1
    #将日期转换为时间戳
    checkday_timestamp=`date -d "$check_day" +%s`
    indexday_timestamp=`date -d "$index_day" +%s`
    #当索引的时间戳值小于当前日期7天前的时间戳时,删除此索引
    if [ ${index_day_timestamp} -lt ${check_day_timestamp} ];then
        #转换日期格式
        format_date=`echo $1 | sed 's/-/\./g'`
        echo $format_date
        curl -XDELETE -u elastic:123456 http://${ES_ip}:9200/*$format_date
    # -u elastic:123456为es登录账号和密码,按自己的实际环境而定
    fi
}
curl -XGET -u elastic:123456  http://${ES_ip}:9200/_cat/indices?v |awk -F" " '{print $3}'|grep -vE '^\.|index'|awk -F"-" '{print $NF}'|sort|uniq|sed 's/\./-/g'|while read LINE
do
        echo "#######"
        del_log $LINE 
done
cd /data/ELK/metricbeat/ && ./metricbeat setup
cd /data/ELK/filebeat/ && ./filebeat setup
cd /data/ELK/heartbeat && ./heartbeat setup  #加载仪表板
sleep 5s
systemctl start filebeat heartbeat metricbeat
#优化日志索引
curl -u elastic:123456 -X PUT "192.128.X.X:9200/_settings" -H 'Content-Type: application/json' -d'{"number_of_replicas":0}'             


# 若不考虑filebeat,metricbeat,heartbeat索引所加载的kibana仪表板,则删除停止f,h,m服务和重新启动与加载

# 若在有F,M,H三服务情况下,不停服便执行删除索引日志虽然会导致索引在加载kibana仪表板时报错,无法加载可视化仪表盘,但索引仍然重新加载,日志正常接收,此功能不受影响。

添加定时任务方便后续自动执行

crontab -e

0 0 * * 6 es_del.sh文章来源地址https://www.toymoban.com/news/detail-502958.html

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

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

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

相关文章

  • 【Elasticsearch】ES精确查询和范围查询,ES时间字段排序实例,ES倒排索引介绍

    termQuery matchQuery 模糊查询 multiMatchQuery 多个字段模糊查询 如果时间字段写入时用的类型是Text,可以用“时间字段.keyword”来处理 #查询前传入分页参数 #分页后拿到总记录数 把文档D对应到的映射转换为到文档ID的映射,每个都对应着一系列的文档,这些文

    2024年02月15日
    浏览(116)
  • ES查询多个索引,但是某些索引的name不同

    参考: https://blog.csdn.net/qq_37147750/article/details/111319151 背景: 目前有四个索引index, 对于这四个index他们的字段并不完全相同,要支持筛选。 目前的问题是,其中有两个索引要先根据条件筛选一遍。后续的筛选根据这次的结果做基础。 但是这两个索引的筛选条件也不一样。 相

    2024年02月13日
    浏览(48)
  • ES命令行查询es集群的状态、分片、索引

    查看es集群状态 查看es分片信息 查看es索引 查看ES索引 本文参考:https://www.cnblogs.com/expiator/p/14847705.html

    2024年02月12日
    浏览(51)
  • ES查询索引字段的分词结果

    一、_termvectors  1、查看文档中某一个字段的分词结果 GET /{index}/{type}/{_id}/_termvectors?fields=[field] 2、样例: text的值为:https://www.b4d99.com/html/202204/45672.html 得到的结果: 二、_analyze 1、语法 2、样例: text的值为:https://www.b4d99.com/html/202204/45672.html 得到的结果:

    2024年02月11日
    浏览(68)
  • 简单介绍ES中的索引存储类型

    老铁们好,我是V,今天我们简单聊聊ES中的索引存储类型 目前ES中主要支持以下几种存储类型 fs 默认文件系统实现。这将根据操作环境选择最佳实施,目前会默认启用hybridfs simplefs Simple FS 类型是 SimpleFsDirectory 使用随机访问文件的文件系统存储(映射到 Lucene)的直接实现。这

    2024年04月28日
    浏览(39)
  • 使用python在es中基本操作详解(添加索引、查询索引、删除索引、判断索引是否存在、添加数据、更新数据、查询数据)

    示例代码1: 运行结果: 示例代码2: 运行结果: 示例代码3: 运行结果: 注意: 对比上面几种建立索引的方法,是有一定区别的。根据响应结果可以看出: es. indices.create() 方法是标准的创建索引的方法,其它几种方法在创建索引的同时也会生成一条数据,并且生成mappin

    2024年02月11日
    浏览(183)
  • ElasticSearch---查询es集群状态、分片、索引

    查看es集群状态: 如果?后面加上pretty,能让返回的json格式化。 加上?v的返回结果,如下: 解释如下: 查看es分片信息: 查看es分片信息,模糊匹配,比如匹配test: 返回信息如下: 解析如下: 查看状态为unassigned的es分片信息: 查看es索引 查看es所有索引: indices表示索引,是

    2024年02月02日
    浏览(40)
  • 使用java来查询es索引(基于es7.8)

    1、先引入pom依赖: 2、然后在main方法里进行测试: 运行一下,打印结果跟在postman里执行出来是一样的: 后面会根据字段进行条件查询,所以在建立映射的时候,需要指定index属性为true。如下图,在postman创建映射:

    2024年02月11日
    浏览(51)
  • ES如何查询索引的全量数据

    问题描述 查询全表数据也是日常工作中常见的一种查询场景。 在ES如果我们使用match_all查询索引的全量数据时,默认只会返回10条数据。 那么在ES如何查询索引的全量数据呢? 小实验 1、索引和数据准备 PUT book {   \\\"mappings\\\": {     \\\"properties\\\": {       \\\"name\\\": {         \\\"type\\\": \\\"te

    2023年04月10日
    浏览(39)
  • mysql高级三:sql性能优化+索引优化+慢查询日志

    内容介绍 单表索引失效案例 0 、思考题: 如果把 100 万数据插入 MYSQL ,如何提高插入效率 (1)关闭自动提交,只手动提交一次 (2)删除除主键索引外其他索引 (3)拼写mysql可以执行的长sql,批量插入数据 (4)使用java多线程 (5)使用框架,设置属性,实现批量插入 1、

    2024年02月12日
    浏览(68)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包