Undefined Title

Kafka CLI

2019-01-18

最近仕事でkafkaに接続してoffset Nの値を調べるとか、それを複数の環境でやることが多かった。 毎回証明書とかtopic名とかを調べて実行するのがめんどくさくなったので、一つの設定ファイルにprofileとして複数環境を設定しておけるコマンドをgolangで書いた。

https://github.com/tmtk75/kafka-cli

kafkaのclientにはShopify/sarama、設定にはspf13/viperを使った。kafkaのconsumer groupへの接続にはbsm/sarama-clusterを。

$ kafka-cli --offset 1234 commit
...
$ kafka-cli --topic foo --group bar consume
...

offsetをコミットして、指定したtopicとconsumer groupからconsumeする、だけ。 中身見るには十分。

こんな感じで複数profieを~/.config/kafka-cli.yamlに書いておけば--profileで設定を切り替えられるので複数環境で便利。

profile: dev
profiles:
  dev:
    tls-insecure: true
    topic: your-topic-name
    hosts:
      - kafka-1.example.com:9093
      - kafka-2.example.com:9093
    ca-cert: |
      -----BEGIN CERTIFICATE-----
      ...
  prod:
    tls-insecure: false
    ...