当前位置:   article > 正文

elasticsearch部署过程中各种报错解析_cannot connect to the elasticsearch cluster

cannot connect to the elasticsearch cluster
  1. elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
    
    • 1

    ES不能能使用root用户直接运行,必须使用普通用户运行。
    解决办法:添加用户,ES安装目录的所有者。

    adduser 用户名
    chown -R 用户名:用户组名 目录路径
    
    • 1
    • 2
  2. Exception in thread "main" java.nio.file.AccessDeniedException: /opt/app/elasticsearch-6.6.0/config/jvm.options
    
    • 1

    使用的用户对安装目录的文件没有权限造成的,(可能是当前登录的用户没有权限,也可能是在更改安装目录的所有者的时候没有递归安装)
    解决办法:
    切换用户在启动es,如果报同样错误,使用chown -R 用户名:用户组名 目录路径更改文件所有者。

  3. [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用户,在配置文件的时候。数据目录和日志目录等不能应该放在用户家目录下,防止因为该用户不能在所设置的目录下创建文件而引起报错。

  4. [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
    
    • 1
    • 2

    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
    • 2
    • 3
    • 4
  5. 【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
    • 3

    【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	
    
    • 1
    • 2
    • 3
    • 4

    这里两个的设置没有让其立即生效的命令必须要通过重启使其生效。另外网上很多直接把第一项换为“ * ”,*是指所有用户,如果在生产中强烈不建议这样做,可能会对其他用户造成影响。

    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(可以使其永久)

  6. 本机可以访问.但是局域网外的其他机器无法访问
    修改elasticsearch.yml配置文件,network.host项,绑定本机的IP
    PS:在配置文件中的localhost,回环IP,路径是tmp的一定要注意更改。

  7. SettingsException[Failed to load settings from [elasticsearch.yml]]; nested: 	ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but found [VALUE_STRING]];
    
    • 1

    配置文件格式错误:
    配置文件的key:value之间的:后面必须有一个空格。

  8. 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.
    
    • 1
    • 2
    • 3
    • 4

    内存不足导致Java无法运行,(在elasticsearch和logstash中均可能出现)
    解决办法:
    这个时候查看一下free -m 查看可用内存,然后查看config下的jvm.options文件,-Xms1g-Xmx1g配置的内存大小,更改此而配置项或者添加内存均可。

  9. 第一次启动使用root用户启动,在config目录下创建了文件,需要删除

  10. Error: Port 5601 is already in use. Another instance of Kibana may be running!
    
    • 1

    这是因为5601的端口被占用了,一般有因为以下几种可能而导致:

    netstat -tunlp|grep 5601   #查看端口占用情况,找到端口对应的进程id
    ps aux | grep PID  #查看对应的进程 
    #然后根据进程情况确定更改哪一个程序的端口号,使其不冲突即可
    
    • 1
    • 2
    • 3
  11. [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}"}
    
    • 1

    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
  • 1
  • 2
  • 3
  • 4

第一次启动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]; 
  • 1
  • 2

删除安装目录下的data文件夹,然后重新启动即可。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/325683
推荐阅读
相关标签
  

闽ICP备14008679号