脚本技术要点
curator工具使用
脚本内容如下:
========================================================================
#!/bin/bashif [ -z "$(which curator 2>/dev/null)" ];then
echo no tool curator ...
exit 1
fi
esServer=127.0.0.1:9200
###############################################################################
# collect300 data
###############################################################################
indiceCount=0
oldestIndice=""
oldestDate=999999999
for i in `curl $esServer/_cat/indices?v |grep collect300 |grep open |awk '{print $3}'`
do
indiceCount=$(expr $indiceCount + 1)
date=$(echo $i |awk -F'-' '{print $4}')
if [ $date -lt $oldestDate ];then
oldestDate=$date
oldestIndice=$i
fi
done
if [ $indiceCount -gt 2 ];then
echo close oldest indice $oldestIndice ...
curator_cli --host localhost --port 9200 allocation --key box_type --value warm --filter_list "{\"filtertype\":\"pattern\",\"kind\":\"regex\",\"value\":\"$oldestIndice\"}"
while true
do
if curl $esServer/_cat/shards?v |grep $oldestIndice |grep -q -w RELOCATING;then
sleep 300
else
break
fi
done
curl -XPOST $esServer/$oldestIndice/_close
fi
###############################################################################
# collect3600 data
###############################################################################
indiceCount=0
oldestIndice=""
oldestDate=999999999
for i in `curl $esServer/_cat/indices?v |grep collect3600 |grep open |awk '{print $3}'`
do
indiceCount=$(expr $indiceCount + 1)
date=$(echo $i |awk -F'-' '{print $4}')
if [ $date -lt $oldestDate ];then
oldestDate=$date
oldestIndice=$i
fi
done
if [ $indiceCount -gt 1 ];then
echo allocation to warm and then close oldest indice $oldestIndice ...
curator_cli --host localhost --port 9200 allocation --key box_type --value warm --filter_list "{\"filtertype\":\"pattern\",\"kind\":\"regex\",\"value\":\"$oldestIndice\"}"
while true
do
if curl $esServer/_cat/shards?v |grep $oldestIndice |grep -q -w RELOCATING;then
sleep 300
else
break
fi
done
curl -XPOST $esServer/$oldestIndice/_close
fi