Authentication 如何禁用elasticsearch 5.0身份验证?
我刚开始使用elasticsearch。创建了具有默认设置的索引(5个碎片,1个副本)。然后我用附件插件为~13G文本文件编制了索引。因此,它在KibanaDiscover中的搜索速度非常慢。但是,在控制台中搜索速度很快:Authentication 如何禁用elasticsearch 5.0身份验证?,authentication,elasticsearch,Authentication,elasticsearch,我刚开始使用elasticsearch。创建了具有默认设置的索引(5个碎片,1个副本)。然后我用附件插件为~13G文本文件编制了索引。因此,它在KibanaDiscover中的搜索速度非常慢。但是,在控制台中搜索速度很快: GET /mytext/_search { "fields": [ "file.name" ], "query": { "match": { "file.content": "foobar" } }, "highlight": {
GET /mytext/_search
{
"fields": [ "file.name" ],
"query": {
"match": {
"file.content": "foobar"
}
},
"highlight": {
"fields": {
"file.content": {
}
}
}
}
为了研究它为什么这么慢,我安装了X-Pack。指南文档似乎不全面,我没有进入安全配置
elasticsearch的默认安装不必登录,但必须在安装X-Pack插件后登录。我对elasticsearch、kibana、x-pack的安全设置感到困惑,它们是否共享用户帐户?毕竟,我通过以下方式获得认证:
curl -XPUT -uelastic:changeme 'localhost:9200/_shield/user/elastic/_password' -d '{ "password" : "newpass1" }'
curl -XPUT -uelastic:newpass1 'localhost:9200/_shield/user/kibana/_password' -d '{ "password" : "newpass2" }'
问题来了。我无法使用带有org.elasticsearch.plugin:shield
的Java客户端登录。很可能是shield依赖项(2.3.3)的最新版本与elasticsearch依赖项(5.0.0-alpha)不匹配
我可以禁用身份验证吗
从节点配置中:
GET http://localhost:9200/_nodes
"nodes" : {
"v_XmZh7jQCiIMYCG2AFhJg" : {
"transport_address" : "127.0.0.1:9300",
"version" : "5.0.0-alpha2",
"roles" : [ "master", "data", "ingest" ],
...
"settings" : {
"node" : {
"name" : "Apache Kid"
},
"http" : {
"type" : "security"
},
"transport" : {
"type" : "security",
"service" : {
"type" : "security"
}
},
...
那么,我可以修改这些设置吗?可能的值是?在测试环境中,我在
elasticsearch.yml
和/或kibana.yml
中添加了以下选项
xpack.security.enabled: false
我已经成功地使用这个
xpack\u security\u enable
equals false进行了身份验证,但是我的kibana日志中仍然出现了一些身份验证错误
elasticsearch:
image: elasticsearch:1.7.6
ports:
- ${PIM_ELASTICSEARCH_PORT}:9200
- 9300:9300
kibana:
image: docker.elastic.co/kibana/kibana:5.4.1
environment:
SERVER_NAME: localhost
ELASTICSEARCH_URL: http://localhost:9200
XPACK_SECURITY_ENABLED: 'false'
ports:
- 5601:5601
links:
- elasticsearch
depends_on:
- elasticsearch
这是我当前的设置,在kibana上我可以看到一些错误:
在kibana日志中,我可以看到:
kibana_1 | {"type":"log","@timestamp":"2017-06-15T07:43:41Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"No living connections"}
kibana_1 | {"type":"log","@timestamp":"2017-06-15T07:43:42Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"Unable to revive connection: http://localhost:9200/"}
因此,它似乎仍在尝试使用身份验证进行连接。假设您的图像名称是elasticsearch。如果您不喜欢这个名字,可以使用id 如果你运行docker,你可以使用它。 使用命令转到docker中的bash
docker exec -i -t elasticsearch /bin/bash
然后取下x-pack
elasticsearch-plugin remove x-pack
出口码头工人
exit
并重新启动docker映像
docker restart elasticsearch
Disclamer:灵感来源于
我也有同样的xpack问题,但使用kibana,通过以下命令修复:
docker run docker.elastic.co/kibana/kibana:5.5.1 /bin/bash -c 'bin/kibana-plugin remove x-pack ; /usr/local/bin/kibana-docker'
所以它启动容器,然后删除xpack,然后启动正常进程。elasticsearch和logstash也可以这样做 与docker(在本地开发中)一起使用时,您可以简单地禁用xpack,而不是删除xpack
docker pull docker.elastic.co/elasticsearch/elasticsearch:5.5.3
docker run -p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e "xpack.security.enabled=false" \
docker.elastic.co/elasticsearch/elasticsearch:5.5.3
这是正确的答案。来源:elasticsearch.yml文件位于/usr/share/elasticsearch/config/elasticsearch.ymlIf,使用docker compose,put
-“xpack.security.enabled=false”
在环境下
在es和kibana部分中输入。您可以通过指定:-ELASTICSEARCH\u URL来解决kibana警告问题=http://elasticsearch:9200
在环境下
输入docker.compose文件的kibana部分。