Мониторинг логов Kafka с помощью ClickStack
Собирайте и визуализируйте логи брокера Kafka (в формате Log4j) в ClickStack с помощью приёмника OTel filelog. Включает демо-набор данных и готовую панель мониторинга.
Интеграция с существующей Kafka
В этом разделе описано, как настроить существующую установку Kafka для отправки логов брокера в ClickStack, изменив конфигурацию OTel collector ClickStack. Если вы хотите протестировать интеграцию логов Kafka перед настройкой собственной среды, воспользуйтесь нашей предварительно настроенной средой и примерами данных в разделе "демо-набор данных".
Предварительные требования
- Запущенный экземпляр ClickStack
- Существующая установка Kafka (версия 2.0 или новее)
- Доступ к файлам логов Kafka (
server.log,controller.logи т. д.)
Проверка конфигурации логирования Kafka
Kafka использует Log4j и записывает логи в каталог, указанный системным свойством kafka.logs.dir или переменной среды LOG_DIR. Проверьте расположение файла лога:
Основные лог-файлы Kafka:
server.log: Общие логи брокера (запуск, подключения, репликация, ошибки)controller.log: События, связанные с контроллером (выбор лидера, переназначение партиций)state-change.log: Изменения состояния партиции и реплики
Стандартный шаблон Log4j в Kafka генерирует строки следующего вида:
Для развёртываний Kafka на основе Docker (например, confluentinc/cp-kafka) конфигурация Log4j по умолчанию включает только консольный appender — файловый appender отсутствует, поэтому логи записываются только в stdout. Чтобы использовать приёмник filelog, необходимо перенаправить логи в файл: добавив файловый appender в log4j.properties или перенаправив stdout через pipe (например, | tee /var/log/kafka/server.log).
Создание пользовательской конфигурации OTel collector для Kafka
ClickStack позволяет расширить базовую конфигурацию OpenTelemetry Collector, подключив пользовательский файл конфигурации и задав переменную окружения. Пользовательская конфигурация объединяется с базовой конфигурацией, управляемой HyperDX через OpAMP.
Создайте файл с именем kafka-logs-monitoring.yaml со следующей конфигурацией:
- В пользовательской конфигурации вы определяете только новые приёмники и пайплайны. Процессоры (
memory_limiter,transform,batch) и экспортёры (clickhouse) уже определены в базовой конфигурации ClickStack — вы просто ссылаетесь на них по имени. - Конфигурация
multilineгарантирует, что stack trace захватывается как одна запись лога. - Эта конфигурация использует
start_at: beginning, чтобы при запуске коллектора читать все существующие логи. Для развертываний в режиме промышленной эксплуатации измените значение наstart_at: end, чтобы избежать повторного приёма логов при перезапусках коллектора.
Настройка ClickStack для загрузки пользовательской конфигурации
Чтобы включить пользовательскую конфигурацию коллектора в существующем развертывании ClickStack, необходимо:
- Смонтируйте файл пользовательской конфигурации в
/etc/otelcol-contrib/custom.config.yaml - Задайте переменную окружения
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml - Смонтируйте каталог логов Kafka, чтобы коллектор мог их читать
- Docker Compose
- Docker Run (All-in-One Image)
Обновите конфигурацию развертывания ClickStack:
Если вы используете all-in-one image с Docker, выполните команду:
Убедитесь, что коллектор ClickStack имеет необходимые права доступа для чтения лог-файлов Kafka. В промышленной эксплуатации используйте монтирование только для чтения (:ro) и соблюдайте принцип минимальных привилегий.
Демо-набор данных
Проверьте интеграцию логов Kafka на заранее подготовленном тестовом датасете, прежде чем настраивать системы для промышленной эксплуатации.
Создайте тестовую конфигурацию коллектора
Создайте файл с именем kafka-logs-demo.yaml со следующей конфигурацией:
Запустите ClickStack с демо-конфигурацией
Запустите ClickStack с демо-логами и этой конфигурацией:
Проверьте логи в HyperDX
После запуска ClickStack:
- Откройте HyperDX и войдите в свою учётную запись (при необходимости сначала создайте её)
- Перейдите в представление Search и установите источник
Logs - Установите временной диапазон, включающий 2026-03-09 00:00:00 - 2026-03-10 00:00:00 (UTC)


Панели мониторинга и визуализация
Импортируйте готовую панель мониторинга
- Откройте HyperDX и перейдите в раздел Dashboards.
- Нажмите "Import Dashboard" в правом верхнем углу в меню с многоточием.

- Загрузите файл kafka-logs-dashboard.json и нажмите finish import.

Панель мониторинга будет создана со всеми заранее настроенными визуализациями
Для демо-набора данных установите временной диапазон, включающий 2026-03-09 00:00:00 - 2026-03-10 00:00:00 (UTC).

Устранение неполадок
Убедитесь, что в итоговой конфигурации присутствует ваш приёмник filelog:
Проверьте коллектор на наличие ошибок:
Проверьте, что формат логов Kafka соответствует ожидаемому шаблону:
Если в вашей установке Kafka используется пользовательский шаблон Log4j, соответствующим образом скорректируйте регулярное выражение в regex_parser.
Следующие шаги
- Настройте оповещения для критически важных событий (сбоев брокера, ошибок репликации, проблем с группами потребителей)
- Используйте в сочетании с метриками Kafka для всестороннего мониторинга Kafka
- Создайте дополнительные панели мониторинга для конкретных сценариев использования (события контроллера, переназначение партиций)
Переход к промышленной эксплуатации
В этом руководстве для быстрой настройки используется встроенный OpenTelemetry Collector ClickStack. Для развертываний в промышленной эксплуатации мы рекомендуем запускать собственный OTel Collector и отправлять данные в конечную точку OTLP ClickStack. См. раздел Отправка данных OpenTelemetry для настройки промышленной эксплуатации.