错误日志:
java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:103) ~[elasticsearch-6.5.4.jar:6.5.4]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:170) ~[elasticsearch-6.5.4.jar:6.5.4]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) [elasticsearch-6.5.4.jar:6.5.4]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) [elasticsearch-6.5.4.jar:6.5.4]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:127) [elasticsearch-6.5.4.jar:6.5.4]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) [elasticsearch-6.5.4.jar:6.5.4]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) [elasticsearch-cli-6.5.4.jar:6.5.4]
at org.elasticsearch.cli.Command.main(Command.java:90) [elasticsearch-cli-6.5.4.jar:6.5.4]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) [elasticsearch-6.5.4.jar:6.5.4]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86) [elasticsearch-6.5.4.jar:6.5.4]
原因: elaticsearch默认不能用root用户启动,所以会报java.lang.RuntimeException: can not run elasticsearch as root异常。
解决方案:
- 修改elasticsearch 配置,使其可以允许root 用户启动
#在执行elasticSearch时加上参数-Des.insecure.allow.root=true,完整命令如下
./elasticsearch -Des.insecure.allow.root=true
#或者修改elasicsearch执行脚本,在变量ES_JAVA_OPTS使用前添加以下命令
ES_JAVA_OPTS="-Des.insecure.allow.root=true"
- 建立新用户,赋予指定权限
useradd esuser
passwd esuser
chown -R esuser:esuser es安装目录/
chmod 770 es安装目录/
错误日志:
[2019-01-25T14:06:57,321][ERROR][o.e.b.Bootstrap ] [8Ewv7G9] node validation exception
[2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方案:
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
此条日志显示进程最大同时可打开文件数太小,需设置至少65536。
## 修改/etc/security/limits.conf 文件
vi /etc/security/limits.conf
## 增加如下内容
* soft nofile 65536
* hard nofile 65536
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
## 修改sysctl.conf 文件
vi /etc/sysctl.conf
## 增加如下内容
m.max_map_count=262144
## 使更改生效
sysctl -p