Как подключить телеграф к кафке в docker-compose - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть в докере зоокейпер, кафка, телеграф, influenxdb, postgres и другие

version: '2.1'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000
    healthcheck:
      test: echo stat | nc localhost 2181
      interval: 10s
      timeout: 10s
      retries: 3
  kafka:
    image: wurstmeister/kafka:0.11.0.0
    ports:
      - "9092:9092"
    environment:
      OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_BROKER_ID: 3
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
      LOG4J_LOGGER_KAFKA_AUTHORIZER_LOGGER: TRACE
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_CREATE_TOPICS: "testservise:1:1,testServiceInQueue:1:1,anotherTestServiceInQueue:1:1,storageServiceInQueue:1:1"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      zookeeper:
        condition: service_healthy

  influxdb:
    image: influxdb:latest
    container_name: influxdb
    ports:
      - "8083:8083"
      - "8086:8086"
      - "8090:8090"

  telegraf:
    image: telegraf:latest
    restart: always
    container_name: telegraf
    hostname: localhost
    links:
      - influxdb
    volumes:
      - ${PWD}/.telegraf/telegraf.conf

Прежде всего, я делаю это telegraf -sample-config -input-filter kafka_consumer -output-filter influxdb > telegraf.conf

Причина в необходимости использовать telegraf / plugins / input / kafka_consumer Это правильный файл docker-compose?

После этого мне нужно получить информацию от kafka, когда мой тестовый сервис отправит что-нибудь, как я могу это сделать или как правильно настроить Google?

1 Ответ

0 голосов
/ 27 апреля 2019

Ваш составной файл выглядит нормально

По умолчанию, я считаю, что телеграфный конфиг выглядит так

[[inputs.kafka_consumer]]
    ## kafka servers
    brokers = ["localhost:9092"]
    ## topic(s) to consume
    topics = ["telegraf"]

Вам нужно будет использовать kafka:9092 и соответственно обновлять темы.Также вам необходимо обновить выходной поток, вероятно, вдали от localhost

Вы также можете использовать Kafka Connect для записи сообщений kafka в InfluxDB

...