如何通过docker-compose将telegraf连接到kafka

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

我有docker zookeeper,kafka,telegraf,Influxdb,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 / inputs / kafka_consumer是不是正确的docker-compose文件?

之后我需要从kafka获取信息,当我的测试服务发送一些东西,我怎么做或者如何正确谷歌它?

docker apache-kafka docker-compose telegraf
1个回答
0
投票

你的撰写文件看起来很好

默认情况下,我相信telegraf配置看起来像这样

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

您需要使用kafka:9092并相应地更新主题。而且你还需要更新潮流输出,也可能远离localhost

您还可以使用Kafka Connect将kafka消息写入InfluxDB

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