Мониторинг метрик 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 по адресу вашего ClickStack (например, http://localhost:8080)
- При необходимости создайте учетную запись или войдите в систему
- Перейдите в раздел Team Settings → API Keys
- Скопируйте свой ключ API для приёма данных

- Задайте её как переменную окружения:
Проверьте, что JMX включен для Kafka
Убедитесь, что JMX включен на брокерах Kafka. Для развертываний Docker:
Для развертываний без Docker задайте эти параметры при запуске Kafka:
Проверьте доступность JMX:
Развертывание JMX Metric Gatherer с помощью 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- OTLP HTTP endpoint (используйте имя хоста вашего 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 с реалистичными шаблонами):
Набор данных включает реалистичные шаблоны для одноброкерного кластера Kafka для e‑commerce:
- 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 для ознакомления с паттернами продакшн-развертывания и примерами конфигурации коллектора.