【问题标题】:Using ELK Stack in Docker with docker-compose with x.pack auth failed to authenticate the user在 Docker 中使用 ELK Stack 和 docker-compose 和 x.pack auth 无法对用户进行身份验证
【发布时间】:2017-11-27 09:27:07
【问题描述】:

我想将 elk 堆栈与 docker 一起使用。

为此,我创建了一个 docker-compose 文件。 只要我停用了 X-Pack,一切正常。

但现在我想在 kibana UI 中登录,因此我想使用 x-pack

我在elasticsearch和logstash的环境中定义了用户名和密码。

但我总是得到这个例外m

弹性搜索_1 | [2017-11-27T09:25:58,190][信息 ][o.e.x.s.a.AuthenticationService] [clEpqom] 身份验证 [elastic] 被领域 [reserved] 终止 - 身份验证失败 用户 [弹性]

任何提示我做错了什么? 这是我的 docker-compose 文件:

version: '2'

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch-platinum:6.0.0
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      ELASTIC_USERNAME: "elastic"
      ELASTIC_PASSWORD: "MyPw123"
      http.cors.enabled: "true"
      http.cors.allow-origin: "*"
    networks:
      - elk

  logstash:
    image: docker.elastic.co/logstash/logstash:6.0.0
    environment:
      xpack.monitoring.elasticsearch.url: "172.17.0.1:9200"
      xpack.monitoring.elasticsearch.username: "elastic"
      xpack.monitoring.elasticsearch.password: "MyPw123"
    networks:
      - elk
    depends_on:
      - elasticsearch

  kibana:
    image: docker.elastic.co/kibana/kibana:6.0.0
    ports:
      - "5601:5601"
    networks:
      - elk
    depends_on:
      - elasticsearch
networks:
  elk:
    driver: bridge

更新 使用默认密码“changeme”确实有效。

【问题讨论】:

  • 也许是一个“愚蠢”的评论,但是当您不使用 compose 而是手动启动容器并每次等待几秒钟时会发生什么。 (首先是 ES,然后是 logstash,然后是 kibana)?也许 Kibana 会在 logstash 尚未启动时尝试连接?
  • 没有一一尝试,但我可以看到,即使在几分钟后,当一切都启动并运行时会发生错误
  • 如果密码更改+日志到达logstash,你能用api吗? curl -u elastic 'localhost:9200/_cat/indices?v(检查 ES 上的索引)
  • 有些人发表了现在已被删除的评论,但它是正确的。当我使用默认密码“changeme”时,它可以工作......
  • 哦,是的,我删除了它,因为我认为它已被 6.0.0 弃用(我还没有使用最新版本)。通过在 docker compose 文件中设置密码似乎没有更改

标签: docker elasticsearch docker-compose elastic-stack elasticsearch-x-pack


【解决方案1】:

您可以使用以下方法更改集群中的弹性(管理员)密码:

curl -u elastic -XPUT 'localhost:9200/_xpack/security/user/elastic/_password?prett‌​y' -H 'Content-Type: application/json' -d' 
{ 
    "password": "supersecret" 
}

默认密码是changme

如果您真的想在 docker-compose 中设置配置,我建议您查看this 页面。我认为您不能将弹性搜索密码设置为 logstash 的环境变量(它们不在 env var 列表中)。您必须在配置文件中更改它或构建自己的图像。 (恐怕 Kibana 也是如此)。

【讨论】:

    猜你喜欢
    • 2017-06-15
    • 2019-09-26
    • 2023-03-05
    • 2016-12-09
    • 1970-01-01
    • 2019-09-04
    • 2016-03-29
    • 1970-01-01
    • 2018-03-06
    相关资源
    最近更新 更多