安装es出现这个错误
{"@timestamp":"2023-12-14T02:19:27.338Z", "log.level": "INFO", "message":"bound or publishing to a non-loopback address, enforcing bootstrap checks", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"main","log.logger":"org.elasticsearch.bootstrap.BootstrapChecks","elasticsearch.node.name":"213c6e518a18","elasticsearch.cluster.name":"docker-cluster"}
ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
ERROR: Elasticsearch did not exit normally - check the logs at /usr/share/elasticsearch/logs/docker-cluster.log
{"@timestamp":"2023-12-14T02:19:27.343Z", "log.level": "INFO", "message":"stopping ...", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"Thread-2","log.logger":"org.elasticsearch.node.Node","elasticsearch.node.name":"213c6e518a18","elasticsearch.cluster.name":"docker-cluster"}
{"@timestamp":"2023-12-14T02:19:27.365Z", "log.level": "INFO", "message":"stopped", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"Thread-2","log.logger":"org.elasticsearch.node.Node","elasticsearch.node.name":"213c6e518a18","elasticsearch.cluster.name":"docker-cluster"}
{"@timestamp":"2023-12-14T02:19:27.365Z", "log.level": "INFO", "message":"closing ...", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"Thread-2","log.logger":"org.elasticsearch.node.Node","elasticsearch.node.name":"213c6e518a18","elasticsearch.cluster.name":"docker-cluster"}
从你提供的 Elasticsearch 日志中,可以看出 Elasticsearch 无法启动,原因是不满足某些启动前的检查条件。具体来说,问题是与虚拟内存区域数量相关的设置不足:
- 错误描述:
bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
。这意味着当前的vm.max_map_count
设置值太低,Elasticsearch 需要它至少为262144
。
要解决这个问题,你需要增加 vm.max_map_count
的值。这是一个 Linux 系统级别的设置,用于定义系统允许的最大虚拟内存区域数量。Elasticsearch 对此有较高要求,以确保性能和稳定性。
以下是解决步骤:
-
临时增加
vm.max_map_count
:执行以下命令以临时设置
vm.max_map_count
的值(这将在系统重启后重置):sudo sysctl -w vm.max_map_count=262144
-
永久更改设置:
如果你希望这个更改在系统重启后依然有效,需要编辑
/etc/sysctl.conf
文件(或相应的系统配置文件)并添加以下行:vm.max_map_count=262144
然后运行
sudo sysctl -p
以应用更改。 -
重启 Elasticsearch 容器:
在修改系统设置后,重启 Elasticsearch 容器:
docker restart elasticsearch
-
检查 Elasticsearch 日志:
重启后,再次检查 Elasticsearch 容器的日志以确认是否成功启动。