Недавно мы рассказывали про 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
Ближайшая дата курса
9 декабря, 2024
Продолжительность
24 ак.часов
Стоимость обучения
72 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 получал от них сообщения и метрики.
В будущем команда разработчиков планирует добавить в 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].
В перспективе разработчики Monokl планируют реализовать систему оповещений, настраиваемой в зависимости от потребностей пользователя, а также обеспечить совместимость с системами Kafka, развернутыми с различными конфигурациями и в разных контейнерных средах [4]. О другом полезном инструменте для работы с Apache Kafka читайте в нашей новой статье.
Apache Kafka для инженеров данных
Код курса
DEVKI
Ближайшая дата курса
20 января, 2025
Продолжительность
24 ак.часов
Стоимость обучения
72 000 руб.
Узнайте больше про администрирование и эксплуатацию Apache Kafka для разработки распределенных приложений потоковой аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:
Источники
- https://medium.com/@jorge.e.espinoza.57/flowkat-aggregate-messages-and-metrics-from-your-kafka-cluster-in-a-cozy-application-a1662a34040
- https://github.com/oslabs-beta/flowkat
- https://www.confluent.io/blog/getting-started-with-kafkajs/
- https://medium.com/@lagnum22/monokl-kafka-visualization-made-easy-538a6eb4c729
- https://github.com/oslabs-beta/monokl