如何禁用elasticsearch 5.0身份验证?

时间:2016-05-29 10:14:14

标签: authentication elasticsearch

我刚刚开始使用 elasticsearch 。使用默认设置创建索引(5个分片,1个副本)。然后,我使用附件插件索引~13G文本文件。结果,在Kibana 发现中搜索非常慢。但是,在控制台中搜索很快:

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客户端登录。它可能是最新版本的盾牌依赖(2.3.3)与elasticsearch依赖(5.0.0-alpha)不匹配。

好吧,我可以暂停身份验证吗?

从节点config:

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"
                }
            },
...

那么,我可以修改这些设置吗?可能的值是?

5 个答案:

答案 0 :(得分:96)

在测试环境中,我将以下选项添加到git rebase -i和/或elasticsearch.yml

kibana.yml

答案 1 :(得分:23)

假设您的图片名称是elasticsearch。如果你不喜欢名字

,你可以使用id

如果你运行docker,你可以使用它。 用命令

转到docker中的bash
docker exec -i -t elasticsearch /bin/bash

然后删除x-pack

elasticsearch-plugin remove x-pack

退出泊坞窗

exit

并重新启动docker image

docker restart elasticsearch

Disclamer:灵感源自的解决方案 Michał Dymel

答案 2 :(得分:4)

与docker(在本地开发人员中)一起使用时,只需删除它即可,而不是删除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

答案 3 :(得分:3)

我已经设法使用此xpack_security_enable等于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 dashboard

在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/"}

所以它似乎仍在尝试使用身份验证进行连接。

答案 4 :(得分:0)

我有同样的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完成相同的操作。