我对弹性搜索游戏非常陌生。我甚至很擅长在我的Ubuntu 14.04安装上运行JAVA。我的背景几乎完全是基于JS堆栈的。
有了这个,我已经完成了安装elasticsearch的教程。我已经设法通过修改启动时分配的内存量来使它在我的cheapo digitalocean droplet上运行。太好了!
如果我在实际主机的终端上,我可以使用http://localhost:9200/
进行访问。
但是,我想将此作为端点公开。因此,根据网络上的文档,我只是将netowrk.bind
发送到0.0.0.0
。
然而,当我保存配置文件并sudo service elasticsearch restart
时,它告诉我它已经启动了。它崩溃并关闭后不久。
仔细检查日志后,似乎因为我绑定到non-loopback
网络(又名eth0),它会运行一些引导检查然后失败,因为我没有分配给它的最小内存。
为什么我会将它绑定到 local 或localhost,然后运行应用程序但不允许我绑定到面向外部的网络?
[2016-12-21T10:18:59,888][INFO ][o.e.b.BootstrapCheck ] [honey-pot-1]
bound or publishing to a non-loopback or non-link-local address,
enforcing bootstrap checks
[2016-12-21T10:18:59,903][ERROR][o.e.b.Bootstrap ] [honey-pot-1]
node validation exception
bootstrap checks failed
max number of threads [1822] for user [elasticsearch] is too low,
increase to at least [2048]
max virtual memory areas vm.max_map_count [100000] is too low,
increase to at least [262144]
[2016-12-21T10:18:59,928][INFO ][o.e.n.Node ] [honey-pot-1]
stopping ...
答案 0 :(得分:2)
除非增加最大线程数和最大虚拟内存,否则弹性不会启动。 您可以按照以下文档: configuring Elastic system settings
答案 1 :(得分:0)
将以下配置添加到/etc/elasticsearch/elasticsearch.yml以进行基于rpm的安装,或将$ ES_HOME / elasticsearch.yml进行tarball安装
network.host:127.0.0.1 http.host:0.0.0.0
并重新启动elasticsearch。应该可以。
此外,您可以尝试设置设置-sudo systemctl编辑elasticsearch并添加 [服务] LimitMEMLOCK =无穷大
并保存和sudo systemctl daemon-reload 以上建议。
答案 2 :(得分:0)
增加最大虚拟内存区域vm.max_map_count ..使用以下命令
$ sudo sysctl -w vm.max_map_count = 262144