0
点赞
收藏
分享

微信扫一扫

ELK索引清理

软件共享软件 2023-03-27 阅读 32

主要针对Elasticsearch的操作

我这里的数据没必要留存很久,nginx日志用来写周报图表用,也没必要留存很久

主要操作在Elasticsearch服务器上 :

1.查看所有索引

查看所有索引(包含索引数据大小)

curl 'localhost:9200/_cat/indices?v'

2.删除单条索引

(nginx-log-201-28-2023.03.11为你的索引名称)

curl -XDELETE http://localhost:9200/nginx-log-201-28-2023.03.11
显示如下为成功
{"acknowledged":true}

3.删除多条索引

#删除连续多条索引(3月2号至3月5号的)
curl -XDELETE http://localhost:9200/nginx-log-201-28-2023.03.1{2..5} 

显示如下为成功
{"acknowledged":true}

(十)Elasticsearch 7.6.2 手动清理索引 脚本自动清理索引 ELK索引清理_数据

4.删除指定多条索引(第二种方法)

#指定删除多条索引  
curl -XDELETE http://localhost:9200/nginx-log-201-28-2023.03.16,nginx-log-201-28-2023.03.17

(十)Elasticsearch 7.6.2 手动清理索引 脚本自动清理索引 ELK索引清理_nginx_02

5.使用脚本自动删除索引

进入目录
cd /home/es
(目录不限制 选择自己的路径即可 记住就好)

vim deleteEsData.sh

脚本如下:删除9(可更改你的时间)天前的nginx-log-201-28-开头的索引

#!/bin/bash
#filename:deleteEsData.sh
today=`date +%Y.%m.%d`;
echo "今天是${today}"
# 获得要删除的日期
# 不指定参数时,默认删除3天前以tomcat-开头的数据(因为是凌晨删除,所以不含当天)
daynum=9
esday=`date -d '-'"${daynum}"' day' +%Y.%m.%d`;
echo "${daynum}天前是${esday}"
curl -XDELETE http://localhost:9200/nginx-log-201-28-${esday}
echo "${today}执行完成,nginx-log-201-28-${esday}文件已经被删除或不存在."

给deleteEsData.sh文件执行权限

chmod +x deleteEsData.sh

执行脚本(测试一下)

./deleteEsData.sh 
显示如下
今天是2023.03.27
9天前是2023.03.18
{"acknowledged":true}2023.03.27执行完成,nginx-log-201-28-2023.03.18文件已经被删除或不存在.

(十)Elasticsearch 7.6.2 手动清理索引 脚本自动清理索引 ELK索引清理_nginx_03

6.执行crontab命令,设置定期任务

1.查看crontab服务状态

service crond status

(十)Elasticsearch 7.6.2 手动清理索引 脚本自动清理索引 ELK索引清理_nginx_04

2、设置定时计划

首先,如下命令,进入编辑状态

(每天凌晨两点执行 /home/es/deleteEsData.sh 删除日志命令 并记录日志到/home/es/deleteEsDataRun.log)

编辑任务
crontab –e

添加如下:
0 2 * * * sh /home/es/deleteEsData.sh >> /home/es/deleteEsDataRun.log>&1

3、查看定时任务

crontab -l

完成







举报

相关推荐

0 条评论