在 Docker 中使用 ELK Stack with docker-compose with x.pack auth 无法验证用户

Using ELK Stack in Docker with docker-compose with x.pack auth failed to authenticate the user

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

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

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

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

但我总是得到这个例外m

elasticsearch_1 | [2017-11-27T09:25:58,190][INFO ][o.e.x.s.a.AuthenticationService] [clEpqom] Authentication of [elastic] was terminated by realm [reserved] - failed to authenticate user [elastic]

有什么我做错的提示吗? 这是我的 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" 确实有效。

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

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 页面。我认为您不能将 elasticsearch 密码设置为 logstash 的环境变量(它们不在 env var 列表中)。您必须在配置文件中更改它或构建您自己的图像。 (恐怕 Kibana 也一样)。