BadResponseCodeError,:错误=>“通过 URL 联系 Elasticsearch 时收到响应代码“401”

问题描述 投票:0回答:1

我通过logstash:7.9.1图像使用logstash,当我启动docker-compose时,我收到此错误,我不知道该怎么办(我尝试使我的logstash配置错误并将其连接到错误的弹性端口,但我的docker仍然连接到9200,所以我认为它没有从我的logstash配置中读取数据)请帮助meeeee!!!! 我的错误:

[logstash.licensechecker.licensereader] Attempted to resurrect connection to dead ES instance, but got an error. {:url=>"http://elasticsearch:9200/", :error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::BadResponseCodeError, :error=>"Got response code '401' contacting Elasticsearch at URL 'http://elasticsearch:9200/'"}

我的docker-compose:

  zookeeper:
    image: wurstmeister/zookeeper:3.4.6
    container_name: zookeeper
    ports:
      - 2181:2181
    networks:
      - bardz


  kafka:

    image: wurstmeister/kafka:2.11-1.1.0
    container_name: kafka
    depends_on:
      - zookeeper
    environment:
      KAFKA_ADVERTISED_HOST_NAME: kafka
      KAFKA_CREATE_TOPICS: logs-topic:1:1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181

    ports:
      - 9092:9092
    volumes:
      - kofka-volume:/var/run/docker.sock
    networks:
      - bardz

  elasticsearch:
    build:
      context: elk/elasticsearch/
      args:
        ELK_VERSION: "7.9.1"
    volumes:
      - type: bind
        source: ./elk/elasticsearch/config/elasticsearch.yml
        target: /usr/share/elasticsearch/config/elasticsearch.yml
        read_only: true
      - type: volume
        source: elasticsearch
        target: /usr/share/elasticsearch/data
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      ES_JAVA_OPTS: "-Xmx256m -Xms256m"
      ELASTIC_PASSWORD: changeme
      # Use single node discovery in order to disable production mode and avoid bootstrap checks
      # see https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html
      discovery.type: single-node
    networks:
      - bardz


  logstash:
    image: logstash:7.9.1
    restart: on-failure
    ports:
      - "5000:5000/tcp"
      - "5000:5000/udp"
      - "9600:9600"
    volumes:
      - logstash_data:/bitnami
      - ./elk/logstash/logstash-kafka.conf:/opt/bitnami/logstash/config/logstash-kafka.conf
    environment:
      LOGSTASH_CONF_FILENAME: logstash-kafka.conf
    networks:
      - bardz
    depends_on:
      - elasticsearch


networks:
  bardz:
    external: true
    driver: bridge


volumes:
  elasticsearch:
  zipkin-volume:
  kofka-volume:
  logstash_data:


我的logstash配置:

input {
    kafka {
        bootstrap_servers => "kafka:9092"
        topics => ["logs-topic"]
    }
}

output {
    elasticsearch {
        hosts => ["elasticsearch:9200"]
        user => elastic
        password => changeme
        index => "logs-topic"
        workers => 1
    }
}

elasticsearch docker-compose logstash
1个回答
0
投票

您在 7.9 中使用了错误的

elastic
用户密码,该密码从
changeme
更改为
password
,如 ES 贡献文档所示,但我尝试过,这似乎仅在您从源代码运行 ES 时才有效代码。

无论如何,您收到 401 意味着未经身份验证的访问,您可以在here

阅读更多相关信息

由于您没有从源代码运行 ES 代码,建议您按照 this 线程中提到的步骤更改密码,并且当您在 docker 中运行它时,您需要通过

docker exec -it <cont-id> /bin/bash
进入 docker conatainer 并而不是运行线程中提到的命令来设置您自己的密码。

© www.soinside.com 2019 - 2024. All rights reserved.