elastic-kibana删除空间后处理 2022-04-07 15:19:01 | viperasi elk的日志系统占用空间,新手可能直接删除文件,但这样并不能释放空间,并且会引起elk的各种错误,包括权限错误等, 如果已经处理需要进行如下修复 ## 物理删除文件后的权限处理 1. 清除被占用空间 `lsof -n|grep deleted` 2. 停止elasticsearch 3. 停止kibana 4. 注释`elasticsearch.yml`中的xpack配置 5. 启动elasticsearch 6. 删除`.security-7` ``` curl -XDELETE http://127.0.0.1:9200/.security-7 ``` 7. 取消`elasticsearch.yml`的xpack配置的注释 8. 修改elasticsearch密码,`elasticsearch-setup-passwords interactive` 9. 请求测试 ``` curl -u elastic:elastic http://127.0.0.1:9200/ ``` 10. 删除kibana管理器 ``` curl -u elastic:elastic -XDELETE http://127.0.0.1:9200/.kibana_task_manager_1 ``` 11. 请求删除kibana内容 ``` curl -u elastic:elastic -XDELETE http://127.0.0.1:9200/.kibana* ``` 12. 登录kibana重建索引 ## 正确删除空间方式 正确删除空间的方式是定时通过接口删除索引, 具体如下 1. 获取所有索引 ``` curl -u elastic:elastic -s -XGET http://127.0.0.1:9200/_cat/indices?v ``` 2. 按照名字删除30天以前的所有索引 ``` curl -u elastic:elastic -XDELETE http://127.0.0.1:9200/test-index-2021.01.01 ``` 3. 创建脚本 ``` #!/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 ``` 4. 创建cron表达式 ``` crontab -e 0 1 * * * del_30.sh ```