ElasticSearch6.x部署——无法访问外网问题解决

文章目录

    • 无法访问外网
    • 问题解决
    • 可能引发的其它问题
      • 原因分析
      • 问题解决
        • 临时修改
        • 永久修改

无法访问外网

Linux环境下,当我们部署好ElasticSearch之后启动,使用curl 'http://localhost:9200/?pretty'可以得到响应,但是访问http://localhost:9200/报错。

问题解决

这里需要修改配置文件elasticsearch-6.6.0/config/elasticsearch.yml相关参数

# ---------------------------------- Network ----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
# 这里放开注释,修改成Linux主机IP地址或者0.0.0.0
network.host: 192.168.124.11
#

重新启动ElasticSearch,如果启动成功,使用http://IP:9200/进行访问!

可能引发的其它问题

当我们修改elasticsearch.yml文件的参数之后重新启动ElasticSearch,发现直接启动失败,报错信息如下

ERROR: [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]

原因分析

默认情况下,ElasticSearch会认为用户只是在开发环境下使用ElasticSearch,基于开箱即用的原则,虽然ElasticSearch此时也会进行bootstrap checks,来检查用户的配置是否与ElasticSearch设定的安全值相匹配。
如果匹配,则不会有warnning信息,此时ElasticSearch正常启动;
如果不匹配,则会有warnning信息,但因为是开发环境,ElasticSearch依然会正常启动;

一旦用户配置了network.host来指定一个可用的非loopback地址,那么ElasticSearch就会认为用户此时是在生产环境下启动ElasticSearch,同样会进行检查,但一旦检查不通过,直接会将前面的warnning提升为error,所以此时ElasticSearch会启动失败。

问题解决

根据上面的错误信息我们修改系统相关参数。这里可以分为临时修改和永久修改。

临时修改

文件描述符——at least [65536]

## 查看当前值
ulimit -n
## 临时修改
## 切换到root用户操作
ulimit -n 65536

虚拟内存——at least [262144]

## 查看当前值
sysctl vm.max_map_count 
## 临时修改
## 切换到root用户操作
sysctl -w vm.max_map_count=262144

修改完成之后切换到es用户重新启动ElasticSearch服务即可。

永久修改

上面是基于临时修改的配置,一旦系统重启,配置便会失效。
这里我们对配置进行永久修改。
切换到root用户
修改/etc/security/limits.conf在最后添加

* soft nofile 65536  # soft表示为超过这个值就会有warnning
* hard nofile 131072 # hard则表示不能超过这个值

修改配置文件/etc/sysctl.conf在最后添加

vm.max_map_count=262144

执行sysctl -p使配置生效,切换到es用户重新启动ElasticSearch服务即可。

你可能感兴趣的:(ELK)