ElasticSearch- Bootstrap 检查失败

rm5edbpk  于 2023-02-18  发布在  ElasticSearch
关注(0)|答案(9)|浏览(202)

我正在尝试使用Flink 5.x Elasticsearch接收器连接器将数据插入到一个小型VM上的ES 5.2.1示例。
由于这是一个处于开发模式的微型VM,我无法让它启动以接受9300上的TransportClient远程客户端连接,而不会导致 Bootstrap 检查失败。

[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

我已经玩了下面的设置,但只是不能让它启动(http客户端9200工作正常)

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运行在一个很小的虚拟机上,只是为了开发的目的,我没有访问权来改变例如,文件描述符限制在这个框上。

3wabscal

3wabscal1#

ElasticSearch进程的最大文件描述符[4096]太低,请至少增加到[65536]

ulimit -n 65536

或在/etc/security/limits.conf中将nofile设置为65536
用户[xxx]的最大线程数[1024]过低,请至少增加到[2048]

ulimit -u 2048

或者在开始ElasticSearch之前,在/etc/security/limits.conf中将nproc值设置为2048或更高。
最大虚拟内存区域vm.max_map_count [65530]过低,请至少增加到[262144]
/etc/sysctl.conf中设置vm.max_map_count=262144,然后执行sysctl -p

如果您希望在引导检查失败的情况下仍在开发环境中运行elasticsearch:

elasticsearch.yml中设置以下内容

transport.host: 127.0.0.1
http.host: 0.0.0.0

请注意,您无法在开发模式下形成群集。请勿使用在生产中引导检查失败的elasticsearch!!

vwhgwdsa

vwhgwdsa2#

问题是“最大虚拟内存区域vm.max_map_count [65530]过低,请至少增加到[262144]”

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

1. Linux

检查/etc/sysctl.conf中的vm.max_map_count设置:

grep vm.max_map_count /etc/sysctl.conf

输出:虚拟机最大Map计数=262144
如果输出小于262144,按照elasticsearch的预期应用新计数,我们有两个选项来添加永久或临时修复。
将变量添加到/etc/sysctl.conf

vm.max_map_count=262144

sysctl -w vm.max_map_count=262144

2.带有Mac版Docker的OSX

必须在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.带有Docker工具箱的OSX

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

docker-machine ssh

sudo sysctl -w vm.max_map_count=262144

4. Windows上带有WSL的Docker桌面

必须通过wsl设置vm.max_map_count设置:

wsl

sudo sysctl -w vm.max_map_count=262144
qni6mghb

qni6mghb3#

尝试这样配置elasticsearch.yml文件:
network.host: 0.0.0.0 http.port: 9200 transport.host: localhost transport.tcp.port: 9300

ubbxdtey

ubbxdtey4#

我只是补充
transport.host:本地主机
这对我很有效。

7gs2gvoe

7gs2gvoe5#

对于最大文件描述符,ElasticSearch进程的[4096]太低,请至少增加到[65536]
1.检查ulimit -n,它应该是4096。
1.编辑/etc/security/limits.conf并添加以下行:
* soft nofile 65536
* hard nofile 65536
root soft nofile 65536
root hard nofile 65536
1.编辑/etc/pam.d/common-session并添加此行session required pam_limits.so
1.编辑/etc/pam.d/common-session-noninteractive并添加此行session required pam_limits.so
1.重新加载会话并检查ulimit -n,应为65536。
对于最大虚拟内存区域,vm.max_map_count [65530]太低,请至少增加到[262144]
1.运行以下命令sudo sh -c "echo 'vm.max_map_count=262144' >> /etc/sysctl.conf"

  • 参考文献 *:
  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
pw136qt2

pw136qt26#

我可以通过使用自ES 5.2发现以来可用的以下设置来完成此操作。类型:单节点(https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html
使用该设置启动ES节点后,我就可以使用传输客户机从非本地主机客户机进行连接,这在以前是个问题。

vptzau2j

vptzau2j7#

以下步骤帮助我们开始使用ES 5.5.2。在Azure上,使用Ubuntu服务器的3个主节点、3个客户端节点和8个数据节点
1.确保“/etc/security/limits.conf”中的以下配置

  • 软内存锁定不受限制
  • 无限制的硬内存锁
  1. ulimit -l无限制
    1.上限-编号65536
  2. sudo sysctl -w虚拟机最大Map计数=262144
    1.确保elasticsearch.yml具有以下配置参数
    transport.tcp.compress:真
    transport.tcp.port:9300

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

wnavrhmk

wnavrhmk8#

ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
In 2023:If you are getting this error then follow these steps

首先---〉如果您正在使用Docker映像,请执行以下命令

  • 用于弹性

须藤码头拉docker.elastic.co/elasticsearch/elasticsearch:8.6.1

  • 为Kibana

须藤码头拉docker.elastic.co/kibana/kibana:8.6.1
8.6.1:从Kibana/Kibana撤出

  • 创建网络

sudo Docker 网络创建弹性

  • 检查是否一切正常

sudo docker检查弹性

  • 检查你所有的docker图像

sudo docker图像

  • 确保使用全名,例如127.0.0.1:9200:9200....

sudo docker运行-名称es 01-测试-网络弹性-p 127.0.0.1:9200:9200 -p 127.0.0.1:9300:9300 -e“发现。类型=单节点”docker.elastic.co/elasticsearch/elasticsearch:8.6.1

***如果您的Docker容器已在使用中,请确保先使用***将其删除

sudo docker rm [container-name]

删除容器也将删除该容器中存在的所有数据
如果您的Docker容器正在运行,请确保先将其停止

sudo docker stop [container-name]

开始

sudo docker start [container-name]

*对kibana也重复相同的操作
打开另一个终端并重复相同的过程

要下载kibana和elasticsearch docker最新图片,请访问docker hub
如果你正在运行从bin文件夹(.bat文件)和卡住了一些东西,然后评论下来,我会立即给你回复

23c0lvtd

23c0lvtd9#

一直在谷歌搜索这一点,并应用不同的建议,但我认为这是一般的解决方案:
检查过程运行时的实际限值(尽管时间较短):

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>

然后根据runner或container(在我的例子中,它是supervisord的minfds值),您可以提升实际的限制配置。

相关问题