FlowKat и Monokl: еще пара средств мониторинга за кластером Apache Kafka на базе KafkaJS

Автор Категория ,
FlowKat и Monokl: еще пара средств мониторинга за кластером Apache Kafka на базе KafkaJS

Недавно мы рассказывали про KafkaJS – клиент Apache Kafka для Node.js, который отличается небольшим размером и простым развертыванием с удобным API. Сегодня рассмотрим еще пару полезных инструментов визуализации данных о Kafka-кластере на базе KafkaJS и Prometheus. Читайте далее, что такое FlowKat и Monokl, а также зачем они нужны дата-инженеру, разработчику распределенных приложений и администратору кластера Apache Kafka.

Зачем вам FlowKat: мониторинг состояния Kafka-кластера с KafkaJS и Prometheus

В настоящее время Apache Kafka становится стандартом де-факто для реализации микросервисной архитектуры и интеграции информационных систем в парадигме потоковой передачи событий. Благодаря высокой пропускной способности обработки потоков данных в реальном времени, кластер этой распределенной системы может обрабатывать миллионы сообщений всего за несколько секунд. Однако, на практике работа с таким огромным объемом данных является достаточно сложной. В частности, разработчики распределенных приложений и дата-инженеры сталкиваются с тем, что отслеживание различных топиков и сообщений даже в одном брокере становится обременительным. Поэтому различные средства мониторинга состояния кластера Apache Kafka становятся особенно востребованными. Например, здесь мы писали о популярных инструментах мониторинга для администратора кластера. Еще одним легковесным решением этого класса является недавно появившийся open-source продукт – FlowKat, который агрегирует сообщения и показатели кластера Kafka в удобном приложении [1].

Будучи свободно распространяемым проектом под лицензией MIT, FlowKat позволяет дата-инженерам, разработчикам и администраторам этой распределенной системы потоковой передачи событий получить следующую информацию [2]:

  • сведения обо всех узлах кластера;
  • список топиков, которые отслеживает конкретный брокер;
  • сообщения от брокера по его адресу.

FlowKat использует KafkaJS для агрегирования сообщений и систему мониторинга с базой данных временных рядов Prometheus для построения графиков показателей Kafka-кластера. Впрочем, если Prometheus не подключен к Kafka, FlowKat все равно может доставлять скомпилированные сообщения благодаря KafkaJS [1].

Администрирование кластера Kafka

Код курса
KAFKA
Ближайшая дата курса
1 декабря, 2021
Длительность обучения
24 ак.часов
Стоимость обучения
54 000 руб.

Напомним, KafkaJS – это реализация клиента Apache Kafka на чистом JavaScript без каких-либо зависимостей в рамках платформы Node.js, которая основана на высокопроизводительном JavaScript-движке V8 от Google. KafkaJS поддерживает следующие функции платформы потоковой передачи событий [3]:

  • продюсер;
  • группы потребителей с паузой, возобновлением и поиском;
  • транзакционная поддержка продюсеров и потребителей;
  • пакетирование сообщений;
  • заголовки сообщений;
  • транзакции;
  • GZIP-сжатие, а также Snappy, LZ4 и ZSTD с помощью подключаемых кодеков;
  • реализация криптографических протоколов Plain, SSL и SASL_SSL;
  • механизмы аутентификации SCRAM-SHA-256, SCRAM-SHA-512 и AWS IAM;
  • клиентский API администратора (Admin client), про который мы рассказывали здесь;
  • реестр схем Confluent Schema Registry.

Возможности KafkaJS обеспечивают следующие основные функции FlowKat [2]:

  • чтение сообщений из топиков Kafka;
  • простой графический интерфейс для отслеживания важных показателей кластера, а также системы Prometheus.

Чтобы установить FlowKat, его следует загрузить из репозитория на Github и выполнить следующие команды запуска менеджера пакетов npm в корневой папке:

  • npm install
  • npm run watch
  • npm run package-winили npm run package-linux

После установки можно открыть приложение FlowKat и ввести в GUi-интерфейсе адрес порта для отслеживания брокера Kafka и экземпляра Prometheus (при его наличии), чтобы FlowKat получал от них сообщения и метрики.

администрирование Kafka-кластера, мониторинг состояния Apache Kafka, администратор кластера Apache Kafka курсы обучение
Интерфейс FlowKat для мониторинга состояния Kafka-кластера

В будущем команда разработчиков планирует добавить в FowKat следующие возможности:

  • улучшение системы кэширования сообщений для повышения производительности;
  • разрешение одновременных подключений к нескольким брокерам и обслуживание сообщений от них по порядку;
  • улучшение взаимодействия с пользователем на вкладке «Метрики»;
  • создание интуитивно понятного дэшборда просмотра важных метрик;
  • онлайн-перезагрузка сообщений из топиков Kafka.

Monokl для визуализации

Еще одним новым инструментом визуализации состояния Kafka-кластера является Monokl – open-source приложение, которое работает на всех платформах. Сейчас для его корректной работы требуется кластер Kafka, настроенный с помощью JMX Exporter и подключенный к серверу Prometheus для расширенного захвата метрик [4].

Будучи написанном на JavaScript, Momokl является кроссплатформенным приложением, которое можно загрузить с Github или клонировать репозиторий и запустить команды npm-менеджера пакетов в терминале [5]:

  • npm install
  • npm run watch
  • npm start (в отдельном терминале)

Запустив приложение Monokl, пользователь может подключить свой кластер, введя номер порта, который прослушивает сервер Prometheus. После этого Monokl проверяет, что действующий кластер Kafka запущен и работает. Затем пользователь получит доступ к различным показателям кластера в панели управления. Все показатели сгруппированы по категориям [4]:

  • брокеры;
  • потребители;
  • продюсеры;
  • сетевые метрики

При переключении между категориями по вкладкам GUI, все данные обновляются, отражая актуальное поведение работающего кластера Kafka. Примечательно, что Monokl не только отображает точные значения важных метрик, но и показывает тенденции их развития, независимо от работоспособности системы [5].

администрирование Kafka-кластера, мониторинг состояния Apache Kafka
Интерфейс приложения Monokl

В перспективе разработчики Monokl планируют реализовать систему оповещений, настраиваемой в зависимости от потребностей пользователя, а также обеспечить совместимость с системами Kafka, развернутыми с различными конфигурациями и в разных контейнерных средах [4].

Apache Kafka для разработчиков

Код курса
DEVKI
Ближайшая дата курса
24 января, 2022
Длительность обучения
32 ак.часов
Стоимость обучения
72 000 руб.

Узнайте больше про администрирование и эксплуатацию Apache Kafka для разработки распределенных приложений потоковой аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Источники

  1. https://medium.com/@jorge.e.espinoza.57/flowkat-aggregate-messages-and-metrics-from-your-kafka-cluster-in-a-cozy-application-a1662a34040
  2. https://github.com/oslabs-beta/flowkat
  3. https://www.confluent.io/blog/getting-started-with-kafkajs/
  4. https://medium.com/@lagnum22/monokl-kafka-visualization-made-easy-538a6eb4c729
  5. https://github.com/oslabs-beta/monokl