> For the complete documentation index, see [llms.txt](https://book.konstantinsecurity.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.konstantinsecurity.com/readme/architect/message-broker/kafka/kafka-ui-tools.md).

# Kafka UI-tools

<https://habr.com/ru/companies/flant/articles/688190/>

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-c833e72946c97de8cac460ecf87f5bc5bcb9738d%2F60c61c846be57a5670c3a2be65118007.png?alt=media)

***Прим. перев.**: автор этого материала — Герман Осин, старший архитектор решений в Provectus. Осин сравнивает функциональность восьми UI-инструментов, которые помогают решить проблемы наблюдаемости и мониторинга Apache Kafka. Стоит отметить, что обзор скорее вводный. Он будет полезен для первоначального знакомства с возможностями решений.*

Какие инструменты лучше всего подходят для наблюдения за потоками данных, отслеживания ключевых метрик и устранения неполадок в Apache Kafka?

Apache Kafka — это Open Source-платформа для распределенной потоковой передачи событий. Ее задача — организация высокопроизводительных пайплайнов данных, потоковая аналитика, интеграция данных. Кроме того, она незаменима при работе с критически важными приложениями. Тысячи компаний по всему миру используют Apache Kafka, в том числе 80% компаний из списка Fortune 100.

Apache Kafka — незаменимый инструмент для обработки данных в реальном времени и отслеживания активности приложений. К сожалению, мониторинг кластеров Apache Kafka и управление ими — непростая задача. Решить ее помогают сторонние коммерческие или Open Source-инструменты с графическим интерфейсом и дополнительными функциями в области администрирования и мониторинга.

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-295899964024b309a5cf7762050a16ec90efe6a3%2F7fa36e35ce73aec4efd3fbdd110c9b22.png?alt=media)

В этой статье представлен краткий обзор таких инструментов:

1. AKHQ
2. Kowl
3. Kafdrop
4. UI for Apache Kafka
5. Lenses
6. CMAK
7. Confluent CC
8. Conduktor

Но сначала давайте немного углубимся в проблемы наблюдаемости и мониторинга в Apache Kafka.

## Наблюдаемость и мониторинг в Apache Kafka

Apache Kafka — ключевой сервис для любой организации, работающей с данными. Но работа с ванильными кластерами Apache Kafka — вещь довольно мучительная. Кластеры Kafka сложны в настройке, масштабировании и поддержке. Кроме того, они не защищены от ошибок и трудны для наблюдения, что может приводить к критическим проблемам с потоками данных, мешать инженерам отслеживать и решать эти проблемы.

Снизить число ошибок и обезопасить кластеры Apache Kafka можно с помощью эффективного observability-компонента. Повышение наблюдаемости:

* помогает гораздо быстрее устранять проблемы с потоками данных;
* повышает эффективность совместной работы инженеров благодаря единому пониманию потоков данных, управляемых с помощью метаданных;
* облегчает поиск конфиденциальных данных в потоках и помогает соблюдать требования безопасности;
* позволяет быстрее и эффективнее очищать данные. Меньше некорректных dashboard'ов — больше счастливых клиентов.

Таким образом, UI-инструменты для мониторинга упрощают и ускоряют разработку, сводят к минимуму время решения проблем и облегчают процесс отчетности. Тем самым повышается операционная эффективность внутри инженерных команд и между ними.

## 8 лучших UI-инструментов мониторинга для кластеров Apache Kafka

Сперва проведем краткое сравнение инструментов для мониторинга кластеров Apache Kafka.

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-c9754feb32bf67dd7962955451bd847f8e46dbe6%2F42624d330ab5090e600eceb07ecb9e8a.png?alt=media)

Таблица от автора статьи

### AKHQ

* GitHub: [github.com/tchiotludo/akhq](https://github.com/tchiotludo/akhq)
* Лицензия: Apache 2.
* Доступность: бесплатно.
* Плюсы: множество полезных функций.
* Минусы: плохой интерфейс; отсутствует интеграция с KSQL; частичная поддержка реестра схем данных Protobuf.

[AKHQ](https://akhq.io/) (ранее известный как KafkaHQ) — это графический интерфейс Kafka для Apache Kafka, позволяющий инженерам искать и исследовать данные в унифицированной консоли. С помощью AKHQ разработчики и DevOps-инженеры могут управлять топиками, данными топиков, группами подписчиков (consumers), реестрами схем, подключениями и т. д.

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-e81fec15aed1fd9984efed63ffea47643e022344%2F46d7a54e58700c0034d94bfb54ec1e90.png?alt=media)

Скриншот автора статьи

AKHQ предлагает множество полезных функций, включая управление несколькими кластерами, просмотр сообщений, tailing в реальном времени, аутентификацию, авторизацию, режим только для чтения, реестры схем и управление Kafka Connect. Он поддерживает Avro и совместим с LDAP и RBAC.

Увы, пользовательский интерфейс AKHQ нельзя назвать удобным. Пользователю определенно потребуется время, чтобы привыкнуть к нему.

Кроме того, AKHQ не интегрируется с KSQL и обеспечивает лишь частичную поддержку реестра схем Protobuf. Он также не работает с динамической конфигурацией топиков, увеличением разделов (partition), сменой реплик, топологиями Kafka Streams или визуализацией метрик JMX.

Желающие встроить AKHQ в стек для потоковой передачи данных на AWS должны обратить внимание на то, что он поддерживает [AWS Identity and Access Management (IAM) для Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html).

### Kowl (с недавнего времени — Redpanda Console\*)

* Примечание

*Оригинальная статья вышла в сентябре 2021 года. В апреле 2022-го CloudHut, создатели Kowl, стали частью Redpanda.*

* GitHub: [github.com/redpanda-data/console](https://github.com/redpanda-data/console)
* Лицензия: BSL.
* Доступность: частично платный.
* Плюсы: хороший интерфейс.
* Минусы: не хватает многих функций.

Kowl помогает разработчикам проанализировать сообщения в кластерах Apache Kafka и разобраться в том, что на самом деле происходит в этих кластерах.

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-4d238b803022b812aed2240908b37aec1f825882%2Fabd568af5c626521bc200ccd6a1cc7f7.png?alt=media)

Скриншот автора статьи

Самое большое преимущество Kowl — потрясающий интерфейс. Он удобен, интуитивен и довольно прост в использовании. Однако у него не так много функций.

Например, Kowl предлагает просмотр сообщений, tailing в реальном времени, поддерживает Protobuf, Avro и Amazon MSK IAM. Однако различные методы входа в систему (Google, GitHub, Okta) и RBAC с групповой синхронизацией доступны только для платного плана.

Кроме того, в Kowl отсутствуют такие функции, как управление несколькими кластерами, динамическая конфигурация топиков, увеличение разделов, смена реплик, управление Kafka Connect, реестр схем, интеграция с KSQL, топологии Kafka Streams, режим только для чтения, а также графики для метрик JMX. С подобной функциональностью Kowl стал бы явным лидером нашего сравнения.

### Kafdrop

* GitHub: [github.com/obsidiandynamics/kafdrop](https://github.com/obsidiandynamics/kafdrop)
* Лицензия: Apache 2.
* Доступность: бесплатно.
* Плюсы: активное сообщество.
* Минусы: средний интерфейс; не хватает множества функций.

[Kafdrop](https://github.com/obsidiandynamics/kafdrop) — веб-интерфейс для просмотра топиков Apache Kafka и групп подписчиков. Инструмент облегчает отображение и обработку информации о брокерах, топиках, разделах и подписчиках. Он также позволяет просматривать сообщения.

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-c43dea1c761c22022fe4f71394e425ddbe842f1a%2F49cac04e80c824d46416982480740ada.png?alt=media)

Скриншот автора статьи

По большому счету, Kafdrop — инструмент среднего уровня. Его пользовательский интерфейс не впечатляет, и ему не хватает многих функций. Да, он позволяет просматривать брокеры Kafka и группы подписчиков, работать с топиками, смотреть сообщения и отслеживать списки ACL. Также Kafdrop поддерживает Azure Event Hubs. Но как насчет других полезных функций, таких как tailing, реестры схем или read-only режим?

У Kafdrop высокая оценка на GitHub, и он вполне может пригодиться тем, кто ищет толковое и отзывчивое сообщество.

### UI for Apache Kafka

* GitHub: [github.com/provectus/kafka-ui](https://github.com/provectus/kafka-ui)
* Лицензия: Apache 2.
* Доступность: бесплатно.
* Плюсы: хороший интерфейс; гибкость; множество функций.
* Минусы: пока ещё в разработке.

[UI for Apache Kafka](https://github.com/provectus/kafka-ui) — это веб-сервис с открытым кодом и простым и понятным пользовательским интерфейсом для работы с кластерами Apache Kafka. Он позволяет разработчикам отслеживать потоки, находить и устранять проблемы с данными. При этом у UI for Apache Kafka оптимальная производительность.

Лаконичная панель инструментов упрощает отслеживание ключевых показателей кластеров Apache Kafka, в том числе для брокеров, топиков, разделов, производителей (producers) и потребителей (consumers).

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-aa7036035fc28e9bbcbdeaa8daf49b76c4d2dadc%2F1d19cb5f6b28cd96ee5bee54fca08fdd.png?alt=media)

Скриншот автора статьи

UI for Apache Kafka выделяется своим удобным интерфейсом, бесплатностью и огромным количеством функций. Он может похвастаться такими возможностями:

* **Просмотр сообщений** в формате Avro, Protobuf, JSON и plain text.
* **Просмотр групп подписчиков** — просмотр фиксированных смещений по разделам, а также совокупного лага и лага по разделам.
* **Настраиваемая аутентификация** — защита системы с помощью функций Github/Gitlab/Google OAuth 2.0.
* **Просмотр брокеров Kafka** — просмотр распределения топиков и разделов, а также статуса контроллера.
* **Просмотр топиков Kafka** — просмотр числа разделов, статуса репликации и кастомной конфигурации.
* **Управление несколькими кластерами** — централизованный мониторинг и управление всеми кластерами.
* **Динамическая конфигурация топиков** — создание и конфигурирование новых топиков.

[Provectus](https://provectus.com/), консалтинговая компания в области ИИ, разрабатывающая UI for Apache Kafka, в скором времени намеревается добавить дополнительные функции, в том числе tailing в реальном времени, интеграцию с KSQL, топологии Kafka Streams, а также визуализацию метрик и диаграмм JMX.

### Lenses

* GitHub: [github.com/lensesio](https://github.com/lensesio)
* Лицензия: BSL.
* Доступность: бесплатно.
* Плюсы: отлично подойдёт для fast-kafka-dev и локальной разработки.
* Минусы: не хватает многих функций.

[Lenses](https://lenses.io/) позиционирует себя как DataOps-платформу для работы в реальном времени и операций с данными для Apache Kafka и Kubernetes. Он делает данные более функциональными и защищенными и устраняет их разрозненность (т. н. data silos). Lenses отлично подходит для потоковой аналитики в реальном времени.

При всем при этом его можно назвать довольно средним инструментом. Имеет смысл использовать Lenses с fast-kafka-dev и для локальной разработки, при этом в нем отсутствуют некоторые функции. Управления несколькими кластерами, просмотра сообщений и поддержки Avro просто недостаточно для многих задач. Управление Kafka Connect в качестве отдельной услуги также не способно повысить привлекательность этого инструмента в глазах пользователей.

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-506a69ebf36e714b2651918d4192d7eb2b9a25c2%2F2132843343bf52b8fabf43fc77820525.png?alt=media)

Скриншот автора статьи

Впрочем, интерфейс Lenses способен удовлетворить пользователя, которого не смущает отсутствие многих функций. Это поистине потрясающий инструмент, отполированный и интуитивно понятный.

### CMAK

* GitHub: [github.com/yahoo/CMAK](https://github.com/yahoo/CMAK)
* Лицензия: Apache 2.
* Доступность: бесплатно.
* Плюсы: отлично подходит для переназначения разделов; Ops-инструмент.
* Минусы: ограничен эксплуатационными задачами.

[CMAK](https://github.com/yahoo/CMAK) (ранее известный как Kafka Manager) — комплексный инструмент для управления кластерами Apache Kafka в рамках различных эксплуатационных задач.

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-c986f49ba59bd9daa702c870a36bcf1f8756ff07%2Fcf1656cfa829e688130b7c7f364e2a18.png?alt=media)

Скриншот автора статьи

CMAK может похвастаться хорошим и довольно понятным пользовательским интерфейсом. Хотя его возможности довольно ограничены, управление несколькими кластерами, динамическая конфигурация топиков, создание разделов и смена реплик покроют большинство типичных задач.

По большей части CMAK — это прежде всего Ops-инструмент. Кроме того, он отлично зарекомендовал себя в деле перераспределения разделов (partition reassignment).

### Confluent CC

* GitHub: [github.com/confluentinc](https://github.com/confluentinc)
* Лицензия: платная.
* Доступность: платная.
* Плюсы: входит в Confluent Enterprise.
* Минусы: входит в Confluent Enterprise.

Веб-интерфейс [Confluent Control Center](https://www.confluent.io/product/confluent-platform/gui-driven-management-and-monitoring/) позволяет разработчикам и операторам управлять кластерами Apache Kafka, проверять их работоспособность, управлять сообщениями, топиками и реестрами схем. Его также можно использовать для разработки и выполнения запросов ksqlDB.

Важно, что Confluent CC входит в состав Confluent Enterprise и доступен только по подписке. Он предлагает множество функций и хороший пользовательский интерфейс. Confluent CC отлично подходит для тех, кого устраивает зависимость от экосистемы Confluent.

В целом Confluent CC — это больше, чем просто инструмент для работы с топиками. Его возможности обширны и работают отлично, без каких-либо сбоев.

### Conduktor

* GitHub: [github.com/conduktor](https://github.com/conduktor)
* Лицензия: платная (но есть бесплатный вариант для локальной работы).
* Плюсы: множество возможностей.
* Минусы: десктопный инструмент.

[Conduktor](https://www.conduktor.io/) — десктопный клиент для Apache Kafka с удобным интерфейсом для работы в экосистеме Kafka. Есть версии для Windows, Linux и Mac. Conduktor поддерживает все типы кластеров Apache Kafka и может похвастаться большим разнообразием функций.

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-ef2ee12e39d04d29738682de9ff4bf1dc68deafe%2F8d8bd137fd2f70f45c116a4815ecc05c.png?alt=media)

Скриншот автора статьи

При этом он, пожалуй, проигрывает другим UI-инструментам из списка из-за своей «десктопности». Если это вас не смущает, Conduktor может стать реальной альтернативой Confluent CC.

## Выводы

Использование правильных UI-инструментов для мониторинга и управления кластерами Apache Kafka — ключ к их «здоровью». Простой и удобный пользовательский интерфейс помогает эффективно наблюдать за потоками данных, отслеживать метрики и устранять неполадки, не прибегая к помощи десятков других CLI-инструментов. В результате устраняется часть тонких мест и повышается эффективность.

Эта статья отражает субъективный взгляд автора на основные UI-инструменты для мониторинга кластерами в Apache Kafka и управления ими. Как обычно бывает в таких случаях, в сообществе наверняка найдутся желающие что-то добавить к этом списку.

## P.S.

Читайте также в нашем блоге:

* [«Знакомство с Debezium — CDC для Apache Kafka»](https://habr.com/ru/company/flant/blog/523510/);
* [«Практические истории из наших SRE-будней. Часть 2 — Kafka и переменные от Docker’a в K8s»](https://habr.com/ru/company/flant/blog/510486/);
* [«Определяем подходящий размер для кластера Kafka в Kubernetes»](https://habr.com/ru/company/flant/blog/488920/) (перевод).
