Elasticsearch - Bootstrap检查失败

时间:2017-02-17 14:33:03

标签: elasticsearch

我正在尝试使用Flink 5.x Elasticsearch接收器连接器将数据插入托管在小型VM上的ES 5.2.1实例。

由于这是一个处于开发模式的小型虚拟机,我无法启动它以接受9300上的TransportClient远程客户端连接而不会使引导程序检查失败。

[2017-02-17T09:02:48,581][INFO ][o.e.n.Node               ] [Z_fiBnl] starting ...
[2017-02-17T09:02:48,866][INFO ][o.e.t.TransportService   ] [Z_fiBnl] publish_address {xxxxxx:9300}, bound_addresses {127.0.0.1:9300}
[2017-02-17T09:02:48,878][INFO ][o.e.b.BootstrapChecks    ] [Z_fiBnl] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
max number of threads [1024] for user [xxx] is too low, increase to at least [2048]
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

我已经使用了以下设置,但是无法启动它(9200上的http客户端工作正常)

transport.publish_host: 0.0.0.0
transport.bind_host: 0.0.0.0
http.host: "xxx"
http.host: 169.117.72.167
network.host: 0.0.0.0
network.publish_host: 0.0.0.0

请注意,ES仅在用于开发目的的情况下在小型VM上运行,并且我无权访问ex。此框中的文件描述符限制。

8 个答案:

答案 0 :(得分:18)

  

弹性搜索过程的最大文件描述符[4096]太低了,   增加到至少[65536]

ulimit -n 65536 

或在nofile

中将65536设为/etc/security/limits.conf
  

用户[xxx]的最大线程数[1024]太低,增加到   至少[2048]

ulimit -u 2048

或者在开始弹性搜索之前,在nproc中将2048值设置为/etc/security/limits.conf或更高。

  

最大虚拟内存区域vm.max_map_count [65530]太低,增加   至少[262144]

vm.max_map_count=262144中设置/etc/sysctl.conf 然后做sysctl -p

如果您想在开发环境中运行elasticsearch,尽管失败的引导程序检查:

elasticsearch.yml

中设置以下内容
transport.host: 127.0.0.1
http.host: 0.0.0.0

请注意,您无法在开发模式下构建群集。 不要使用在生产中失败的bootstrap检查的elasticsearch !!

答案 1 :(得分:7)

尝试以这种方式配置elasticsearch.yml文件:

network.host: 0.0.0.0 http.port: 9200 transport.host: localhost transport.tcp.port: 9300

答案 2 :(得分:5)

vm.max_map_count非常低,增加其计数将解决问题

1。的Linux

使用/etc/sysctl.conf中的vm.max_map_count设置进行检查:

grep vm.max_map_count /etc/sysctl.conf
  

OUTPUT:vm.max_map_count = 262144

如果输出小于262144,则将新计数应用为elasticsearch expectes

sysctl -w vm.max_map_count=262144

2。 OSX与Docker for Mac

必须在xhyve虚拟机中设置vm.max_map_count设置:

screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

使用root登录,无密码。然后像配置Linux一样配置sysctl设置:

sysctl -w vm.max_map_count=262144

3。 OSX与Docker Toolbox

必须通过docker-machine设置vm.max_map_count设置:

docker-machine ssh

sudo sysctl -w vm.max_map_count=262144

答案 3 :(得分:5)

对于最大文件描述符[4096],弹性搜索过程太低,增加到至少[65536]

  1. 检查ulimit -n,它将是4096。
  2. 修改/etc/security/limits.conf并添加以下行:

    * soft nofile 65536

    * hard nofile 65536

    root soft nofile 65536

    root hard nofile 65536

  3. 修改/etc/pam.d/common-session并添加此行session required pam_limits.so
  4. 修改/etc/pam.d/common-session-noninteractive并添加此行session required pam_limits.so
  5. 重新加载会话并检查ulimit -n,它将是65536。
  6. 对于最大虚拟内存区域vm.max_map_count [65530]太低,增加到至少[262144]

    1. 运行以下命令sudo sh -c "echo 'vm.max_map_count=262144' >> /etc/sysctl.conf"
    2. 参考

      1. https://underyx.me/2015/05/18/raising-the-maximum-number-of-file-descriptors
      2. https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html

答案 4 :(得分:4)

我只是添加

  

transport.host:localhost

它对我有用。

答案 5 :(得分:2)

以下步骤帮助我们开始使用ES 5.5.2。在Azure上使用Ubuntu服务器的3个主服务器,3个客户端和8个数据节点

  1. 确保“/etc/security/limits.conf”
  2. 中的以下配置
      

    *软memlock无限

         

    * hard memlock unlimited

    1. ulimit -l unlimited
    2. ulimit -n 65536

    3. sudo sysctl -w vm.max_map_count = 262144

    4. 确保elasticsearch.yml具有以下配置参数
    5.   

      transport.tcp.compress:true

           

      transport.tcp.port:9300

      注意我们还必须停止“apparmor”服务来修复节点之间的连接问题。

答案 6 :(得分:0)

我可以使用ES 5.2以后的设置来完成此操作  discovery.type:单节点 (https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html

一旦我使用该设置启动了ES节点,我就可以使用来自非localhost客户端的传输客户端进行连接,这是以前遇到的问题。

答案 7 :(得分:0)

曾为此搜寻Google并应用了不同的建议,但我认为这是一般的解决方案:

使用以下命令检查进程运行时的实际限制(尽管很短):

cat /proc/<pid>/limits

您将找到类似以下内容的行:

Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        0                    unlimited            bytes 
<truncated>    

然后取决于运行器或容器(在我的情况下,这是主管的minfds值),您可以取消实际的限制配置。