问题描述:
对于免费版本的elk,默认情况会保留全部数据,如果不及时清理,生产环境3个月的累计数据量为27G,平均每月增加9G,本文讲解如何定期清理elk日志;
解决办法
1)创建脚本
vi rm_es_log.sh chmod +x rm_es_log.sh
讯享网
默认只保留最近7天的日志,可以传入参数清理其他时间的日志;
我的elasticsearch有权限控制,如果无密码方式登录,需要去掉-u参数
讯享网#!/bin/sh # # File Name: rm_es_log.sh # Version: V1.0 # Author: hury # Created Time : 2019-09-09 12:26:14 # IP=服务器IP CURRENT_DIR=$PWD LOG_DIR=$CURRENT_DIR/del_es_index.log DAYS=7 if [ "$#" -eq "1" ];then DAYS=$1 fi echo "will delete es logs :" `date -d "$DAYS days ago" +%Y.%m.%d` curl -XGET "http://$IP:9200/_cat/shards" -u 用户名:密码 |grep $IP |awk '{print $1}' |grep `date -d "$DAYS days ago" +%Y.%m.%d` |uniq > $CURRENT_DIR/index_name.tmp for index_name in `cat $CURRENT_DIR/index_name.tmp` do curl -XDELETE http://$IP:9200/$index_name -u 用户名:密码 | grep true if [ $? -eq 0 ];then echo "${index_name} delete success." >> $LOG_DIR else echo "${index_name} delete error." >> $LOG_DIR fi Done
2)添加计划任务
linux下添加计划任务:
0 0 1 * * * /PATH_TO_SCRIPT/rm_es_logs.sh >/dev/null 2>&1
windows下计划任务:
上述任务如何在windows下执行,首先需要安装git软件,然后配置计划任务。
–END–

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/20139.html