方案一:

如果客户不考虑保留es数据

注意只在主节点上操作

docker stack rm log #停止日志服务
cd /youdata/db/
rm -rf es filebeat #删除es以及filebeat目录
mkdir es filebeat #重新建立目录
chmod 777 es  #赋权
chmod 777 filebeat
cd /youdata/installer
dsd docker-stack.log.yaml log #重拉日志服务
等待服务启动恢复
这是对日志数据没有保留要求,可以全部清理掉日志

方案二:

客户对日志数据有保留要求,只能手动进入es容器手动删除较大索引

dx log_es
bash
curl -XGET "http://localhost:9200/_cat/indices?v&s=store.size:desc"

{267cc292-d29f-492b-9bb8-446be82bfc82}.png

手动删除较大索引
curl -XDELETE "http://localhost:9200/<index名称>"
删除成功后返回
{"acknowledged": true}
这个只能手动一条一条删除,每次执行删除一条索引

0acdc60aba3a0a1573b8a07134e9001c.png

重新设置es保留策略
curl -X PUT "http://localhost:9200/_ilm/policy/youdatalog_policy" -H 'Content-Type: application/json' -d'
{
    "policy": {
      "phases": {
        "hot": {
          "actions": {
            "rollover": {
              "max_age": "24h"
            }
          }
        },
        "warm": {
          "min_age": "2d",
          "actions": {
            "forcemerge": {
              "max_num_segments": 1
            }
          }
        },
        "cold": {
          "min_age": "3d",
          "actions": {
            "freeze": {}
          }
        },
        "delete": {
          "min_age": "5d",
          "actions": {
            "delete": {}
          }
        }
      }
    }
  }'
  根据所需设置各阶段的保留时间

  curl 127.0.0.1:9200/_ilm/policy/youdatalog_policy
  查看是否修改生效