ES定期删除索引的脚本
前几篇文章简单搭建了ELK+nginx的架构,虽然是单台服务器部署的ES,而且只监控了nginx每天产生的log,但数据量依旧非常庞大。
对于我来说,这套架构就是更加直观显示出当天的IP和访问的路径多少,来判断是不是恶意访问的ip或者是爬取数据的脚本,所以我不需要保留数据到第二天。
但每天上来删索引也是一个工作,我写了一个简单的脚本来帮助我的工作。
vim Es-delete.sh
#!/bin/bash
b=$(date +%b) #month
d=$(date +%d) #day
Y=$(date +%Y) #year
var=$(date +%Y.%m.%d --date="-1 day") #前一天
curl -XDELETE localhost:9200/logstash-nginx-$var*
chmod 744 Es-delete.sh
运行
./Es-delete.sh
运行后
{"acknowledged":true}
查看是否删除
root@elasticsearch-node1:~# curl -XGET 'http://localhost:9200/_cat/shards' |grep logstash-nginx-2020.12.21
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 3318 100 3318 0 0 92166 0 --:--:-- --:--:-- --:--:-- 92166
或者是在kibana上查看索引是否删除
计划任务
vim /etc/crontab
分钟 小时 年 月 星期 执行用户 脚本位置
0 0 * * * root /root/Es-delete.sh
参考
https://www.cnblogs.com/asxe/p/9317811.html