# Kafka UI-tools

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

![](/files/mDYSEsTAEWqwFsozPich)

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

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

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

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

![](/files/eB0Xpy8LEpKc1b8p1Qv3)

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

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.

![](/files/k9FyRxKRe3kvH8w8Cnt5)

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

### 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), реестрами схем, подключениями и т. д.

![](/files/z2x8Qr8eIkLrYv6YLXV7)

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

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 и разобраться в том, что на самом деле происходит в этих кластерах.

![](/files/nq3PEHuZ5wb1OHGROxgj)

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

Самое большое преимущество 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 и групп подписчиков. Инструмент облегчает отображение и обработку информации о брокерах, топиках, разделах и подписчиках. Он также позволяет просматривать сообщения.

![](/files/tK1iTb6f3bMuGXWSxKKY)

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

По большому счету, 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).

![](/files/K0BWDQcWmkdUgWVFg49n)

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

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 в качестве отдельной услуги также не способно повысить привлекательность этого инструмента в глазах пользователей.

![](/files/HMUvs6wSqNVI1TVZ3jfz)

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

Впрочем, интерфейс 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 в рамках различных эксплуатационных задач.

![](/files/VAlBoN0OgZec0aZRIZeI)

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

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 и может похвастаться большим разнообразием функций.

![](/files/9yePwvbhNFXm2KSIB7tG)

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

При этом он, пожалуй, проигрывает другим 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/) (перевод).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://book.konstantinsecurity.com/readme/architect/message-broker/kafka/kafka-ui-tools.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
