Elasticsearch索引定时清理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch索引定时清理相关的知识,希望对你有一定的参考价值。

问题

近期,kibana页面上出现Elasticsearch plugin is red错误信息,重启elasticsearch后又频繁出现该问题,观察elasticsearch发现各节点之间出现连接超时的现象.

解决方法

怀疑是索引条目太多,导致Elasticsearch性能下降造成的,通过查询api发现大量索引是yellow状态:
curl -XGET ‘http://127.0.0.1:9200/_cat/indices/?v

yellow open   user_audit-2018-08-08 Lx5YlsSxSDW7Z6dKwHLy4Q   5   1        159            0    265.5kb        265.5kb
yellow open   user_audit-2018-04-18 Rz7opEo7Tn-mfBsc0SyrDg   5   1        619            0    614.6kb        614.6kb
yellow open   net_switch-2017-11-18 7RZBwJGES1Ck2SI6Zsc_mA   5   1      16504            0      3.7mb          3.7mb
yellow open   user_audit-2018-06-07 _mapb6GpRkKP4bNqxI0tkg   5   1        130            0    212.4kb        212.4kb
yellow open   net_switch-2018-02-02 HL-saNdaSiuvDBfLyGNgrg   5   1        190            0    246.1kb        246.1kb
yellow open   user_audit-2018-01-05 BXO_atQmTl-ud_KCiHnSvw   5   1        288            0    309.1kb        309.1kb
yellow open   user_audit-2018-04-11 lDn7O9ZcRoKO4NwPArPcWg   5   1        166            0      243kb          243kb
yellow open   net_switch-2018-03-29 F7UeMBvZTou1n0OeZJjbyg   5   1        191            0    334.2kb        334.2kb
yellow open   domain_log-2018-07-07 b2hg9sIFSE-Pm6DHom7Q6Q   5   1   11742465            0      5.3gb          5.3gb
yellow open   user_audit-2018-05-12 g1q6jrWtQYaagoUbSigRsw   5   1         23            0    185.4kb        185.4kb
yellow open   net_switch-2018-05-16 yQL5rwlvQD2whqASws1Yaw   5   1        182            0    311.2kb        311.2kb
yellow open   domain_log-2018-08-27 7kM3sl0nTNOPN0XbwmYULw   5   1   13788549            0      6.7gb          6.7gb
yellow open   domain_log-2018-07-06 hb5ZL-Z1Rk6DyhYXTBGnrw   5   1   10434848            0      4.8gb          4.8gb
yellow open   domain_log-2018-05-12 0Q8uLeSVTtW7GyGJNdd5FA   5   1   10753882            0      5.6gb          5.6gb
yellow open   user_audit-2018-05-22 ryLHjAhNS2-5kjqRjccH_A   5   1        653            0      680kb          680kb
yellow open   user_audit-2018-07-23 DSGn1gXTQaub35FS34z28g   5   1         36            0    235.1kb        235.1kb
yellow open   domain_log-2018-03-02 H54jaFt2Rgq-ktC81tROJw   5   1   17530752            0        9gb            9gb

一、api删除

curl -XDELETE ‘http://127.0.0.1:9200/domain_log-2018-*‘
清理掉了所有 2018年domain的索引文件

二、脚本加api删除(推荐)

cat ES-index-clear.sh

#/bin/bash
#指定日期(7天前)
DATA=`date -d "1 week ago" +%Y-%m-%d`

#当前日期
time=`date`

#删除7天前的日志
curl -XGET "http://127.0.0.1:9200/_cat/indices/?v"|grep $DATA
if [ $? == 0 ];then
  curl -XDELETE "http://127.0.0.1:9200/*-${DATA}"
  echo "于 $time 清理 $DATA 索引!"
fi

三、添加到任务计划

#每天定时清理索引
0 1 * * * /bin/sh /root/shscript/ES-index-clear.sh >> /root/shscript/log/es-index-clear.log

以上是关于Elasticsearch索引定时清理的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch笔记九之优化

python - 定时清理ES 索引

elasticsearch定时删除索引第二版

elasticsearch(es)定时删除7天前索引

elasticsearch索引量大怎么定时删除

Elasticsearch索引增量统计及定时邮件实现