Опыт внедрения UI CMAK для управления кластерами Kafka

3ebdddf801392c65c4aa0431785ba309.jpg

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

Что такое CMAK?

CMAK (Cluster Manager for Apache Kafka) — это бесплатная утилита для управления кластерами Apache Kafka, которая предоставляет удобный веб-интерфейс и позволяет управлять топиками и партициями, а также отслеживать производительность кластера.

Задача

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

Решение

Однако, в начале не было ясности относительно выбора подходящего пользовательского интерфейса. Помимо СМАК мы также рассматривали несколько других инструментов для управления кластером Kafka. Среди альтернативных вариантов были Kafdrop и Confluent CC.

Пользовательский интерфейс Kafdrop не обладает полным набором функций: он предоставляет базовые возможности для управления Kafka, но его функционал ограничен в сравнении со CMAK.

Confluent Control Center, разработанный командой Confluent, является еще одним вариантом для управления кластером Kafka. Он предоставляет широкий набор функций и графических отчетов для мониторинга производительности и администрирования. Однако, он предлагается как платное решение.

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

Отсутствие необходимости включения специалистов по администрированию делают CMAK оптимальным выбором для нашей задачи, удовлетворяющим всем требованиям и позволяющим сэкономить ресурсы и время при управлении кластером Kafka.

Установка

Для установки CMAK понадобятся OpenJDK 11, git, unzip.

Клонируем репозиторий с исходным кодом CMAK:

$ git clone https://github.com/yahoo/CMAK.git

Корректируем файл конфигурации:

$ sudo nano CMAK/conf/application.conf

Указываем адрес сервера с Zookeeper:

cmak.zkhosts=»:2181»

Переходим в директорию CMAK:

$ cd CMAK

И запускаем сборку кода:

$ ./sbt clean dist

Сборка занимает некоторое время. В итоге появится директория target/universal. Перейдем в нее и распакуем архив:

$ cd target/universal

$ sudo unzip cmak-3.0.0.5.zip

Запустим исполняемый файл CMAK:

$ cd cmak-3.0.0.5

$ sudo bin/cmak

Сервис по умолчанию работает на порту 9000. В браузере переходим по адресу :9000.

467b27525fbae1977d5dbab39aec51be.png

Далее необходимо добавить существующий кластер. Для этого нажимаем «Cluster» и в выпадающем меню выбираем «Add Cluster»:

38131cbe58400ea9d82ff7a103e436b9.png

В настройках указываем имя кластера и адрес Zookeeper. Увеличиваем значения минимум до 2 у следующих параметров (иначе не получится добавить кластер): brokerViewThreadPoolSize, offsetCacheThreadPoolSize и kafkaAdminClientThreadPoolSize.

Для более подробной информации о топиках ставим галочки у Enable JMX Polling, Poll Consumer Information, Enable Active Offset Cache.

Сохраняем:

bf2bff38418533b74d0c03bd5b11213c.png

Появился кластер:

ae5441a3811b82ca4705dd266e7e7cc9.png

Теперь можно смотреть информацию и управлять топиками из графического интерфейса:

372a6d40d8b528c039f7368e88fc9246.png

Также доступны метрики и статистика по партициям:

3416b8e81346455b366468568226966d.png

Можно посмотреть консьюмеров:

a7fd9279998ee180789d13837282453e.png

Попробуем создать топик:

5c1d639a57258a5f5267c992faaf2a54.png

Проверяем в консоли — топик создался:

d835d36302386dde6540a72e8a0d38fb.png

Одним из недостатков CMAK является отсутствие возможности просматривать содержимое топиков. Это было бы полезной функцией, позволяющей пользователям быстро оценить данные в топиках и облегчить диагностику проблем, однако CMAK — это скорее инструмент для управления. Также отсутствие режима «Read-only mode» не позволяет установить различные уровни прав доступа между администратором и заказчиком.

Заключение

Одной из основных целей было предоставление возможности управления кластером Kafka через веб-интерфейс. Эта цель была успешно достигнута с помощью внедрения СМАК, что позволило упростить работу для специалистов и предоставить возможность управления кластером Kafka для заказчика. Кроме того, важное требование заказчика — возможность создания топиков без необходимости прямого подключения к Kafka. Эта функциональность реализована также в СМАК, что позволяет легко создавать, а также проверять настройки топиков.

© Habrahabr.ru