ELK定时删除30天前日志


http://127.0.0.1:9200/_cat/indices?v

 
 
  1. #!/bin/bash
  2. #删除ELK30天前的日志
  3.  
  4. DATE=`date -d "30 days ago" +%Y.%m.%d`
  5.  
  6. curl -s -XGET http://127.0.0.1:9200/_cat/indices?v| grep $DATE | awk -F '[ ]+' '{print $3}' >/tmp/elk.log
  7.  
  8. for elk in `cat /tmp/elk.log`
  9.  
  10. do
  11.  
  12. curl -XDELETE "http://127.0.0.1:9200/$elk"
  13.  
  14. done

二:加入到定时任务

  1. # crontab -e
  2.  
  3. #每天凌晨1点定时清理elk索引
  4.  
  5. 00 01 * * * bash /server/scripts/elk.sh &>/dev/null

注意:保证crond服务是启动的

[root@server scripts]# service crond status

crond (pid 1999) is running...

 

 

 

 

 

 

 

 

 

 

 

 

++++++脚本2未验证++++++++++++++++++++++++++++++

脚本2

 

#/bin/bash
#es-index-clear
#只保留7天内的日志索引
LAST_DATA=`date -d "-7 days" "+%Y.%m.%d"`
#删除上个月份所有的索引
curl -u elastic:xxxx(密码) -XDELETE 'http://192.168.12.31:9200/*-'${LAST_DATA}'*'


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM