创建索引
- 命令行:
curl -XPUT 192.168.6.103:9200/customer-%{+yyyy.MM.dd} #反馈格式错误
- 通过logstash
output{
if [type] == "system"{
elasticsearch{
hosts => ["192.168.14.136:9200"]
index => "system-%{+YYYY.MM.dd}" #这样是可以的
}
}
}
过滤索引日期
用命令行的好处是可以结合shell grep等过滤
curl -XGET http://192.168.14.132:9200/_cat/indices | awk -F" " '{print $3}' | awk -F"-" '{print $NF}' | egrep "[0-9]*\.[0-9]*\.[0-9]*" | sort | uniq | sed 's#.#-#g'
删除超过10天的索引
- 日期比较
- es索引过滤
前提是es index命令以日期为后缀…
#!/bin/bash
###################################
#删除早于十天的ES集群的索引
###################################
function delete_indices() {
comp_date=`date -d "10 day ago" +"%Y-%m-%d"`
date1="$1 00:00:00"
date2="$comp_date 00:00:00"
t1=`date -d "$date1" +%s`
t2=`date -d "$date2" +%s`
if [ $t1 -le $t2 ]; then
echo "$1时间早于$comp_date,进行索引删除"
#转换一下格式,将类似2017-10-01格式转化为2017.10.01
format_date=`echo $1| sed 's#-#\.#g'`
curl -XDELETE http://es-cluster-ip:9200/*$format_date
fi
}
curl -XGET http://192.168.14.132:9200/_cat/indices | awk -F" " '{print $3}' | awk -F"-" '{print $NF}' | egrep