作者:yx
文章目录
- 前言
- 一、端口占用
- 二、ES启动过慢
- 三、磁盘占用过高,导致ES变为只读模式
前言
在Linux环境启动iPortal后有时会出现搜索异常的情况,如下截图,这是因为Elasticsearch(以下简称“ES”)没启动成功导致的,支持过程中常遇到有三种情况导致ES启动失败的原因,一起来看看吧!
一、端口占用
从帮助文档可以得知,启动内置的搜索服务时相关端口有这些:
如果使用iPortal内置搜索服务的情况下,如果这些端口被占用就会导致ES启动失败。
解决方法:1、启动内置ES相关端口均可修改,您可以修改为不被占用的端口
2、将占用端口的进程杀掉再启动即可
二、ES启动过慢
执行启动iPortal脚本./startup.sh后,程序会去连接ES,如果ES启动过慢,在连接时ES还没启动好,就会导致ES不可用,一般这种情况常常出现在机器性能较差的环境。
如果您启动iPortal后,发现搜索功能异常,但是等一会后直接访问ES又发现是能正常访问的,且单独启动ES(【SuperMap_iPortal】/bin/startes.sh)又是能正常启动的,那么大概率就是ES启动过慢的原因导致的,您可以通过以下方法来解决:
1、修改配置文件【SuperMap_iPortal/webapps/iportal/WEB-INF】iportal.xml停用内置的ES
2、单独启动ES(必须是普通用户)
以普通用户执行【SuperMap_iPortal】/bin/startes.sh,带出现一下字样代表启动成功
3、启动iPortal
启动好ES后,再去启动iPortal即可,执行【SuperMap_iPortal】/bin/startup.sh
三、磁盘占用过高,导致ES变为只读模式
看下iPortal所在目录内存占用情况(df -h 目录),如果占用超过80%(建议不超过),先启动iPortal之后,用命令curl http://127.0.0.1:9210/portalsearch/_settings?pretty,看下es是不是变为只读了,以下为只读示例截图:
如果为只读了首先清理磁盘或者拷贝到空间更大的目录下,然后执行命令
curl -XPUT -H "Content-Type: application/json" -k http://127.0.0.1:9210/portalsearch/_settings -d '{"index.blocks.read_only_allow_delete": null}'
,执行后再查看状态是否还是只读,解除只读情况见下截图:
不为只读后再重启iPortal即可。