首页 > 其他分享 >删除 Elasticsearch 中指定日期前的数据

删除 Elasticsearch 中指定日期前的数据

时间:2023-10-24 10:59:01浏览次数:36  
标签:LAST log 删除 索引 access nginx 日期 Elasticsearch

之前已搭建一个ELK+Filebeat 的集群,并收集了 Nginx 的日志信息。在 Elasticsearch 中索引的名字是:nginx-access-log-*,后面的*代表的是日期。

假如,需要删除7天前的数据,可以执行通过以下方法:

curl -u elastic:******  -H'Content-Type: application/json' -d'{
  "query": {
    "range": {
      "@timestamp": {
        "lt": "now-4d",
        "format": "epoch_millis"
      }
    }
  }
}

' -XPOST "http://192.168.1.231:9200/nginx-access-log*/_delete_by_query?pretty"

其中:

  • -u 是格式为 username:password,使用Basic Auth 进行登录。如果 Elasticsearch 没有使用x-pack进行安全认证登录,则不需要加这个参数。
  • -H 设置请求头,'Content-Type: application/json'文档类型是json格式。
  • -XPOST 是指定用 POST 方式请求
  • -d 是指定发送的 body 内容
  • body 内容解释如下:
    {
      "query": {
        "range": {                  // 范围
          "@timestamp": {           // 时间段
            "lt": "now-4d",         // lt是小于(<),lte是小于等于(<=),gt是大于(>),gte是大于等于(>=),now-7d是当前时间减7天
            "format": "epoch_millis"
          }
        }
      }
    }

    执行语句会返回一些信息:

    {
      "took" : 8822,
      "timed_out" : false,
      "total" : 160821,
      "deleted" : 160821,
      "batches" : 161,
      "version_conflicts" : 0,
      "noops" : 0,
      "retries" : {
        "bulk" : 0,
        "search" : 0
      },
      "throttled_millis" : 0,
      "requests_per_second" : -1.0,
      "throttled_until_millis" : 0,
      "failures" : [ ]
    }

    ElasticSearch 选择返回如此详细的信息是为了让执行者知晓本次删除操作的概况,从返回结果中我们可以得知总共有多少被删除的数据、实际上删除了多少、耗时多久、是否超时等。

          以上方法只会删除数据,不会删除索引文件。如果想删除索引文件,可以使用以下脚本方式进行定时删除:

         

#!/bin/bash
#es_index_delete.sh
USERNAME=elastic
PASSWORD=*****
LAST_DATA=`date -d "-7 days" "+%Y.%m.%d"`
curl -XDELETE http://${USERNAME}:${PASSWORD}@192.168.1.231:9200/nginx-access-log-${LAST_DATA}
  • -7 days 指定7天前的索引时间
  • %Y.%m.%d 指定时间的格式
  • curl -XDELETE http://ip:port/nginx-access-log-${LAST_DATA} 删除索引的命令,ip是索引集群地址,port是索引集群端口,nginx-access-log-${LAST_DATA} 表示删除以nginx-access-log-名字为开头的文件,比如 nginx-access-log-2022.05.25

      原文链接地址:https://www.seafog.cn/archives/318925258

标签:LAST,log,删除,索引,access,nginx,日期,Elasticsearch
From: https://www.cnblogs.com/angryprogrammer/p/17784210.html

相关文章

  • JS根据属性删除数组中的对象
    JS根据属性删除数组中的对象//示例letarry=[{id:1,name:'xxx'},{id:2,name:'yyy'}]​arry=arry.filter(item=>item.id!==1)​//这里根据数组内对象的id属性进行过滤,把id为1的对象过滤掉了,并返回了过滤得到的数组 ......
  • LeetCode | 19. 删除链表的倒数第 N 个结点
    1相关标签链表、双指针、C语言2报错情况2.1题目给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。2.2错误代码/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNo......
  • Python 数组和列表:创建、访问、添加和删除数组元素
    Python没有内置支持数组,但可以使用Python列表来代替。数组本页将向您展示如何使用列表作为数组,但要在Python中使用数组,您需要导入一个库,比如NumPy库。数组用于在一个变量中存储多个值:示例,创建一个包含汽车名称的数组:cars=["Ford","Volvo","BMW"]什么是数组?数组是......
  • 无涯教程-Clojure - 日期&时间
    由于Clojure框架是从Java类派生的,因此可以使用Clojure中Java中可用的日期时间类,以下是可用于日期时间类的方法。java.util.Date这用于在Clojure中创建日期对象。java.util.Date.以下程序显示了有关如何使用它的示例。(nsexample)(defnExample[](defdate(.toStrin......
  • 【解决】elasticsearch:Could not parse aggregation keyed as [%s]问题
    背景在做elasticsearch集群从原来的2.x版本升级到更新版本如6.x过程中,由于需要在原来的应用中,同时连接2.x的集群以及6.x的集群来做在线动态灰度切流量,保证流量平滑切换,有问题可随时回切;一般在应用侧比较常规的做法是使用elasticsearch提供rest的sdk:JavaHighLevelRESTClient,......
  • 从数组中删除假值
    您可以使用filter()来组合布尔值,以简化从数组中删除假值的过程。false值是将false视为条件的值,例如null、未定义、空字符串(“”或'')、0、NaN和false。Boolean是JavaScript的内置构造函数,它通过将值传递给它来将值转换为布尔值。在此示例中,布尔构造函数作为回调函数传......
  • python 计算指定日期是今年的第几周和这个月的第几周
    Python当前时间是一年中第几周_python计算一年的第几周-CSDN博客以上感觉可能索引是从0开始ISO8601每个日历星期从星期一开始,星期日为第7天。第一个日历星期有以下四种等效说法:1,本年度第一个星期四所在的星期;2,1月4日所在的星期;3,本年度第一个至少有4天在同一星期内的星......
  • kubernetes批量删除evicted状态pod
    #!/bin/bash#getnamespacenamespaces=`kubectlgetpod-A|grep-i"evicted"|awk'{print$1}'`fornamespacein${namespaces}dokubectlgetpod-n${namespace}|grep-i"evicted"|awk'{print$1}'|xargsk......
  • Elasticsearch_exporter + Prometheus + Grafana监控之搭建梳理
    一、安装elasticsearch_exporter并启动1.1官网下载elasticsearch_exporter的安装包,地址如下:如果是Linux系统,建议安装此版本:elasticsearch_exporter-1.3.0.linux-amd64.tar.gzhttps://github.com/prometheus-community/elasticsearch_exporter/releases1.2上传安装包到服务......
  • Cygwin/WSL调用Windows schtasks命令操作Windows计划任务系列函数(查询、启用、禁用、
    新增、删除、查询任务计划#wintask-query#根据任务名称关键词查询Windows计划任务#wintask-del#根据任务名称关键词删除Windows计划任务,也可以传递计划任务完整路径#wintask-run#根据任务名称关键词立即运行Windows计划任务#wintask-enable#根据任务名称......