导航
导航

记一次es问题解决

线上es日志报错

disk usage exceeded flood-stage watermark, index has read-only-allow-delete

es索引只读问题

登录到服务器 df命令一看磁盘满了,并开始尝试清理资源,完毕后再次测试发现仍然报错,百思不得其解 查阅资料后发现

当Elasticsearch认为磁盘空间不足时,它会进入只读模式,一旦有足够空间后es是不会自动退出只读模式。需要执行操作解锁


put _settings
{
“index”: {
“blocks”: {
“read_only_allow_delete”: “false
}
}
}


当前问题解决了

思考是否可以做个定时删除es占用数据来避免事件再次发生

刚好我们业务可以接受只保存最近一段时间数据

编写一个脚本,增加可执行权限 chmod +x es_del.sh


#!/bin/bash
#定时删除elasticsearch索引
#author

date=`date -d "-7 days" "+%Y.%m.%d"`
/usr/bin/curl -v --user elastic:password -XDELETE "http://xxx.xxx.xx.xxx:9200/*-$date"


设置定时任务


00 01 * * * /workspace/script/es_del.sh