清理elk日志

问题描述:

对于免费版本的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–

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值