elk的日志系统占用空间,新手可能直接删除文件,但这样并不能释放空间,并且会引起elk的各种错误,包括权限错误等, 如果已经处理需要进行如下修复

物理删除文件后的权限处理

  1. 清除被占用空间 lsof -n|grep deleted
  2. 停止elasticsearch
  3. 停止kibana
  4. 注释elasticsearch.yml中的xpack配置
  5. 启动elasticsearch
  6. 删除.security-7
Lang: bash
1curl -XDELETE http://127.0.0.1:9200/.security-7
  1. 取消elasticsearch.yml的xpack配置的注释
  2. 修改elasticsearch密码,elasticsearch-setup-passwords interactive
  3. 请求测试
Lang: bash
1curl -u elastic:elastic http://127.0.0.1:9200/
  1. 删除kibana管理器
Lang: bash
1curl -u elastic:elastic -XDELETE http://127.0.0.1:9200/.kibana_task_manager_1 
  1. 请求删除kibana内容
Lang: bash
1curl -u elastic:elastic -XDELETE http://127.0.0.1:9200/.kibana*
  1. 登录kibana重建索引

正确删除空间方式

正确删除空间的方式是定时通过接口删除索引, 具体如下

  1. 获取所有索引
Lang: bash
1curl -u elastic:elastic -s  -XGET http://127.0.0.1:9200/_cat/indices?v
  1. 按照名字删除30天以前的所有索引
Lang: bash
1curl -u elastic:elastic -XDELETE http://127.0.0.1:9200/test-index-2021.01.01
  1. 创建脚本
Lang: bash
 1#!/bin/bash
 2
 3#删除ELK30天前的日志
 4
 5DATE=`date -d "30 days ago" +%Y.%m.%d`
 6
 7curl -u elastic:elastic -s  -XGET http://127.0.0.1:9200/_cat/indices?v| grep ${DATE} | awk -F '[ ]+' '{print $3}' >/tmp/elk.log
 8
 9for elk in `cat /tmp/elk.log`
10
11do
12
13        curl -u elastic:ealstic  -XDELETE  "http://127.0.0.1:9200/$elk"
14
15done
  1. 创建cron表达式
Lang: bash
1crontab -e
20 1 * * * del_30.sh