
Apache Kafka — популярная система потоковой обработки событий, предназначенная для сбора, хранения и передачи больших объемов данных в режиме реального времени. Она используется тысячами компаний и разработчиков для построения высокопроизводительных, отказоустойчивых и масштабируемых решений в области аналитики данных, IoT, микросервисов и многих других сфер.
Однако у Kafka есть один важный нюанс: «из коробки» у нее нет графического интерфейса (GUI), что затрудняет понимание текущего состояния кластера, диагностику неполадок и эффективное управление инфраструктурой и самим сервисом, особенно для начинающих пользователей или тех, кому сложно взаимодействовать с консольными инструментами.
Поэтому для комфортной работы с Apache Kafka активно используются специализированные UI-инструменты. Например, ранее для облачного сервиса Managed Kafka от VK Cloud мы использовали Provectus Kafka UI, но в рамках развития сервиса решили заменить UI на более современный и функциональный.
Меня зовут Никита Суровегин. Я продукт-менеджер в команде VK Data Platform, VK Tech. В этой статье я расскажу, с чего мы стартовали, какие инструменты проанализировали и что выбрали в итоге.
О Managed Kafka и Kafka UI
VK Data Platform — универсальная платформа для end‑to‑end работы с большими объемами данных, в рамках которой пользователи могут использовать широкий стек инструментов. В VK Data Platform пользователям доступен и Managed Kafka — сервис, созданный на основе Apache Kafka с открытым исходным кодом. Managed Kafka имеет:
поддержку новейших версий: 4.1.0;
современную архитектуру (KRaft, без ZooKeeper);
высокую отказоустойчивость и производительность;
встроенные мониторинг и логирование;
Kafka Bridge, который предоставляет HTTP REST API для взаимодействия с Kafka кластером;
поддержку горизонтального и вертикального масштабирования;
Mirror Maker — встроенную утилиту, которая копирует данные (топики, конфигурации и смещения) между разными кластерами Kafka;
MultiAZ режим, который реализует распределение брокеров по разным зонам доступности (ЦОДам);
возможность настройки брокеров и read-only режим, а также другие преимущества;
возможность управления пользователями и настройки безопасного соединения.
С его помощью, например, можно развернуть и настроить отказоустойчивый кластер, а также автоматизировать:
развертывание инфраструктуры под экземпляр сервиса;
распределение кластеров Kafka согласно лучшим практикам;
масштабирование ресурсов экземпляра за счет Kubernetes.
Но, как я уже упоминал ранее, Kafka сама по себе не имеет графического интерфейса — управлять сервисом предполагается через командную строку или с помощью клиентских API, что значительно усложняет управление топиками (создание, настройку, управление), мониторинг состояния кластера, просмотр сообщений, управление consumer groups, настройку ACL и безопасности. Именно поэтому для своей реализации Managed Kafka мы исторически поставляли вместе с сервисом сторонний UI-инструмент — Provectus Kafka UI. Это бесплатный веб-интерфейс с открытым исходным кодом для удобного управления кластерами Apache Kafka и их мониторинга, который:
поддерживает разные версии Kafka;
предоставляет детальную статистику;
позволяет создавать и удалять топики, настраивать реплики и партиции, делая эксплуатацию Kafka проще и эффективнее.
Но после нескольких лет работы с Provectus Kafka UI в рамках развития Managed Kafka мы решили отказаться от этого инструмента. Причин было несколько:
В сентябре 2023 года разработка Provectus Kafka UI была приостановлена — последний релиз (v0.7.2) состоялся в апреле 2024 года. Остановлен и выпуск обновлений безопасности.
В Provectus Kafka UI не предусмотрена поддержка Kafka 4.0 (выпущена в марте 2025), что в перспективе могло тормозить развитие нашего сервиса.
На рынке появилось много UI-инструментов, которые потенциально могли предоставить нам больше возможностей.
В связи с этим мы начали исследование рынка в поисках нового UI для своего сервиса.
Наши требования и анализ альтернатив
При выборе UI-инструмента на замену Provectus Kafka UI нам было важно, чтобы новое решение соответствовало определенному набору требований. Например, чтобы оно:
активно поддерживалось командой разработки;
поддерживало актуальные версии Apache Kafka;
имело функционал, сопоставимый с предыдущим UI (Provectus);
имело бесплатную версию и не только.
Исходя из этого, мы начали анализ инструментов, доступных на рынке.
Примечание: Я подготовил готовые docker-compose файлы для быстрого развертывания тестовых стендов каждого UI. Все конфигурации доступны в публичном репозитории.
AKHQ
AKHQ (ранее KafkaHQ) — графический интерфейс с открытым исходным кодом для поиска и исследования данных в Kafka.
AKHQ работает с Kafka от 0.8.0 до 4.0+, поддерживает KRaft.
Интерфейс написан на Java с применением фреймворка Micronaut, фронтенд реализован стандартными средствами HTML и JavaScript. Для запуска доступны Docker, Kubernetes или самостоятельная сборка через JAR-файл.
AKHQ позволяет просматривать, создавать и удалять топики, анализировать потребительские группы, управлять разрешениями (ACL), искать и фильтровать сообщения в текстовом формате, а также JSON, Avro, Protobuf. Особое внимание уделено поддержке схемы данных (Schema Registry) и интеграциям с Kafka Connect.
Главное достоинство AKHQ — возможность детально настроить права доступа к различным компонентам Kafka. Так, можно задать гранулированные правила доступа (fine-grained), паттерн-тематику (pattern-based topics), интегрироваться с корпоративными каталогами пользователей (LDAP) и пользоваться разными способами аутентификации (например, Basic Auth, OAuth 2.0, AWS IAM).
С возможностями AKHQ легко ознакомиться на тестовом стенде. Так, его развертывание сводится к нескольким операциям:
curl -o docker-compose.yml https://raw.githubusercontent.com/ncuho/docker-composes-for-KafkaUI/main/AKHQ/docker-compose.yml docker-compose up -d # Открыть: http://localhost:8080
В результате будут развернуты:
Apache Kafka + Zookeeper;
Schema Registry;
Kafka Connect;
AKHQ с полной RBAC-конфигурацией.
Вместе с тем нашей команде AKHQ не подошел по нескольким причинам. Среди них:
устаревший дизайн интерфейса;
сложная конфигурация RBAC;
проблемы с производительностью при большом объеме данных;
некоторый дискомфорт в плане юзабилити.
Поэтому от этого инструмента мы отказались.
Kafdrop
Kafdrop — легковесный веб-интерфейс для просмотра топиков и consumer groups в Kafka. В соответствии с философией минимализма оно спроектировано таким образом, чтобы быть быстрым и простым в установке и одновременно предоставлять все необходимые функции.
Инструмент поддерживает версии Kafka начиная с 0.11.0 до 3.7 (последняя протестированная). Подготовка к переходу на Kafka 4.0+ находится в стадии тестирования.
Проект активно поддерживается командой Obsidian Dynamics. Как и большинство современных Open-Source-решений, Kafdrop распространяется под лицензией Apache 2.0.
С помощью Kafdrop можно:
просматривать список брокеров, структуру партиций и статус контроллера;
смотреть, сортировать и читать сообщения в любом формате (JSON, Avro, Protobuf, обычный текст);
исследовать положения офсетов, выявлять задержки и анализировать распределение сообщений;
устанавливать, изменять ACL-правила и не только.
Развертывание тестового стенда Kafdrop довольно простое:
curl -o docker-compose.yml https://raw.githubusercontent.com/ncuho/docker-composes-for-KafkaUI/main/Kafdrop/docker-compose.yml docker-compose up -d # Открыть: http://localhost:9000
В результате получаем развернутые:
Apache Kafka + Zookeeper;
Kafdrop.
Главным преимуществом Kafdrop являются низкие аппаратные требования и высокая производительность: малый Docker-образ (около 100 Мб) и умеренное потребление памяти (не превышает 500 Мб) гарантируют быструю установку и экономичное использование ресурсов.
Вместе с тем Kafdrop рассчитан на минимальные задачи — с ним не получится глубоко вмешиваться в конфигурацию Kafka-кластера, изменять свойства топиков или полноценно управлять группами потребителей. Кроме того, здесь отсутствует полнофункциональная система управления правами доступа (RBAC), а интерфейс выглядит немного архаично из-за используемых библиотек Bootstrap 3/4 и jQuery. Поэтому нам этот UI-инструмент не подошел.
Kouncil
Kouncil — относительно новый UI-инструмент, делающий ставку на современный дизайн и удобство использования. Уникальная особенность решения — табличное представление для JSON data.
Инструмент поддерживает версии Kafka начиная с 1.0.0 и протестирован на версии 3.6.1.
Kouncil предоставляет большой пул возможностей, среди которых:
табличное представление для JSON: показывает структурированные данные в виде таблицы с возможностью сортировки, фильтрации и экспорта;
управление топиками: просмотр, создание и частичное редактирование топиков;
мониторинг групп потребителей: анализ состояний и задержек consumer group;
работа с несколькими кластерами: единая точка управления всеми Kafka-кластерами.
Примечательно, что решение можно протестировать прямо в браузере без предварительной установки — всё можно найти по ссылке.
Одна из основных проблем Kouncil — неактивная разработка. Так, обновления выпускаются редко, из-за чего есть риск, что патчи обнаруженных уязвимостей или проблем будут доезжать очень долго. Помимо этого, для инструмента довольно мало документации, особенно в аспектах безопасности и масштабирования. Поэтому и Kouncil нам не подошел.
Redpanda Console
Redpanda Console — веб-интерфейс от компании Redpanda, позиционируемый как Kafka Web UI for Developers с акцентом на лучший user experience. Поддерживает версии Kafka начиная с 1.0.0 и протестирован на версиях 4.0+, есть поддержка KRaft.
Ключевой особенностью Redpanda Console является удобный просмотр сообщений (message browser), позволяющий быстро фильтровать и анализировать разные форматы данных, включая JSON, Avro, Protobuf, XML и бинарные структуры. Управление топиками и группами потребителей осуществляется прямо из интерфейса, а встроенная интеграция schema registry облегчает работу со схемой данных.
Безопасность обеспечивается системой аутентификации и прав доступа (RBAC), особенно развитой в коммерческой версии (решение доступно в двух версиях: бесплатной Community Edition и платной Enterprise Edition), где предусмотрены возможности интеграции с системами единого входа (SSO) и логирование (audit logs).
Инструмент активно разрабатывается, имеет большое комьюнити.
Redpanda Console довольно просто развернуть для теста:
curl -o docker-compose.yml "https://raw.githubusercontent.com/ncuho/docker-composes-for-KafkaUI/main/Redpanda%20Console/docker-compose.yml" docker-compose up -d # Открыть: http://localhost:8080
Будут развернуты:
Apache Kafka + Zookeeper;
Redpanda Console.
Однако у Redpanda Console есть нюансы, которые стоит учитывать:
используемая лицензия BSL ограничивает свободу выбора для тех, кому необходим открытый исходный код;
часть важных возможностей доступна только в коммерческой версии, что влечет дополнительные затраты;
некоторые функции лучше всего работают в сочетании с инфраструктурой Redpanda, что может создавать сложности при интеграции в существующую среду Kafka.
Соответственно, ничего из вышеупомянутого в полной мере не позволяло нам закрыть текущие потребности.
Примечание: Помимо упомянутых бесплатных Open-Source-инструментов, в качестве UI для Apache Kafka на рынке доступны и проприетарные решения, в том числе в формате отдельных десктопных приложений. Выделю несколько:
Conduktor — платформа корпоративного уровня, которая позиционируется как Streaming Data Hub для enterprise-компаний.
Offset Explorer — desktop GUI-приложение для управления кластерами Apache Kafka и их использования. В отличие от всех рассмотренных выше веб-интерфейсов, это настольное приложение, работающее на Windows, Linux и MacOS.
Lenses — enterprise DataOps-платформа для Apache Kafka, которая позиционируется как AI-Assisted Engineering for Data Streaming.
Под наши критерии они не подошли, поэтому для применения с Managed Kafka мы их не рассматривали. Но в целом это весьма функциональные инструменты, которые могут быть полезны. Поэтому, если в вашей компании бизнес-требования отличаются от наших, можете смело обратить на них внимание.
Kafbat UI
Наряду с анализом других инструментов мы также изучали Kafbat UI.
Kafbat UI — открытый веб-интерфейс для мониторинга кластера Apache Kafka и управления им, созданный группой разработчиков, ранее работавших над Provectus UI. Когда компания Provectus прекратила развитие своего инструмента в 2023 году, группа энтузиастов из числа команды приняла решение продолжить работать над ним самостоятельно и выпустила первый релиз собственного продукта в 2024 году.
Основной целью разработчиков стало сохранение функциональности и удобства оригинального интерфейса с добавлением новых возможностей и доработок, необходимых современным пользователям. Сегодня Kafbat UI поддерживает практически весь спектр существующих версий Apache Kafka — от устаревших 2.х до современной 4.1.0+, причем сообщество активно готовится к поддержке будущих версий.
То есть Kafbat UI фактически стал обновленным наследником Provectus UI, что потенциально позволяло нам не только выполнить все исходные требования, но и перейти на новое решение максимально бесшовно.
Kafbat UI выделяется среди аналогов рядом важных преимуществ.
Современный и чистый интерфейс. Интерфейс Kafbat UI спроектирован с учетом опыта предыдущей разработки Provectus. Он обладает простой и удобной навигацией, поддерживает темную тему и отлично адаптируется под любые устройства, обеспечивая комфортную работу вне зависимости от размера экрана.
Активная разработка и поддержка. Команда постоянно выпускает обновления, устраняет уязвимости (CVE), оперативно реагирует на пожелания сообщества и добавляет новые полезные функции. К тому же обеспечивается полная совместимость с новыми версиями Kafka.
Богатый функционал для управления топиками. Управление топиками Kafka играет ключевую роль в обеспечении эффективности инфраструктуры, и Kafbat UI предоставляет все нужные для этого функции. Топики создаются и настраиваются в реальном времени с возможностью выбора числа партиций, фактора репликации, типов сжатия и очищения. Подробная статистика о каждом разделе позволяет видеть общее количество партиций, готовность реплик, статус лидерства и прочие важные показатели. Через мастер настройки легко осуществляется начальная установка и оптимизация кластера. Доступны опции глубокого контроля всех параметров топика, таких как retention time, compression type, cleanup policy и другие, позволяющие индивидуально подбирать нужные настройки.
Мониторинг и наблюдаемость. Kafbat UI дает возможность подробно отслеживать состояние Kafka. Так, панель мониторинга отображает важные метрики, а встроенные графики позволяют визуально оценить загрузку брокеров, назначение партиций и состояние групп потребителей. Особое внимание уделено отслеживанию отставания и задержек в обработке сообщений, что критично для высоконагруженных систем.
Эффективный браузер сообщений. Kafbat UI позволяет удобно просматривать содержимое сообщений в разных форматах (JSON, plain text, Avro), анализировать потоки данных в реальном времени (live tail) и применять фильтры Common Expression Language (CEL) для точного отбора нужных записей. Поисковая система ускоряет процесс нахождения нужной информации среди множества сообщений.
Управление несколькими кластерами. Благодаря централизованной панели управления можно одновременно мониторить и контролировать сразу несколько кластеров Kafka. Быстрый доступ ко всем ресурсам повышает эффективность администрирования и снижает вероятность ошибок.
Безопасность и управление доступом. В Kafbat UI реализована система role-based access control (RBAC), позволяющая назначать точные роли и ограничения. Помимо стандартных методов аутентификации, возможна интеграция с провайдерами OAuth 2.0 и корпоративными системами LDAP. Также предусмотрена поддержка облачных IAM-платформ, позволяющих организовать безопасный и прозрачный процесс идентификации. Дополнительно применяется автоматическое маскирование конфиденциальных данных.
Интеграция с экосистемой. Kafbat UI легко интегрируется с такими компонентами, как Schema Registry, Kafka Connect и различными облаками. Пользователи также могут создавать собственные плагины для обработки данных, повышая универсальность инструмента.
Инновационные функции. У Kafbat UI есть ряд передовых возможностей. Например, MCP Server (Model Context Protocol Server) обеспечивает масштабируемое взаимодействие с агентскими системами, Smart Filters значительно облегчают обработку больших объемов данных, а Enhanced Metrics Polling ускоряет получение статистики.
Протестировать Kafbat UI на тестовом стенде тоже довольно просто:
curl -o docker-compose.yml https://raw.githubusercontent.com/ncuho/docker-composes-for-KafkaUI/main/Kafbat/docker-compose.yml docker-compose up -d # Открыть: http://localhost:8080
Будут развернуты:
Apache Kafka + Zookeeper
Schema Registry;
Kafka Connect;
KSQL DB;
Kafbat UI.
Таким образом, в сравнении с другими рассмотренными вариантами (в том числе с упомянутыми платными и десктопными инструментами) Kafbat UI стал для нас наиболее приоритетным.

Kafbat UI можно применять для разных задач. Например, инструмент позволяет:
быстро создавать топики для новых микросервисов;
мониторить производительность топиков в реальном времени;
управлять consumer lag;
настраивать retention политик;
осуществлять отладку проблем с сообщениями через live tail.
Таким образом, оценив все возможности и преимущества, для Managed Kafka от VK Data Platform на замену Provectus Kafka UI мы решили выбрать именно Kafbat UI.
Новый UI полностью интегрируется с создаваемым кластером Managed Kafka, доступ к которому можно получить через личный кабинет экземпляра сервиса.
Что в итоге
Проведенный нами анализ показал, что рынок Kafka UI действительно изобилует множеством интересных предложений, каждое из которых отличается своими сильными сторонами. Причем найти оптимальное решение можно практически под любые сценарии использования и бизнес-потребности. Например, в нашем случае таким стал Kafbat UI, который способен полноценно заменить Provectus Kafka UI и предоставить нам современные возможности.
Вместе с тем мы в VK Data Platform стараемся не останавливаться. Поэтому интеграция Kafbat UI — это промежуточный этап в развитии нашей платформы, поскольку мы активно работаем над тем, чтобы перенести весь функционал управления Kafka непосредственно в личный кабинет VK Data Platform. То есть мы хотим превратить личный кабинет в единую точку управления, где клиенты смогут полностью контролировать Kafka без посредников.
Подробнее о нашем решении для работы с потоками данных Managed Kafka и модернизации управляемых сервисов, а также архитектуре VK Data Platform обязательно расскажем в следующих статьях.

