logstash 도커 컨테이너에서 kafka 도커 컨테이너에 연결할 수 없습니다.

Geoandri

logstash 도커 컨테이너에서 kafka 도커 컨테이너에 연결하려고하는데 항상 다음 메시지가 표시됩니다.

 Connection to node 0 (localhost/127.0.0.1:9092) could not be established. Broker may not be available.

내 docker-compose.yml 파일은

version: '3.2'

services:
  elasticsearch:
    build:
      context: elasticsearch/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - type: bind
        source: ./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
    networks:
      - elk
    depends_on:
      - kafka

  logstash:
    build:
      context: logstash/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - type: bind
        source: ./logstash/config/logstash.yml
        target: /usr/share/logstash/config/logstash.yml
        read_only: true
      - type: bind
        source: ./logstash/pipeline
        target: /usr/share/logstash/pipeline
        read_only: true
    ports:
      - "5000:5000"
      - "9600:9600"
    links:
      - kafka
    environment:
      LS_JAVA_OPTS: "-Xmx256m -Xms256m"
    networks:
      - elk
    depends_on:
      - elasticsearch

  kibana:
    build:
      context: kibana/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - type: bind
        source: ./kibana/config/kibana.yml
        target: /usr/share/kibana/config/kibana.yml
        read_only: true
    ports:
      - "5601:5601"
    networks:
      - elk
    depends_on:
      - elasticsearch

  zookeeper:
    image: strimzi/kafka:0.11.3-kafka-2.1.0
    container_name: zookeeper
    command: [
      "sh", "-c",
      "bin/zookeeper-server-start.sh config/zookeeper.properties"
    ]
    ports:
      - "2181:2181"
    networks:
      - elk
    environment:
      LOG_DIR: /tmp/logs

  kafka:
    image: strimzi/kafka:0.11.3-kafka-2.1.0
    command: [
      "sh", "-c",
      "bin/kafka-server-start.sh config/server.properties --override listeners=$${KAFKA_LISTENERS} --override advertised.listeners=$${KAFKA_ADVERTISED_LISTENERS} --override zookeeper.connect=$${KAFKA_ZOOKEEPER_CONNECT}"
    ]
    depends_on:
      - zookeeper
    ports:
      - "9092:9092"
    networks:
      - elk
    environment:
      LOG_DIR: "/tmp/logs"
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181

networks:
  elk:
    driver: bridge

volumes:
  elasticsearch:

내 logstash.conf 파일은

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

## Add your filters / logstash plugins configuration here

output {
    elasticsearch {
        hosts => "elasticsearch:9200"
        user => "elastic"
        password => "changeme"
    }
}

모든 컨테이너가 정상적으로 실행되고 있으며 컨테이너 외부의 Kafka 주제로 메시지를 보낼 수 있습니다.

로빈 모팻

클라이언트에서 확인할 수있는 호스트 이름을 기반으로 리스너를 정의해야합니다. 리스너가 localhost있는 경우 클라이언트 (logstash)는 localhost자체 컨테이너에서 이를 해결하려고 시도 하므로 오류가 발생합니다.

나는 이것에 대해 여기 에 자세히 썼지 만 본질적으로 이것이 필요합니다.

KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092, PLAINTEXT://kafka:29092
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092, PLAINTEXT://kafka:29092

그런 다음 Docker 네트워크의 모든 컨테이너 kafka:29092가 도달하는 데 사용 하므로 logstash 구성은

bootstrap_servers => "kafka:29092"

호스트 시스템 자체의 모든 클라이언트는 계속해서 사용 localhost:9092합니다.

여기에서 Docker Compose를 사용하여이 작업을 확인할 수 있습니다. https://github.com/confluentinc/demo-scene/blob/master/build-a-streaming-pipeline/docker-compose.yml#L40

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

도커는 컨테이너 연결을 지정할 수 없습니다.

분류에서Dev

우분투 도커 컨테이너에 액세스 할 수 없습니다.

분류에서Dev

어쨌든 하나의 도커 컨테이너에서 웹을 빌드하고 다른 도커 컨테이너에 배포 할 수 있습니까?

분류에서Dev

이전에 설치 한 도커 컨테이너 내부에서 curl을 사용할 수 없습니다.

분류에서Dev

호스트에서 이름으로 도커 컨테이너를 ping 할 수 없습니다.

분류에서Dev

우분투 도커 컨테이너에서 systemd를 사용할 수 없습니다.

분류에서Dev

다른 컨테이너에서 Kafka Docker-container에 연결할 수 없음 : 연결이 거부 됨-1/1 브로커가 다운 됨

분류에서Dev

다른 컨테이너의 빌드 프로세스 중에 도커 컨테이너를 해결할 수 없습니다.

분류에서Dev

도커-환경 변수를 컨테이너에 전달할 수 있습니까?

분류에서Dev

Traefik은 컨테이너에 도달 할 수 없습니다

분류에서Dev

우분투 서버에서 실행되는 도커 컨테이너에 인터넷 연결이 없습니다.

분류에서Dev

도커 컨테이너에서 npm 명령을 어떻게 실행할 수 있습니까?

분류에서Dev

psycopg2로 psql 도커 컨테이너에 연결되었지만 읽거나 쓸 수 없음

분류에서Dev

알파인에서 빌드 된 도커 컨테이너에서 "users"명령을 찾을 수 없습니다.

분류에서Dev

다른 도커 컨테이너 내에서 도커 컨테이너를 실행하고 있습니까?

분류에서Dev

다른 컨테이너에서 액세스 한 도커 컨테이너 포트

분류에서Dev

로컬 도커 컨테이너에서 MySQL에 연결하는 동안 오류가 발생했습니다 : ERROR 2002 (HY000) : '127.0.0.1'의 MySQL 서버에 연결할 수 없습니다 (115)

분류에서Dev

Azure 컨테이너-개인 레지스트리 "도커 레지스트리에서받은 오류 응답"에 로그인 할 수 없습니다.

분류에서Dev

도커 컨테이너는 어떻게 모든 도커 이벤트를 수신 할 수 있습니까?

분류에서Dev

다른 도커 컨테이너의 pgAdmin4에서 도커 컨테이너의 PostgreSQL에 액세스

분류에서Dev

플라스크에 연결할 수 없습니다 도커

분류에서Dev

니스 도커 컨테이너에서 응답 없음

분류에서Dev

Docker 컨테이너에서 Jenkins 실행. unix : ///var/run/docker.sock에서 Docker 데몬에 연결할 수 없습니다. 도커 데몬이 실행 중입니까?

분류에서Dev

컨테이너 외부에서 kafka 도커 컨테이너 매개 변수를 조정 / 편집 / 추가 / 변경하는 방법

분류에서Dev

도커 컨테이너는 동일한 네트워크의 다른 컨테이너와 통신 할 수 없습니다.

분류에서Dev

도커 컨테이너에서 mysql 데이터베이스에 연결

분류에서Dev

다른 컨테이너에서 Postgres 컨테이너에 연결할 수 없습니다.

분류에서Dev

ECS에서 연결된 Docker 컨테이너에 연결할 수 없습니다.

분류에서Dev

도커 컨테이너 내부의 mysql은 "소켓 '/var/run/mysqld/mysqld.sock'을 통해 로컬 MySQL 서버에 연결할 수 없습니다."라고 말합니다.

Related 관련 기사

  1. 1

    도커는 컨테이너 연결을 지정할 수 없습니다.

  2. 2

    우분투 도커 컨테이너에 액세스 할 수 없습니다.

  3. 3

    어쨌든 하나의 도커 컨테이너에서 웹을 빌드하고 다른 도커 컨테이너에 배포 할 수 있습니까?

  4. 4

    이전에 설치 한 도커 컨테이너 내부에서 curl을 사용할 수 없습니다.

  5. 5

    호스트에서 이름으로 도커 컨테이너를 ping 할 수 없습니다.

  6. 6

    우분투 도커 컨테이너에서 systemd를 사용할 수 없습니다.

  7. 7

    다른 컨테이너에서 Kafka Docker-container에 연결할 수 없음 : 연결이 거부 됨-1/1 브로커가 다운 됨

  8. 8

    다른 컨테이너의 빌드 프로세스 중에 도커 컨테이너를 해결할 수 없습니다.

  9. 9

    도커-환경 변수를 컨테이너에 전달할 수 있습니까?

  10. 10

    Traefik은 컨테이너에 도달 할 수 없습니다

  11. 11

    우분투 서버에서 실행되는 도커 컨테이너에 인터넷 연결이 없습니다.

  12. 12

    도커 컨테이너에서 npm 명령을 어떻게 실행할 수 있습니까?

  13. 13

    psycopg2로 psql 도커 컨테이너에 연결되었지만 읽거나 쓸 수 없음

  14. 14

    알파인에서 빌드 된 도커 컨테이너에서 "users"명령을 찾을 수 없습니다.

  15. 15

    다른 도커 컨테이너 내에서 도커 컨테이너를 실행하고 있습니까?

  16. 16

    다른 컨테이너에서 액세스 한 도커 컨테이너 포트

  17. 17

    로컬 도커 컨테이너에서 MySQL에 연결하는 동안 오류가 발생했습니다 : ERROR 2002 (HY000) : '127.0.0.1'의 MySQL 서버에 연결할 수 없습니다 (115)

  18. 18

    Azure 컨테이너-개인 레지스트리 "도커 레지스트리에서받은 오류 응답"에 로그인 할 수 없습니다.

  19. 19

    도커 컨테이너는 어떻게 모든 도커 이벤트를 수신 할 수 있습니까?

  20. 20

    다른 도커 컨테이너의 pgAdmin4에서 도커 컨테이너의 PostgreSQL에 액세스

  21. 21

    플라스크에 연결할 수 없습니다 도커

  22. 22

    니스 도커 컨테이너에서 응답 없음

  23. 23

    Docker 컨테이너에서 Jenkins 실행. unix : ///var/run/docker.sock에서 Docker 데몬에 연결할 수 없습니다. 도커 데몬이 실행 중입니까?

  24. 24

    컨테이너 외부에서 kafka 도커 컨테이너 매개 변수를 조정 / 편집 / 추가 / 변경하는 방법

  25. 25

    도커 컨테이너는 동일한 네트워크의 다른 컨테이너와 통신 할 수 없습니다.

  26. 26

    도커 컨테이너에서 mysql 데이터베이스에 연결

  27. 27

    다른 컨테이너에서 Postgres 컨테이너에 연결할 수 없습니다.

  28. 28

    ECS에서 연결된 Docker 컨테이너에 연결할 수 없습니다.

  29. 29

    도커 컨테이너 내부의 mysql은 "소켓 '/var/run/mysqld/mysqld.sock'을 통해 로컬 MySQL 서버에 연결할 수 없습니다."라고 말합니다.

뜨겁다태그

보관