《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署—— 3.4.1.1.安装Elasticsearch(本地及docker)(8) https://developer.aliyun.com/article/1231505
常见问题及解决方案
本节将针对 ES 节点安装部署过程中经常遇到的一些问题进行分析,并提供一些简单的解决方案以供参考。
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144],最大虚拟内存限制。
ES 在运行时会强依赖虚拟内存,在达不到 ES 要求限制时,ES 节点启动时会报错并启动失败。
修复方式:
1、在配置文件 /etc/sysctl.conf 中添加一行 vm.max_map_count=655360
2、运行命令 sudo sysctl -p 使配置生效
max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536],最大可持有文件句柄限制。
ES 在运行时会开启大量的线程(创建大量线程文件),在达不到ES 要求限制时,ES 启动时会报错并启动失败。
修复方式:
1、修改配置文件 /etc/security/limits.conf
2、将 * soft nofile 65535 和 * hard nofile 65535 调大
3、如:* soft nofile 655350 和 * hard nofile 655350
4、如果使用rpm包安装,则需要单独对 elasticsearch 账号进行授权,elasticsearch soft
nofile 655350 和 elasticsearch hard nofile 655350
memory locking requested for elasticsearch process but memory is not locked,内存锁定失败,系统会默认关闭内存锁定,但是为了 ES 的使用性能,我们一般建议开启内存锁定(bootstrap.memory_lock: true)
修复方式:
1、修改配置文件 /etc/security/limits.conf
2、将 * soft memlock 65535 和 * hard memlock 65535 调大
3、如:* soft memlock unlimited 和 * hard memlock unlimited
4、如果使用rpm包安装,则需要单独对 elasticsearch 账号进行授权,elasticsearch soft
memlock unlimited 和 elasticsearch hard memlock unlimited
java.lang.RuntimeException: can not run elasticsearch as root,使用 root 账号启动在默认情况下,ES 是禁止使用 root 用户启动的。
修复方式:
1、切换成其他用户进行启动
2、su elasticsearch
Error: Unable to find a match: docker-compose,找不到 docker-compose 对应安装包
可能 yum 仓库中没有最新安装包信息或者精简版系统中没有对应的软件信息。
修复方式:
把源文件中应用市场的地址替换成中科大:
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \ -e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.ustc.edu.cn/centos|g' \ -i.bak \ /etc/yum.repos.d/CentOS-Base.repo
1、先安装 epel-release (拓展应用市场)
2、再进行后续安装
修复方式:
1、开启外网访问
2、(或者)在其他能够访问外网的节点中下载对应镜像 docker pull elasticsearch:7.10.1
3、把镜像导出为文件 docker save -o elasticsearch-7.10.1-image.tar docker.io/elasticsearch:7.10.1
4、把导出的文件拷贝到目标机器 scp elasticsearch-7.10.1-image.tar root@192.168.10.221:/tmp
5、登陆目标机器 ssh root@192.168.10.221
6、导入目标镜像 docker load < elasticsearch-7.10.1-image.tar
Error response from daemon: manifest for elasticsearch:7.9.11 not found: manifest unknown: manifest unknown,找不到目标镜像,可能在 docker 仓库中找不到指定版本的镜像,登陆镜像仓库搜索合适版本(http://dockerhub.com/)(或者)通过命令搜索合适的镜像
docker search elasticsearch
ERROR: for es-node-01 Cannot start service es-node-01: driver failed programming external connectivity on endpoint es-node-01 (b483765a492a31517b047aae6e0b74c8c507851f7fd25850c87b504037262087): Bind for 0.0.0.0:9200 failed: port is already allocated
9200 端口已被占用,可能当前节点已经有其他服务绑定了9200 端口,或者在 docker-compose 文件中设置了多个节点将9200端口映射到宿主机上。
《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署—— 3.4.1.1.安装Elasticsearch(本地及docker)(10) https://developer.aliyun.com/article/1231502