Комментарий пользователя
Мы активно используем Kafka. Чтобы посмотреть топики или прочитать пару сообщений для отладки, приходится писать длинные скрипты с кучей параметров. Есть ли какая-то удобная консольная утилита, чтобы управлять кластером Kafka без боли?
Ответ специалиста
Привет, Олег! Для решения этой проблемы отлично подойдет утилита kafkactl. По уровню удобства и логике работы она напоминает всем известный kubectl, но заточена именно под задачи администрирования Apache Kafka. Основная идея — предоставить единообразный интерфейс для типовых операций и упростить управление подключениями к кластерам Kafka.
Все настройки подключения к кластерам описываются один раз в конфигурационном файле — например, ~/.config/kafkactl/config.yml (путь зависит от платформы). После этого инструмент сам считывает все необходимые параметры, и не нужно передавать адреса брокеров или параметры аутентификации (SASL/SSL) в командах.
Если кластеров несколько — например, dev, stage и prod, — они просто прописываются в этом же конфигурационном файле в виде так называемых контекстов, а переключение между ними делается одной короткой командой:
kafkactl config use-context prod
Утилита умеет удобно форматировать данные, выводить их в виде аккуратных таблиц в консоли или отдавать в JSON/YAML для дальнейшего парсинга через jq.
Синтаксис максимально лаконичный и привычный.
Вывести список всех топиков:
kafkactl get topics
Прочитать пять последних сообщений из нужного топика для отладки:
kafkactl consume my-topic --tail 5
Посмотреть информацию о конкретной консьюмер-группе — например, чтобы проверить лаг:
kafkactl get consumer-groups my-group
Создать новый топик с тремя партициями:
kafkactl create topic new-topic --partitions 3
Утилита написана на Go, поставляется в виде одного бинарного файла и поддерживает удобное автодополнение команд в Bash и других популярных оболочках.
У нас есть подробная статья: «kafkactl — другой взгляд на работу с Kafka». Для сравнения в ней также приведены отличия kafkactl от некоторых других подобных утилит.