问题:在登录系统时发现如下提示:
或发现 ThingJS-X服务器上的日志报错如下:
[FORBIDDEN/12/index read-only / allow delete (api)]
原因:由于ES数据库所在磁盘的使用率达到95%,ES节点的数据目录data存储空间不足,导致节点接收数据失败,此时ES为了保护数据,会自动将索引分片Index置为只读(read-only)状态。
解决步骤:
Linux:
方法一:对当前磁盘进行扩容
磁盘扩容后,设置索引为可读写状态,重启服务后可解决,索引设置详见方法二-第(5)步。
方法二:更改ES存储目录到更大的磁盘
(1)需要关闭ThingJS-X和elasticsearch,关闭当前ES的进程;
(2)需要将elasticsearch6.6.2的文件夹转移到新路径下,且挂载磁盘分区空间大;
(3)修改系统安装目录下,如/uino/bin/es.start.sh文件,将ES的安装路径改成新的绝对路径;(下左图原路径,右图新路径)
注意:当前用户应具有新安装路径的执行权限,可进入新路径目录下,执行如下命令:
chmod 777 -R elasticsearch6.2.2
(4)修改保存后,重启ES数据库;
(5)设置索引为可读写状态
此操作需使用服务器自带的curl工具执行以下命令:
curl -v -H "Content-Type:application/json" -X PUT http://IP地址:9200/_all/_settings?pretty -d '{"index.blocks.read_only_allow_delete":"false"}' -u root:123456
ES默认用户名:admin ES默认密码:Admin@123
(6)重启ThingJS-X,查看是否恢复正常。
Windows:
方法一:清理当前磁盘空间;
磁盘空间清理后,设置索引为可读写状态,重启服务后可解决,索引设置详见方法二-第(4)步。
方法二:将ES数据迁移至其它容量充足磁盘下;
(1)进入安装目录/ThingJSXData下,将esData目录转移到其它磁盘下,复制新路径;
(2)进入安装目录/ThingJSX/elasticsearch/config下,修改elasticsearch.yml文件,将新路径写在以下两处;
(3)保存文件后,待ES数据库启动;
(4)解除ES索引为可读写状态;
方法1:按图中填写以下内容,{"index.blocks.read_only_allow_delete": null}
,点击【验证JSON】后,再点击【提交请求】,当出现{“acknowleged":true}
字样,则解除ES索引状态成功;
注:上图插件为:ElasticSearch Head,需要安装连接数据库。
方法2:Windows安装Curl命令,执行win+R命令,输入cmd,在命令输入框中输入下面命令:
curl -v -H "Content-Type:application/json" -X PUT http://IP地址:9200/_all/_settings?pretty -d "{"""index.blocks.read_only_allow_delete""":"""false"""}" -u ES用户名:密码
当出现{“acknowleged":true}
字样,则解除ES索引状态成功;
(5)重新启动ThingJS-X,查看是否恢复正常;
可删除目录(X4)
优先选择以上方式,如无条件扩容,可进入 安装目录/thingjsx-server/temp目录下,删除twin目录。
可删除目录(X3)
优先选择以上方式,如无条件扩容,可进入 安装目录/thingjsx-data/rsm目录下,删除以下目录,按图示顺序。
上一篇 ThingJS-X零代码可新建几个地球场景?几个园区场景?
下一篇 零代码ThingJS-X怎么修改log文件的保留时间?