elasticsearch - BadResponseCodeError,:error = >"Got response code ' 401'通过URL联系Elasticsearch

标签 elasticsearch docker-compose logstash

我使用logstash:7.9.1图像使用logstash,当我启动docker-compose时出现此错误,我不知道该怎么办(我尝试使logstash配置错误并将其连接到错误的 flex 端口,但我的 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 组成:
  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
    }
}

最佳答案

您在7.9t中使用了错误的elastic用户密码,该密码已从changeme更改为password,如ES contribution doc所示,但是我尝试过,并且这似乎仅在您从源代码运行ES时有效。
无论如何,您都会收到401表示取消验证访问权限,并且可以阅读更多关于它的信息here
由于您不是从源代码运行ES代码,因此建议您按照this线程中提到的步骤更改密码,并在docker中运行它时,您需要通过docker exec -it <cont-id> /bin/bash进入docker容器,然后运行提到的命令在线程中设置自己的密码。

关于elasticsearch - BadResponseCodeError,:error = >"Got response code ' 401'通过URL联系Elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63913279/

相关文章:

elasticsearch - Kibana搜索分析器

docker-compose up 不向远程容器添加代码

docker - Windows上本地计算机和docker上的多个站点

postgresql - 将 postgreSql 数据与 ElasticSearch 同步

elasticsearch - 如何使用Logstash和jdbc_streaming过滤器将数据从HTTP输入发送到ElasticSearch?

elasticsearch - PUT 命令上的 Elasticsearch class_cast_exception

elasticsearch - 使用CTX通过查询更新Elasticsearch

Elastic 5.x 的 Azure 模板

docker - 无法使用 docker-compose 挂载文件

mongodb - Logstash + MongoDB Atlas 输出 : Failed to handshake with xxx. gcp.mongodb.net :27017: ArgumentError: wrong number of arguments (given 2, 预期 1)