Elasticsearch简单入门--elasticsearch在启动用遇到的问题及其解决办法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhen_6137/article/details/86476728

1. elasticsearch为了安全期间,不允许使用root用户来启动,如果用root用户启动会报错,如下图

 解决办法:

需要新建用户,使用root用户新建es用户 及es用户组,并将/usr/local/elk权限赋予es用户,如下

# 创建用户组 es
[root@zzf elasticsearch-5.6.14]# groupadd es
 
# 创建用户es 并指定用户所属的群组为es
[root@zzf elasticsearch-5.6.14]# useradd -g es es
 
#给es用户赋权限
[root@zzf elasticsearch-5.6.14]# chown -R es:es /usr/local/elk/
 
# 设置es用户密码
[root@zzf elasticsearch-5.6.14]# passwd es
 
# 切换至es用户
[root@zzf elasticsearch-5.6.14]# su es
 
# 启动es
[root@zzf elasticsearch-5.6.14]# ./bin/elasticsearch

这个时候就可以启动了。

2.  Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12), 具体信息如下图,

由于Elasticsearch 5.6以上,在jvm.options中默认初始化和最大堆内存为2G,很明显这报错是没有有效的内存可供分配,所有直接修改jvm.options里的堆内存大小即可,

3. 运行curl http://localhost:9200 查看,如果出现拒绝之类的问题,一般是防火墙的问题,可以修改防火墙规则或者关闭防火墙

{
  "name" : "ZuFiarC",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "S6FyXlU1SpiB88r2dvpjEQ",
  "version" : {
    "number" : "5.6.14",
    "build_hash" : "f310fe9",
    "build_date" : "2018-12-05T21:20:16.416Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
  },
  "tagline" : "You Know, for Search"
}

4. 现在通过浏览器是无法访问http://IP:9200 访问的,因为elasticsearch默认是绑定的本地回环地址即127.0.0.1,要想外部访问,需要配置如下2个属性

在$ES_HOME/config目录下,修改elasticsearch.yml文件,修改如下

network.host: 192.168.101.118
http.port: 9200

5. 配置完network.host之后,重启elasticsearch,可能会报错,提示虚拟内存太小,最大文件描述进程太小,

这是因为默认情况下,Elasticsearch假定你工作在开发模式下,一些参数如果没有配置正确,仅仅是将警告信息写入到日志文件中,但是你照常是可以启动和运行Elasticsearch节点,当配置了network.host属性后,elasticsearch就假定你正向生产模式转移,bootstrap checks将检查各种Elasticsearch和系统设置,并将它们与对Elasticsearch操作安全的值进行比较,任何引导检查失败将导致Elasticsearch拒绝启动。

    1. max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

      切换至root用户,修改/etc/security/limits.conf,添加或修改如下属性                                                                                                  

    2. max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

     修改/etc/sysctl.config  添加vm.max_map_count=2621441

      

     保存后执行,sudo sysctl -p /etc/sysctl.conf 使之生效, 

     验证: sysctl -a |grep vm.max_map_count

    3. jvm报错, 开启锁定内存 

$ sudo vim /etc/security/limits.conf
* - memlock unlimited

参考:https://blog.csdn.net/jamie1025/article/details/54890062

猜你喜欢

转载自blog.csdn.net/zhen_6137/article/details/86476728