elasticsearch索引自动清理

本文介绍了如何使用Elasticsearch的基本操作,包括查看所有索引文件及删除特定数据的方法,并提供了通过CronTab定时删除Elasticsearch中旧数据的脚本示例。此外,还介绍了Logstash的multiline插件安装及配置过程,以及解决Windows环境下启动Logstash时遇到的问题。

一 es 基本操作

  查看所有的索引文件:
  curl -XGET http://localhost:9200/_cat/indices?v

 

GET /_cat/indices?v


DELETE /filebeat-2018.07.21

 

 

二  挂crontab定时删es数据 

#!/bin/bash
# filename:deleteEsData.sh
# 每天2点定时删除es中指定日期的数据
# crontab: 0 2 * * * sh /Application/enterprise/deengine/deleteEsData.sh >> /Application/enterprise/deengine/run.log 2>&1
# 如今天是2015-09-09,删除3天前数据,就是删除2015-09-06的数据
# createdate: 20150909
# author: yuanlong.zhou
today=`date +%Y-%m-%d`;
echo "今天是${today}"
# 获得要删除的日期
# 不指定参数时,默认删除30天前以aaa-开头的数据(因为是凌晨删除,所以不含当天)
daynum=5
# 当参数个数大于1时,提示参数错误
if [ $# -gt 1 ] ;then
        echo "要么不传参数,要么只传1个参数!"
        exit 101;
fi
# 当参数个数为1时,获取指定的参数
if [ $# == 1 ] ;then
        daynum=$1
fi
esday=`date -d '-'"${daynum}"' day' +%Y-%m-%d`;
echo "${daynum}天前是${esday}"
curl -XDELETE http://localhost:9200/aaa-*-${esday}
echo "${today}执行完成"
# echo curl -XDELETE http://localhost:9200/aaa-*-${esday}

 

 三 logstash 安装multiline

 /bin/logstash-plugin.bat  install  logstash-filter-multiline

 配置如下:

filter {
multiline {
pattern => "^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}"
negate => true
what => "previous"
}

}

 四  windows启动logstash(6.2.3)报找不到或无法加载主类问题解决

错误信息:

解决办法:

editplus或其他工具打开logstash.bat,找到这行内容

给%CLASSPATH%加上双引号,内容如下:

%JAVA% %JAVA_OPTS% -cp "%CLASSPATH%" org.logstash.Logstash %*

保存重启即可,但有可能你再下次重启时出现如下错误:

该错误原因应该是当前logstash安装目录包含空格造成的,两种解决办法

第一种方法. 修改logstash的安装目录

第二种方法. 打开logstash.bat,找到如下内容

修改目录:"%LS_HOME%\logstash-core\lib\jars\*.jar" 为其他目录,别忘了把文件也拷贝过去,如:

for %%i in ("E:\logstash-core\lib\jars\*.jar") do (
call :concat "%%i"
)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值