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