Прим. перев.: автор этого материала — Герман Осин, старший архитектор решений  в Provectus. Осин сравнивает функциональность восьми UI-инструментов, которые помогают решить проблемы наблюдаемости и мониторинга Apache Kafka. Стоит отметить, что обзор скорее вводный. Он будет полезен для первоначального знакомства с возможностями решений.  Какие инструменты лучше всего подходят для наблюдения за потоками данных, отслеживания ключевых метрик и устранения неполадок в Apache Kafka? Apache Kafka — это Open Source-платформа для распределенной потоковой передачи событий. Ее задача — организация  высокопроизводительных пайплайнов данных, потоковая аналитика, интеграция данных. Кроме того, она незаменима при работе с критически важными приложениями. Тысячи компаний по всему миру используют Apache Kafka, в том числе 80% компаний из списка Fortune 100. Apache Kafka — незаменимый инструмент для обработки данных в реальном времени и отслеживания активности приложений. К сожалению, мониторинг кластеров Apache Kafka и управление ими — непростая задача. Решить ее помогают сторонние коммерческие или Open Source-инструменты с графическим интерфейсом и дополнительными функциями в области администрирования и мониторинга. В этой статье представлен краткий обзор таких инструментов: AKHQ Kowl Kafdrop UI for Apache Kafka Lenses CMAK Confluent CC Conduktor Но сначала давайте немного углубимся в проблемы наблюдаемости и мониторинга в Apache Kafka. Apache Kafka — ключевой сервис для любой организации, работающей с данными. Но работа с ванильными кластерами Apache Kafka — вещь довольно мучительная. Кластеры Kafka сложны в настройке, масштабировании и поддержке. Кроме того, они не защищены от ошибок и трудны для наблюдения, что может приводить к критическим проблемам с потоками данных, мешать инженерам отслеживать и решать эти проблемы. Снизить число ошибок и обезопасить кластеры Apache Kafka можно с помощью эффективного observability-компонента. Повышение наблюдаемости: помогает гораздо быстрее устранять проблемы с потоками данных;  повышает эффективность совместной работы инженеров благодаря единому пониманию потоков данных, управляемых с помощью метаданных; облегчает поиск конфиденциальных данных в потоках и помогает соблюдать требования безопасности; позволяет быстрее и эффективнее очищать данные. Меньше некорректных dashboard'ов — больше счастливых клиентов. Таким образом, UI-инструменты для мониторинга упрощают и ускоряют разработку, сводят к минимуму время решения проблем и облегчают процесс отчетности. Тем самым повышается операционная эффективность внутри инженерных команд и между ними. Сперва проведем краткое сравнение инструментов для мониторинга кластеров Apache Kafka. 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. Оригинальная статья вышла в сентябре 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 стал бы явным лидером нашего сравнения. GitHub: github.com/obsidiandynamics/kafdrop Лицензия: Apache 2. Доступность: бесплатно. Плюсы: активное сообщество. Минусы: средний интерфейс; не хватает множества функций. Kafdrop — веб-интерфейс для просмотра топиков Apache Kafka и групп подписчиков. Инструмент облегчает отображение и обработку информации о брокерах, топиках, разделах и подписчиках. Он также позволяет просматривать сообщения. По большому счету, Kafdrop — инструмент среднего уровня. Его пользовательский интерфейс не впечатляет, и ему не хватает многих функций. Да, он позволяет просматривать брокеры Kafka и группы подписчиков, работать с топиками, смотреть сообщения и отслеживать списки ACL. Также Kafdrop поддерживает Azure Event Hubs. Но как насчет других полезных функций, таких как tailing, реестры схем или read-only режим? У Kafdrop высокая оценка на GitHub, и он вполне может пригодиться тем, кто ищет толковое и отзывчивое сообщество. 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. GitHub: github.com/lensesio Лицензия: BSL. Доступность: бесплатно. Плюсы: отлично подойдёт для fast-kafka-dev и локальной разработки. Минусы: не хватает многих функций. Lenses позиционирует себя как DataOps-платформу для работы в реальном времени и операций с данными для Apache Kafka и Kubernetes. Он делает данные более функциональными и защищенными и устраняет их разрозненность (т. н. data silos). Lenses отлично подходит для потоковой аналитики в реальном времени. При всем при этом его можно назвать довольно средним инструментом. Имеет смысл использовать Lenses с fast-kafka-dev и для локальной разработки, при этом в нем отсутствуют некоторые функции. Управления несколькими кластерами, просмотра сообщений и поддержки Avro просто недостаточно для многих задач. Управление Kafka Connect в качестве отдельной услуги также не способно повысить привлекательность этого инструмента в глазах пользователей. Впрочем, интерфейс Lenses способен удовлетворить пользователя, которого не смущает отсутствие многих функций. Это поистине потрясающий инструмент, отполированный и интуитивно понятный. GitHub: github.com/yahoo/CMAK Лицензия: Apache 2. Доступность: бесплатно. Плюсы: отлично подходит для переназначения разделов; Ops-инструмент. Минусы: ограничен эксплуатационными задачами. CMAK (ранее известный как Kafka Manager) — комплексный инструмент для управления кластерами Apache Kafka в рамках различных эксплуатационных задач. CMAK может похвастаться хорошим и довольно понятным пользовательским интерфейсом. Хотя его возможности довольно ограничены, управление несколькими кластерами, динамическая конфигурация топиков, создание разделов и смена реплик покроют большинство типичных задач. По большей части CMAK — это прежде всего Ops-инструмент. Кроме того, он отлично зарекомендовал себя в деле перераспределения разделов (partition reassignment). GitHub: github.com/confluentinc Лицензия: платная. Доступность: платная. Плюсы: входит в Confluent Enterprise. Минусы: входит в Confluent Enterprise. Веб-интерфейс Confluent Control Center позволяет разработчикам и операторам управлять кластерами Apache Kafka, проверять их работоспособность, управлять сообщениями, топиками и реестрами схем. Его также можно использовать для разработки и выполнения запросов ksqlDB. Важно, что Confluent CC входит в состав Confluent Enterprise и доступен только по подписке. Он предлагает множество функций и хороший пользовательский интерфейс. Confluent CC отлично подходит для тех, кого устраивает зависимость от экосистемы Confluent. В целом Confluent CC — это больше, чем просто инструмент для работы с топиками. Его возможности обширны и работают отлично, без каких-либо сбоев. 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 и управления ими. Как обычно бывает в таких случаях, в сообществе наверняка найдутся желающие что-то добавить к этом списку. Читайте также в нашем блоге: «Знакомство с Debezium — CDC для Apache Kafka»;  «Практические истории из наших SRE-будней. Часть 2 — Kafka и переменные от Docker’a в K8s»; «Определяем подходящий размер для кластера Kafka в Kubernetes» (перевод).   Technical writer, Linux-user