Kafka CLI
最近仕事で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
...