es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo utilizar la imagen de Docker del exportador de Kafka?

Estoy intentando usar el Exportador de Kafka empacado por Bitnami, https://github.com/bitnami/bitnami-docker-kafka-exporter, junto con la imagen de Bitnami para Kafka, https://github.com/bitnami/bitnami-docker-kafka. Estoy intentando ejecutar el siguiente docker-compose.yml:

version: '2'

networks:
  app-tier:
    driver: bridge

services:
  zookeeper:
    image: 'bitnami/zookeeper:latest'
    environment:
      - 'ALLOW_ANONYMOUS_LOGIN=yes'
    networks:
      - app-tier
  kafka:
    image: 'bitnami/kafka:latest'
    environment:
      - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
      - ALLOW_PLAINTEXT_LISTENER=yes
    networks:
      - app-tier
  kafka-exporter:
    image: bitnami/kafka-exporter:latest
    ports:
      - "9308:9308"
    command:
      - --kafka.server=kafka:9092

Sin embargo, si ejecuto esto con docker-compose up, obtengo el siguiente error:

bitnami-docker-kafka-kafka-exporter-1  | F0103 17:44:12.545739       1 kafka-exporter.go:865] Error Init Kafka Client: kafka: client has run out of available brokers to talk to (Is your cluster reachable?)

He intentado usar la respuesta a https://stackoverflow.com/questions/37366857/how-to-pass-arguments-to-entrypoint-in-docker-compose-yml para especificar un command para el servicio kafka-exporter que – asumiendo que el entrypoint está definido en forma de ejecución – debería agregar banderas adicionales a la invocación del binario del Exportador de Docker. Sin embargo, parece que ni el valor de kafka:9092 es correcto para el valor de la bandera kafka.server, ni la bandera está siendo reconocida, o tal vez hay algún tipo de condición de carrera donde el exportador falla y se detiene antes de que Kafka esté funcionando correctamente. ¿Alguna idea de cómo hacer que este ejemplo funcione?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que el Exportador de Kafka no puede conectarse a los brokers de Kafka. Esto podría ser debido a diversas razones, como una configuración incorrecta, problemas de red o que Kafka aún no esté completamente activo.

    Una cosa a verificar es si los brokers de Kafka son realmente accesibles desde el contenedor del Exportador de Kafka. Puede hacer esto ejecutando docker-compose exec kafka-exporter bash para ingresar al contenedor y luego intentar hacer ping a los brokers de Kafka usando ping kafka.

    Si puede hacer ping a los brokers de Kafka, entonces el problema podría estar en la configuración del Exportador de Kafka. La bandera --kafka.server=kafka:9092 en la sección command del archivo docker-compose.yml parece ser correcta, asumiendo que kafka es el nombre de host del contenedor del broker de Kafka.

    Un par de otras cosas que puede intentar son:

    • Aumentar la política de reinicio (restart) del contenedor del Exportador de Kafka a restart: always. Esto asegurará que el contenedor siga intentando iniciar incluso si falla inicialmente.
    • Agregar un retraso antes de iniciar el contenedor del Exportador de Kafka usando restart: on-failure:5 u otro mecanismo similar de retraso. Esto dará a Kafka más tiempo para iniciar completamente antes de que el Exportador de Kafka intente conectarse a él.

Comments are closed.