admin管理员组

文章数量:1531445

问题描述:

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

本文标签: 日志ELK