elastic-kibana删除空间后处理
elk的日志系统占用空间,新手可能直接删除文件,但这样并不能释放空间,并且会引起elk的各种错误,包括权限错误等, 如果已经处理需要进行如下修复
物理删除文件后的权限处理
- 清除被占用空间
lsof -n|grep deleted
- 停止elasticsearch
- 停止kibana
- 注释
elasticsearch.yml
中的xpack配置 - 启动elasticsearch
- 删除
.security-7
curl -XDELETE http://127.0.0.1:9200/.security-7
- 取消
elasticsearch.yml
的xpack配置的注释 - 修改elasticsearch密码,
elasticsearch-setup-passwords interactive
- 请求测试
curl -u elastic:elastic http://127.0.0.1:9200/
- 删除kibana管理器
curl -u elastic:elastic -XDELETE http://127.0.0.1:9200/.kibana_task_manager_1
- 请求删除kibana内容
curl -u elastic:elastic -XDELETE http://127.0.0.1:9200/.kibana*
- 登录kibana重建索引
正确删除空间方式
正确删除空间的方式是定时通过接口删除索引, 具体如下
- 获取所有索引
curl -u elastic:elastic -s -XGET http://127.0.0.1:9200/_cat/indices?v
- 按照名字删除30天以前的所有索引
curl -u elastic:elastic -XDELETE http://127.0.0.1:9200/test-index-2021.01.01
- 创建脚本
#!/bin/bash
#删除ELK30天前的日志
DATE=`date -d "30 days ago" +%Y.%m.%d`
curl -u elastic:elastic -s -XGET http://127.0.0.1:9200/_cat/indices?v| grep ${DATE} | awk -F '[ ]+' '{print $3}' >/tmp/elk.log
for elk in `cat /tmp/elk.log`
do
curl -u elastic:ealstic -XDELETE "http://127.0.0.1:9200/$elk"
done
- 创建cron表达式
crontab -e
0 1 * * * del_30.sh