前言
本文提供三种删除es数据的方法:

  • 命令行手动删除
  • 定时任务用脚本删除
  • kibana上删除和index策略

1. 命令行手动删除

  • 从elasticsearch上查看所有index
[root@DoM01 ~]#  curl -s  -XGET http://k8scto.xxx.com.cn:30028/_cat/indices?v
health status index                                          uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   crust-framework-datav-2021.03.22               9vXt8u4BRNaQyYMmaPM1yw   1   1       1348            0    250.3kb        250.3kb
yellow open   crust-framework-auth-2021.03.16                qxO5Aa_0RZyB1p_QXTqbNg   1   1      67589            0     11.3mb         11.3mb
yellow open   crust-framework-auth-2021.03.15                mE1ePd1qReK8si6mZEUWMQ   1   1      64555            0     10.6mb         10.6mb
yellow open   crust-framework-datav-2021.03.23               KmgSIf6VTKGr5OpntRj1cA   1   1       2696            0    464.3kb        464.3kb
yellow open   crust-framework-auth-2021.03.12                KKWT1R4DTZWTdck1mIUYNQ   1   1     249310            0     41.2mb         41.2mb
.......
  • 手动删除index
[root@DoM01 ~]# curl  -XDELETE  "http://k8scto.boe.com.cn:30028/crust-framework-gateway-2021.03.15"
{"acknowledged":true}

2. 定时任务删除

说明:
实际就是把刚才的手动删除写成了脚本,每日删除index是15天之前那个一天的index。
所以如果你写脚本的时候有15天之前的index,那需要手动删除一下。

  • 删除脚本
    创建一个删除日志的脚本 /usr/local/script/elk/delete_index.sh如下:
#!/bin/bash
DATE=`date -d "15 days ago" +%Y.%m.%d`
curl -s  -XGET http://k8scto.xxx.com.cn:30028/_cat/indices?v| grep $DATE | awk '{print $3}' >/tmp/elk.log
for elk in `cat /tmp/elk.log`
do
        curl  -XDELETE  "http://k8scto.xxx.com.cn:30028/$elk"
done
  • 定时任务
[root@DoM01 elk]# crontab -l
00      01      *      *        *       bash /usr/local/script/elk/delete_index.sh  &>/dev/null

3. kibana上索引的操作

3.1 删除index

image.png

3.2 index的策略

  • 修改index的策略
    image.png
  • 策略设置

如下图:
开启了Hot和Delete两个策略,将Delete策略设置为7天
Warm和Cold两个策略没有开启
这只是给index打了一个标签,并不会真的删除
image.png

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐