max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

文章描述了在安装Elasticsearch集群时遇到的错误,焦点在于节点验证失败,因为vm.max_map_count设置过低。解决方案涉及调整系统设置并重启容器。
摘要由CSDN通过智能技术生成

安装es集群,出现这个错误,怎么修改

es03  | {"@timestamp":"2024-01-08T10:46:12.527Z", "log.level":"ERROR", "message":"node validation exception\n[1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch. For more information see [https://www.elastic.co/guide/en/elasticsearch/reference/8.11/bootstrap-checks.html]\nbootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]; for more information see [https://www.elastic.co/guide/en/elasticsearch/reference/8.11/_maximum_map_count_check.html]", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"main","log.logger":"org.elasticsearch.bootstrap.Elasticsearch","elasticsearch.node.name":"es03","elasticsearch.cluster.name":"es-docker-cluster"}
es03  | ERROR: Elasticsearch did not exit normally - check the logs at /usr/share/elasticsearch/logs/es-docker-cluster.log
es03  | {"@timestamp":"2024-01-08T10:46:12.532Z", "log.level": "WARN", "message":"unexpected exception while waiting for http server to close", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"Thread-0","log.logger":"org.elasticsearch.node.Node","elasticsearch.node.name":"es03","elasticsearch.cluster.name":"es-docker-cluster","error.type":"java.util.concurrent.ExecutionException","error.message":"java.lang.IllegalStateException: Can't move to stopped state when not started","error.stack_trace":"java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Can't move to stopped state when not started\n\tat java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)\n\tat java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)\n\tat org.elasticsearch.server@8.11.3/org.elasticsearch.node.Node.prepareForClose(Node.java:1776)\n\tat org.elasticsearch.server@8.11.3/org.elasticsearch.bootstrap.Elasticsearch.shutdown(Elasticsearch.java:468)\n\tat java.base/java.lang.Thread.run(Thread.java:1583)\nCaused by: java.lang.IllegalStateException: Can't move to stopped state when not started\n\tat org.elasticsearch.server@8.11.3/org.elasticsearch.common.component.Lifecycle.canMoveToStopped(Lifecycle.java:128)\n\tat org.elasticsearch.server@8.11.3/org.elasticsearch.common.component.AbstractLifecycleComponent.stop(AbstractLifecycleComponent.java:73)\n\tat org.elasticsearch.server@8.11.3/org.elasticsearch.node.Node.lambda$prepareForClose$59(Node.java:1768)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)\n\t... 1 more\n"}
es03  | {"@timestamp":"2024-01-08T10:46:12.533Z", "log.level": "INFO", "message":"stopping ...", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"Thread-0","log.logger":"org.elasticsearch.node.Node","elasticsearch.node.name":"es03","elasticsearch.cluster.name":"es-docker-cluster"}
es03  | {"@timestamp":"2024-01-08T10:46:12.546Z", "log.level": "INFO", "message":"stopped", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"Thread-0","log.logger":"org.elasticsearch.node.Node","elasticsearch.node.name":"es03","elasticsearch.cluster.name":"es-docker-cluster"}
es03  | {"@timestamp":"2024-01-08T10:46:12.546Z", "log.level": "INFO", "message":"closing ...", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"Thread-0","log.logger":"org.elasticsearch.node.Node","elasticsearch.node.name":"es03","elasticsearch.cluster.name":"es-docker-cluster"}
es03  | {"@timestamp":"2024-01-08T10:46:12.554Z", "log.level": "INFO", "message":"closed", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"Thread-0","log.logger":"org.elasticsearch.node.Node","elasticsearch.node.name":"es03","elasticsearch.cluster.name":"es-docker-cluster"}
es03  | {"@timestamp":"2024-01-08T10:46:12.558Z", "log.level": "INFO", "message":"Native controller process has stopped - no new native processes can be started", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"ml-cpp-log-tail-thread","log.logger":"org.elasticsearch.xpack.ml.process.NativeController","elasticsearch.node.name":"es03","elasticsearch.cluster.name":"es-docker-cluster"}
es02  | 
es02  | ERROR: Elasticsearch exited unexpectedly, with exit code 78
es02 exited with code 78
es01  | 
es01  | ERROR: Elasticsearch exited unexpectedly, with exit code 78
es01 exited with code 78
es03  | 
es03  | ERROR: Elasticsearch exited unexpectedly, with exit code 78
es03 exited with code 78

这些日志条目来自您的Elasticsearch Docker容器(特别是节点es03),并显示了以下关键信息:

  1. 节点验证异常(Bootstrap Checks失败):

    • 日志显示了一个ERROR级别的消息,表明Elasticsearch在启动过程中遇到了节点验证异常。
    • 具体来说,这是一个Bootstrap检查失败,指出虚拟内存区域的最大数量(vm.max_map_count)设置过低,当前值为65530,而Elasticsearch要求至少为262144。这是为了确保Elasticsearch能够正常运行而设置的系统级别要求。
  2. 意外关闭:

    • Elasticsearch意外退出,退出代码为78。这通常是由于上述Bootstrap检查失败造成的。
    • 还有一个WARN级别的消息表明,在尝试关闭HTTP服务器时遇到了意外的异常。这可能是因为Elasticsearch在完全启动之前就尝试转移到停止状态。
  3. 关闭过程:

    • 日志中的INFO级别消息表明Elasticsearch的节点es03正在经历停止和关闭的过程。显示了“stopping”、“stopped”、“closing”和“closed”的状态变化,这表明节点正常地响应了关闭命令。
  4. 机器学习控制器停止:

    • 另一条INFO消息指出,“Native controller process has stopped”。这意味着Elasticsearch的机器学习功能已停止,并且无法启动新的本地进程。

要解决这个问题,您需要在主机系统上增加vm.max_map_count的值。您可以通过以下命令进行设置:

sudo sysctl -w vm.max_map_count=262144

此外,您可能还需要在系统启动时永久更改此设置。这可以通过在/etc/sysctl.conf文件中添加以下行来实现:

vm.max_map_count=262144

完成这些更改后,重新启动Elasticsearch容器,并检查是否能够正常启动。如果问题仍然存在,建议查看更详细的日志文件/usr/share/elasticsearch/logs/es-docker-cluster.log以获取更多信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MonkeyKing.sun

对你有帮助的话,可以打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值