Logstash 索引数据按周归档

2021-01-08 15:14:41 浏览数 (2)

背景

日志分析平台对网络设备和服务器日志进行收集时发现索引数据按天归档单个索引的大小能控制在1G 以内,ELk集群产生的索引数量过多,于是决定将索引数据归档规则改为按周归档。

索引按天归档

代码语言:javascript复制
index => "networklogs-%{ YYYY.MM.dd}"

索引按周归档

代码语言:javascript复制
index => "ism-prod-networklogs-%{ YYYY.ww}"

数据格式

Today is 2020年12月23日,2020年的第52个周!

索引管理

使用 shell 进行索引周期管理(删除两周前的索引)

代码语言:javascript复制
#!/usr/bin/bash
t1=`date -d "-2 week"  "%V"`
date=`date  %Y`
curl -u elastic:R4a873O589Xt4HKcFPY2 -XGET http://192.168.99.185:9200/_cat/indices | awk -F" " '{print $3}' | awk -F"-" '{print $NF}' | egrep -v  "[0-9]*.[0-9]*.[0-9]*" | sort | uniq | egrep "[0-9]*.[0-9]" | awk -F"." '{print $2}' | while read LINE
do 
    if [ $LINE -le $t1 ]; then
        echo "$LINE时间早于$t1,进行索引删除"
        curl -u elastic:R4a873O589Xt4HKcFPY2 -XDELETE http://192.168.99.185:9200/*-$date.$LINE
    fi
done

删除前

运行bash 脚本

删除后

0 人点赞