如何在Docker中设置Elasticsearch的xpack.security.enrollment.enabled为true
解决Elasticsearch中xpack.security.enrollment.enabled设置为true的问题
你在Windows Docker中启动Elasticsearch和Kibana后,生成Kibana注册令牌时遇到错误:
ERROR: [xpack.security.enrollment.enabled] must be set to
trueto create an enrollment token
以下是两种将xpack.security.enrollment.enabled设为true的可行方法:
方法一:修改已运行容器的配置文件
- 进入elasticsearch容器的shell:
docker exec -it elasticsearch /bin/sh - 编辑Elasticsearch的核心配置文件
elasticsearch.yml,使用vi编辑器打开:vi /usr/share/elasticsearch/config/elasticsearch.yml - 在文件中添加或修改配置项:
xpack.security.enrollment.enabled: true - 保存并退出vi编辑器(按
Esc键,输入:wq后回车) - 重启elasticsearch容器使配置生效:
docker restart elasticsearch
方法二:重启容器时通过环境变量配置(更快捷)
Elasticsearch支持通过环境变量直接覆盖配置,步骤如下:
- 先停止并删除当前的elasticsearch容器:
docker stop elasticsearch docker rm elasticsearch - 重新启动容器,在原有参数基础上添加
-e "xpack.security.enrollment.enabled=true":docker run -p 127.0.0.1:9200:9200 -p 127.0.0.1:9300:9300 --name elasticsearch -v elasticsearch-data:/usr/share/elasticsearch/data -e "discovery.type=single-node" -e ELASTIC_USER=Andreas -e ELASTIC_PASSWORD=Hirsebrei -e "xpack.security.enrollment.enabled=true" docker.elastic.co/elasticsearch/elasticsearch:8.5.2
配置生效后重新生成令牌
配置生效后,直接执行以下命令即可生成Kibana注册令牌:
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token --scope kibana
内容的提问来源于stack exchange,提问作者Andreas
相关产品推荐
相关产品推荐

