Мониторинг метрик Kafka с помощью ClickStack
В этом руководстве показано, как отслеживать метрики производительности Apache Kafka с помощью ClickStack, используя OpenTelemetry JMX Metric Gatherer. Вы узнаете, как:
- Включить JMX на брокерах Kafka и настроить JMX Metric Gatherer
- Отправлять метрики Kafka в ClickStack через OTLP
- Использовать готовую панель мониторинга для визуализации производительности Kafka (пропускная способность брокеров, отставание потребителей, состояние партиций, задержка запросов)
Доступен демонстрационный набор данных с примерами метрик, если вы хотите протестировать интеграцию перед настройкой боевого кластера Kafka.
Требуемое время: 10–15 минут
Интеграция с существующим развертыванием Kafka
Мониторьте существующее развертывание Kafka, запустив контейнер OpenTelemetry JMX Metric Gatherer для сбора метрик и их отправки в ClickStack по OTLP.
Если вы хотите сначала протестировать эту интеграцию, не изменяя существующее развертывание, перейдите к разделу с демонстрационным набором данных.
Предварительные требования
- Запущенный экземпляр ClickStack
- Развернутая Kafka версии 2.0 или новее с включенным JMX
- Сетевой доступ между ClickStack и Kafka (порт JMX 9999, порт Kafka 9092)
- JAR-файл OpenTelemetry JMX Metric Gatherer (инструкции по скачиванию см. ниже)
Получите API-ключ ClickStack
JMX Metric Gatherer отправляет данные на OTLP-эндпоинт ClickStack, который требует аутентификации.
- Откройте HyperDX по URL-адресу ClickStack (например, http://localhost:8080)
- Создайте учетную запись или, при необходимости, войдите в систему
- Перейдите в раздел Team Settings → API Keys
- Скопируйте ключ API для приёма данных

- Задайте его в переменной окружения:
Проверьте, что JMX включен для Kafka
Убедитесь, что JMX включен на брокерах Kafka. Для развертываний Docker:
Для развертываний без Docker задайте эти параметры при запуске Kafka:
Проверьте доступность JMX:
Развертывание сборщика метрик JMX с помощью Docker Compose
Этот пример демонстрирует полную настройку с Kafka, JMX Metric Gatherer и ClickStack. Укажите имена сервисов и конечные точки в соответствии с вашим существующим развертыванием:
Ключевые параметры конфигурации:
service:jmx:rmi:///jndi/rmi://kafka:9999/jmxrmi- URL подключения JMX (используйте имя хоста вашего кластера Kafka)otel.jmx.target.system=kafka- Включает метрики Kafkahttp://clickstack:4318— HTTP-эндпоинт OTLP (используйте имя хоста ClickStack)authorization=\${CLICKSTACK_API_KEY}— ключ API для аутентификации (обязателен)service.name=kafka,kafka.broker.id=broker-0- атрибуты ресурса, используемые для фильтрации10000- Интервал сбора данных в миллисекундах (10 секунд)
Проверка метрик в HyperDX
Войдите в HyperDX и убедитесь, что метрики поступают:
- Перейдите в раздел Chart Explorer
- Найдите
kafka.message.countилиkafka.partition.count - Метрики должны появляться каждые 10 секунд
Ключевые метрики для проверки:
kafka.message.count- Общее количество обработанных сообщенийkafka.partition.count- Общее количество партицийkafka.partition.under_replicated- в здоровом кластере это значение должно быть равно 0kafka.network.io- Пропускная способность сетиkafka.request.time.*- Процентили времени обработки запросов
Чтобы создать активность и получить больше метрик:
При запуске клиентских команд Kafka (kafka-topics, kafka-console-producer и т. д.) внутри контейнера Kafka используйте префикс unset JMX_PORT &&, чтобы избежать конфликтов портов JMX.
Демонстрационный набор данных
Для пользователей, которые хотят протестировать интеграцию метрик Kafka перед настройкой продуктивных систем, мы предоставляем заранее сгенерированный набор данных с реалистичными паттернами метрик Kafka.
Загрузите пример набора метрик
Скачайте заранее сгенерированные файлы метрик (29 часов метрик Kafka с реалистичными паттернами):
Набор данных включает реалистичные паттерны для e-commerce кластера Kafka с одним брокером:
- 06:00-08:00: Утренний всплеск — резкий рост трафика относительно ночного базового уровня
- 10:00-10:15: Молниеносная распродажа — резкий всплеск до 3.5× обычного трафика
- 11:30: Событие развертывания — 12× всплеск лага потребителя с недореплицированными партициями
- 14:00-15:30: Пиковый период покупок — устойчиво высокий трафик на уровне 2.8× от базового
- 17:00-17:30: После работы — вторичный пик трафика
- 18:45: Перебалансировка потребителей — 6× всплеск лага во время перебалансировки
- 20:00-22:00: Вечернее снижение — резкое снижение до ночного уровня
Проверка метрик в HyperDX
После загрузки самый быстрый способ просмотреть метрики — использовать преднастроенный дашборд.
Перейдите к разделу Дашборды и визуализация, чтобы импортировать дашборд и просмотреть все метрики Kafka одновременно.
HyperDX отображает отметки времени в часовом поясе, настроенном в браузере. Демонстрационные данные охватывают период 2025-11-05 16:00:00 - 2025-11-06 16:00:00 (UTC). Установите диапазон времени на 2025-11-04 16:00:00 - 2025-11-07 16:00:00, чтобы гарантированно увидеть демонстрационные метрики независимо от вашего местоположения. После того как вы увидите метрики, вы можете сузить диапазон до 24 часов для более наглядной визуализации.
Панели и визуализация
Чтобы помочь вам начать мониторинг Kafka с помощью ClickStack, мы предоставляем основные визуализации для метрик Kafka.
Импорт готовой панели
- Откройте HyperDX и перейдите в раздел Dashboards
- Нажмите Import Dashboard в правом верхнем углу под значком с многоточием

- Загрузите файл
kafka-metrics-dashboard.jsonи нажмите Finish Import

Просмотр панели
Панель будет создана со всеми предварительно настроенными визуализациями:

Для демонстрационного набора данных установите диапазон времени 2025-11-05 16:00:00 - 2025-11-06 16:00:00 (UTC) (при необходимости скорректируйте его в соответствии с вашим часовым поясом). В импортируемой панели по умолчанию не задан диапазон времени.
Устранение неполадок
Метрики не отображаются в HyperDX
Убедитесь, что API-ключ задан и передаётся в контейнер:
Если параметр не задан, задайте его и перезапустите:
Проверьте, доходят ли метрики до ClickHouse:
Если вы не видите результатов, проверьте логи экспортера JMX:
Сгенерируйте активность в Kafka, чтобы заполнить метрики:
Ошибки авторизации
Если вы видите Authorization failed или 401 Unauthorized:
- Проверьте ключ API в интерфейсе HyperDX (Settings → API Keys → Ingestion API Key (ключ API для приёма данных))
- Повторно выполните экспорт и перезапустите:
Конфликты портов при выполнении команд клиента Kafka
При выполнении команд клиента Kafka внутри контейнера Kafka вы можете увидеть:
Добавьте к каждой команде префикс unset JMX_PORT &&:
Проблемы с сетевым подключением
Если в логах экспортера JMX появляется сообщение Connection refused:
Убедитесь, что все контейнеры находятся в одной сети Docker:
Проверка подключения:
Переход в продакшн
В этом руководстве метрики отправляются напрямую из JMX Metric Gatherer в OTLP-эндпоинт ClickStack, что хорошо подходит для тестирования и небольших развертываний.
Для продакшн-сред разверните собственный OpenTelemetry Collector в режиме агента для получения метрик от JMX Exporter и их пересылки в ClickStack. Это обеспечивает пакетную обработку, устойчивость и централизованное управление конфигурацией.
См. раздел Приём данных с помощью OpenTelemetry для ознакомления с паттернами продакшн-развертывания и примерами конфигурации коллектора.