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

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

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

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

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

  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.

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

AKHQ

  • GitHub: github.com/tchiotludo/akhq

  • Лицензия: Apache 2.

  • Доступность: бесплатно.

  • Плюсы: множество полезных функций.

  • Минусы: плохой интерфейс; отсутствует интеграция с KSQL; частичная поддержка реестра схем данных Protobuf.

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

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

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.

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

* Примечание

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

  • GitHub: github.com/redpanda-data/console

  • Лицензия: BSL.

  • Доступность: частично платный.

  • Плюсы: хороший интерфейс.

  • Минусы: не хватает многих функций.

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

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

Самое большое преимущество 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

  • Лицензия: Apache 2.

  • Доступность: бесплатно.

  • Плюсы: активное сообщество.

  • Минусы: средний интерфейс; не хватает множества функций.

Kafdrop — веб-интерфейс для просмотра топиков Apache Kafka и групп подписчиков. Инструмент облегчает отображение и обработку информации о брокерах, топиках, разделах и подписчиках. Он также позволяет просматривать сообщения.

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

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

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

UI for Apache Kafka

  • GitHub: github.com/provectus/kafka-ui

  • Лицензия: Apache 2.

  • Доступность: бесплатно.

  • Плюсы: хороший интерфейс; гибкость; множество функций.

  • Минусы: пока ещё в разработке.

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

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

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

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

  • Просмотр сообщений в формате Avro, Protobuf, JSON и plain text.

  • Просмотр групп подписчиков — просмотр фиксированных смещений по разделам, а также совокупного лага и лага по разделам.

  • Настраиваемая аутентификация — защита системы с помощью функций Github/Gitlab/Google OAuth 2.0.

  • Просмотр брокеров Kafka — просмотр распределения топиков и разделов, а также статуса контроллера.

  • Просмотр топиков Kafka — просмотр числа разделов, статуса репликации и кастомной конфигурации.

  • Управление несколькими кластерами — централизованный мониторинг и управление всеми кластерами.

  • Динамическая конфигурация топиков — создание и конфигурирование новых топиков.

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

Lenses

  • GitHub: github.com/lensesio

  • Лицензия: BSL.

  • Доступность: бесплатно.

  • Плюсы: отлично подойдёт для fast-kafka-dev и локальной разработки.

  • Минусы: не хватает многих функций.

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

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

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

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

CMAK

  • GitHub: github.com/yahoo/CMAK

  • Лицензия: Apache 2.

  • Доступность: бесплатно.

  • Плюсы: отлично подходит для переназначения разделов; Ops-инструмент.

  • Минусы: ограничен эксплуатационными задачами.

CMAK (ранее известный как Kafka Manager) — комплексный инструмент для управления кластерами Apache Kafka в рамках различных эксплуатационных задач.

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

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

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

Confluent CC

  • GitHub: github.com/confluentinc

  • Лицензия: платная.

  • Доступность: платная.

  • Плюсы: входит в Confluent Enterprise.

  • Минусы: входит в Confluent Enterprise.

Веб-интерфейс Confluent Control Center позволяет разработчикам и операторам управлять кластерами Apache Kafka, проверять их работоспособность, управлять сообщениями, топиками и реестрами схем. Его также можно использовать для разработки и выполнения запросов ksqlDB.

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

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

Conduktor

  • GitHub: github.com/conduktor

  • Лицензия: платная (но есть бесплатный вариант для локальной работы).

  • Плюсы: множество возможностей.

  • Минусы: десктопный инструмент.

Conduktor — десктопный клиент для Apache Kafka с удобным интерфейсом для работы в экосистеме Kafka. Есть версии для Windows, Linux и Mac. Conduktor поддерживает все типы кластеров Apache Kafka и может похвастаться большим разнообразием функций.

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

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

Выводы

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

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

P.S.

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

Комментарии (6)


  1. sintez
    15.09.2022 10:09

    Мне лично больше всего нравится почему-то не упомянутый тут десктопный KafkaTool


    1. ZeroBot-Dot
      15.09.2022 10:35

      Помимо создания/удаления топиков, что у него с просмотром сообщений которые в protobuf?


      1. sintez
        15.09.2022 12:58

        У нас были только Json и avro, так что про поотобаф не скажу


  1. RPG18
    15.09.2022 13:00
    +1

    Минусы: десктопный инструмент.

    Это его достоинство. Грепаешь продовые топики, выгружаешь локально на диск и никому не мешаешь. Не нужно никаких докеров, виртуалок с подкладыванием proto файлов, скачал и запустил.


  1. flov
    15.09.2022 16:11

    Перебрал много бесплатных клиентов для kafka + kafka connect, больше всего понравился RedPanda console. До этого пользовался conduktor, но цена в месяц кусается.

    https://github.com/redpanda-data/console


  1. rhrn
    16.09.2022 00:53

    Для простого использования мне понравился текстовый интерфейс kaskade
    https://github.com/sauljabin/kaskade