安装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),并显示了以下关键信息:
-
节点验证异常(Bootstrap Checks失败):
- 日志显示了一个
ERROR
级别的消息,表明Elasticsearch在启动过程中遇到了节点验证异常。 - 具体来说,这是一个Bootstrap检查失败,指出虚拟内存区域的最大数量(
vm.max_map_count
)设置过低,当前值为65530
,而Elasticsearch要求至少为262144
。这是为了确保Elasticsearch能够正常运行而设置的系统级别要求。
- 日志显示了一个
-
意外关闭:
- Elasticsearch意外退出,退出代码为78。这通常是由于上述Bootstrap检查失败造成的。
- 还有一个
WARN
级别的消息表明,在尝试关闭HTTP服务器时遇到了意外的异常。这可能是因为Elasticsearch在完全启动之前就尝试转移到停止状态。
-
关闭过程:
- 日志中的
INFO
级别消息表明Elasticsearch的节点es03正在经历停止和关闭的过程。显示了“stopping”、“stopped”、“closing”和“closed”的状态变化,这表明节点正常地响应了关闭命令。
- 日志中的
-
机器学习控制器停止:
- 另一条
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
以获取更多信息。