赞
踩
elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
ES不能能使用root用户直接运行,必须使用普通用户运行。
解决办法:添加用户,ES安装目录的所有者。
adduser 用户名
chown -R 用户名:用户组名 目录路径
Exception in thread "main" java.nio.file.AccessDeniedException: /opt/app/elasticsearch-6.6.0/config/jvm.options
使用的用户对安装目录的文件没有权限造成的,(可能是当前登录的用户没有权限,也可能是在更改安装目录的所有者的时候没有递归安装)
解决办法:
切换用户在启动es,如果报同样错误,使用chown -R 用户名:用户组名 目录路径
更改文件所有者。
[WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [es1] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.IllegalStateException: Unable to access ‘path.data’ (/var/es/dat)
因为不是root用户,在配置文件的时候。数据目录和日志目录等不能应该放在用户家目录下,防止因为该用户不能在所设置的目录下创建文件而引起报错。
[unknown] unable to install syscall filter:
java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed
Centos6不支持SecComp,而高版本ES在5.X之后默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动
解决办法(两种):
1.可以把Centos内核升级到Centos7。
2.修改配置文件,关闭ES启动时候的安全检测。具体elasticsearch.yml中配置
bootstrap.memory_lock: false
#这个配置项在memory中可以找到,默认为True,改为false即可。
bootstrap.system_call_filter为false:
#这个配置项配置文件中没有需要添加。```
【1】: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
【2】: max number of threads [1024] for user [es] is too low, increase to at least [4096]
【3】: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
【1】系统设置的文件描述符太少了
【2】为用户设置的可以开启的线程太少了,这两个可以通过配置文件vi /etc/security/limits.conf 更改
切换到root用户,编辑limits.conf 添加类似如下内容
vi /etc/security/limits.conf
添加如下内容:(这里只为启动ES的es用户更改了安全限制)
es soft nofile 65536 #solf是软限制的意思,hard是硬限制;软限制可以在程序的进程中自行改变(突破限制),而硬限制则不行(除非程序进程有root权限)
es hard nofile 65536 #nofile 文件描述符
es soft nproc 4096 #nproc 进程的限制
es hard nproc 4096
这里两个的设置没有让其立即生效的命令必须要通过重启使其生效。另外网上很多直接把第一项换为“ * ”,*是指所有用户,如果在生产中强烈不建议这样做,可能会对其他用户造成影响。
2019.3.3更正:
这是三项的配置不必重启使其生效,我在配置另外一台虚拟机的es的时候,直接把原来的虚拟机的limits.conf文件使用scp命令拷贝过来后,没有重启电脑便可以直接启动es
【3】虚拟内存区域最大映射值太小了 通过vi /etc/sysctl.conf 可以更改。
切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p
(可以使其永久)
本机可以访问.但是局域网外的其他机器无法访问
修改elasticsearch.yml配置文件,network.host项,绑定本机的IP
PS:在配置文件中的localhost,回环IP,路径是tmp的一定要注意更改。
SettingsException[Failed to load settings from [elasticsearch.yml]]; nested: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but found [VALUE_STRING]];
配置文件格式错误:
配置文件的key:value之间的:后面必须有一个空格。
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 986513408 bytes for committing reserved memory.
内存不足导致Java无法运行,(在elasticsearch和logstash中均可能出现)
解决办法:
这个时候查看一下free -m 查看可用内存,然后查看config下的jvm.options文件,-Xms1g
和-Xmx1g
配置的内存大小,更改此而配置项或者添加内存均可。
第一次启动使用root用户启动,在config目录下创建了文件,需要删除
Error: Port 5601 is already in use. Another instance of Kibana may be running!
这是因为5601的端口被占用了,一般有因为以下几种可能而导致:
netstat -tunlp|grep 5601 #查看端口占用情况,找到端口对应的进程id
ps aux | grep PID #查看对应的进程
#然后根据进程情况确定更改哪一个程序的端口号,使其不冲突即可
[warning][license][xpack] License information from the X-Pack plugin could not be obtained from Elasticsearch for the [data] cluster. [invalid_index_name_exception] Invalid index name [_xpack], must not start with '_'., with { index_uuid="_na_" & index="_xpack" } :: {"path":"/_xpack","statusCode":400,"response":"{\"error\":{\"root_cause\":[{\"type\":\"invalid_index_name_exception\",\"reason\":\"Invalid index name [_xpack], must not start with '_'.\",\"index_uuid\":\"_na_\",\"index\":\"_xpack\"}],\"type\":\"invalid_index_name_exception\",\"reason\":\"Invalid index name [_xpack], must not start with '_'.\",\"index_uuid\":\"_na_\",\"index\":\"_xpack\"},\"status\":400}"}
Kibana连接elasticsearh的时候,浏览器中报错为
Cannot connect to the Elasticsearch cluster currently configured for Kibana.
`To use the full set of free features in this distribution of Kibana, please update Elasticsearch to the default distribution.```
看报错信息显示因该是版本的问题,但是理论上elatic官网上的一套应该是没有问题的,我试着卸载X-pack,发现es不能卸载,然后尝试了很多办法无果后,提交给了官网,收到回复如下:
您好,
非常感谢您的回复。
初步了解您的情况之后,我找到了一个跟您问题相似的帖子,麻烦您参考下
https://discuss.elastic.co/t/license-information-from-the-x-pack-plugin-could-not-be-obtained-from-elasticsearch-for-the-data-cluster/148030/9
不知道您是否方便尝试用下oss only的kibana?
https://www.elastic.co/downloads/kibana-oss
麻烦您看下是否能帮助解决您的问题~ 如果还有问题欢迎随时与我联系。您也可以加我的微信:(这个就不显示了)
希望Elastic能带给您一个无与伦比的使用体验!
Best regards,
重点在上周新版本更新中,我直接用了最新的6.6.1,然后就没有问题了,哈哈
12.elasticsearch 6.6.1的新报错
Java HotSpot(TM) 64-Bit Server VM warning: Cannot open file logs/gc.log due to Permission denied
Exception in thread "main" org.elasticsearch.bootstrap.BootstrapException: java.nio.file.AccessDeniedException: /opt/app/elasticsearch-6.6.1/config/elasticsearch.keystore
Likely root cause: java.nio.file.AccessDeniedException: /opt/app/elasticsearch-6.6.1/config/elasticsearch.keystore
第一次启动es使用了root用户,在config目录下创建了文件elasticsearch.keystore,只需要进入之后把文件删除,然后用es的用户启动就可以了。
2019年6月27日更新:
13.浏览器连接不上Kibana,资源无限重定向(特别早遇到的报错,今天想起来了)
在使用6.6.1的Kibana的时候,集群跑一个周末,不操作,等到周一的时候,会出现浏览器连接补了Kibana的情况,但是Kibana的进程什么的都正常,报错信息好像是因为资源无限重定向这样的信息。
这个问题咨询官网好像也是版本问题,具体情况我忘记了,但是现在记得还有一个这样的问题,大家如果遇到了可以
今天搭建集群的时候遇到新的报错,是因为我在一个节点启动了es,生成了数据文件,然后没有删除数据文件,就把目录用scp拷贝到其他的节点上而造成的,具体的报错信息如下:
failed to send join request to master [{node10}{nIHo2TdDRw-1-nbhr-Lmzw}{n_vGmHO9R2umfw99C5nOSg}{192.168.56.10}{192.168.56.10:9300}{ml.machine_memory=1968349184, ml.max_open_jobs=20, xpack.installed=true, ml.enabled=true}], reason [RemoteTransportException[[node10][192.168.56.10:9300][internal:discovery/zen/join]]; nested: IllegalArgumentException[can't add node {node11}{nIHo2TdDRw-1-nbhr-Lmzw}{XcZDBLmxRCeKsHm4jp2M8w}{192.168.56.11}{192.168.56.11:9300}{ml.machine_memory=1968349184, ml.max_open_jobs=20, xpack.installed=true, ml.enabled=true}, found existing node {node10}{nIHo2TdDRw-1-nbhr-Lmzw}{n_vGmHO9R2umfw99C5nOSg}{192.168.56.10}{192.168.56.10:9300}{ml.machine_memory=1968349184, xpack.installed=true, ml.max_open_jobs=20, ml.enabled=true}
with the same id but is a different node instance];
删除安装目录下的data文件夹,然后重新启动即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。