Ингестия данных с помощью Vector
Vector — это высокопроизводительный, независимый от поставщика конвейер данных обсервабилити. Его обычно используют для сбора, трансформации и маршрутизации логов и метрик из широкого спектра источников; он особенно популярен для ингестии логов благодаря своей гибкости и низкому потреблению ресурсов.
При использовании Vector с ClickStack пользователи сами отвечают за определение собственных схем. Эти схемы могут следовать конвенциям OpenTelemetry, но также могут быть полностью произвольными, представляя пользовательские структуры событий. На практике ингестия с помощью Vector чаще всего используется для логов, когда пользователи хотят иметь полный контроль над разбором и обогащением данных до записи в ClickHouse.
Это руководство посвящено подключению данных к ClickStack с использованием Vector как для ClickStack Open Source, так и для Managed ClickStack. Для простоты здесь не рассматриваются источники Vector или конфигурация конвейера в деталях. Вместо этого акцент сделан на конфигурации sink, который записывает данные в ClickHouse, и на обеспечении совместимости результирующей схемы с ClickStack.
Единственное жёсткое требование ClickStack, независимо от того, используется ли open-source-версия или управляемое развертывание, состоит в том, что данные должны содержать столбец с временной меткой (или эквивалентное поле времени), который можно задать при конфигурировании источника данных в интерфейсе ClickStack.
Отправка данных с помощью Vector
- Управляемый сервис ClickStack
- Open Source-версия ClickStack
Данное руководство предполагает, что вы уже создали управляемый сервис ClickStack и сохранили учетные данные вашего сервиса. Если вы этого еще не сделали, следуйте руководству Начало работы для управляемого ClickStack до этапа настройки Vector.
Создайте базу данных и таблицу
Для Vector необходимо определить таблицу и схему до начала ингестии данных.
Сначала создайте базу данных. Это можно сделать с помощью консоли ClickHouse Cloud.
В примере ниже мы используем logs:
Создайте таблицу для ваших данных. Она должна соответствовать выходной схеме данных. Приведенный ниже пример предполагает классическую структуру Nginx. Адаптируйте её в соответствии с вашими данными, придерживаясь лучших практик для схем. Мы настоятельно рекомендуем ознакомиться с концепцией первичных ключей и выбрать первичный ключ на основе рекомендаций, изложенных здесь.
Указанный выше первичный ключ рассчитан на типичные шаблоны доступа к логам Nginx в интерфейсе ClickStack, но может потребовать корректировки в зависимости от вашей рабочей нагрузки в production-окружении.
Добавьте приёмник ClickHouse в конфигурацию Vector
Измените конфигурацию Vector, добавив приёмник ClickHouse и обновив поле inputs для приёма событий из существующих конвейеров.
Данная конфигурация предполагает, что ваш upstream-конвейер Vector уже подготовил данные в соответствии с целевой схемой ClickHouse, то есть поля разобраны, корректно именованы и имеют подходящие типы для вставки. См. пример с Nginx ниже для полной иллюстрации разбора и нормализации необработанных строк логов в схему, подходящую для ClickStack.
По умолчанию рекомендуется использовать формат json_each_row, который кодирует каждое событие как отдельный JSON-объект на строку. Это формат по умолчанию и рекомендуемый формат для ClickStack при приёме JSON-данных; его следует предпочесть альтернативным форматам, таким как JSON-объекты, закодированные в виде строк.
Приёмник ClickHouse также поддерживает кодирование потока Arrow (в настоящее время в бета-версии). Это может обеспечить более высокую пропускную способность, но имеет важные ограничения: база данных и таблица должны быть статическими, поскольку схема извлекается один раз при запуске, а динамическая маршрутизация не поддерживается. По этой причине кодирование Arrow лучше всего подходит для фиксированных, чётко определённых конвейеров ингестии.
Рекомендуем ознакомиться с доступными параметрами конфигурации приёмника (sink) в документации Vector:
Приведенный выше пример использует пользователя по умолчанию для Managed ClickStack. Для продакшн-развертываний рекомендуется создать выделенного пользователя для ингестии с соответствующими правами и ограничениями.
Перейдите к интерфейсу ClickStack
Перейдите к управляемому сервису ClickStack и выберите "ClickStack" в меню слева. Если вы уже завершили первоначальную настройку, интерфейс ClickStack откроется в новой вкладке, и вы будете автоматически аутентифицированы. Если нет, пройдите процесс первоначальной настройки и выберите "Launch ClickStack" после выбора Vector в качестве источника данных.

Создайте источник данных
Создайте источник данных для логов. Если источники данных отсутствуют, при первом входе в систему вам будет предложено создать его. В противном случае перейдите в Team Settings и добавьте новый источник данных.

Приведенная выше конфигурация предполагает схему в стиле Nginx со столбцом time_local, используемым в качестве временной метки. По возможности это должен быть столбец временной метки, объявленный в первичном ключе. Данный столбец является обязательным.
Также рекомендуется обновить Default SELECT, чтобы явно определить, какие столбцы возвращаются в представлении логов. Если доступны дополнительные поля, такие как имя сервиса, уровень логирования или столбец body, их также можно настроить. Столбец отображения временной метки также может быть переопределён, если он отличается от столбца, используемого в первичном ключе таблицы и настроенного выше.
В приведённом выше примере столбец Body отсутствует в данных. Вместо этого он определяется с помощью SQL-выражения, которое восстанавливает строку журнала Nginx из доступных полей.
Другие доступные параметры см. в справочнике по конфигурации.
Исследование данных
Перейдите к представлению логов, чтобы изучить данные и начать работу с ClickStack.

Создайте базу данных и таблицу
Для Vector необходимо определить таблицу и схему перед ингестией данных.
Сначала создайте базу данных. Это можно сделать через веб-интерфейс пользователя ClickHouse по адресу http://localhost:8123/play. Используйте имя пользователя и пароль по умолчанию api:api.

В примере ниже мы используем logs:
Создайте таблицу для ваших данных. Она должна соответствовать выходной схеме данных. Приведенный ниже пример предполагает классическую структуру Nginx. Адаптируйте её в соответствии с вашими данными, придерживаясь лучших практик для схем. Мы настоятельно рекомендуем ознакомиться с концепцией первичных ключей и выбрать первичный ключ на основе рекомендаций, изложенных здесь.
Приведённый выше первичный ключ рассчитан на типичные шаблоны доступа к логам Nginx в интерфейсе ClickStack, но может потребовать корректировки в зависимости от вашей рабочей нагрузки в production-окружении.
Добавьте приёмник ClickHouse в конфигурацию Vector
Ингестия в ClickStack для Vector должна осуществляться напрямую в ClickHouse, минуя OTLP-эндпоинт, предоставляемый коллектором.
Измените конфигурацию Vector, добавив приёмник ClickHouse и обновив поле inputs для приёма событий из существующих конвейеров.
Данная конфигурация предполагает, что ваш upstream-конвейер Vector уже подготовил данные в соответствии с целевой схемой ClickHouse, то есть поля разобраны, корректно именованы и имеют подходящие типы для вставки. См. пример с Nginx ниже для полной иллюстрации разбора и нормализации необработанных строк логов в схему, подходящую для ClickStack.
По умолчанию рекомендуется использовать формат json_each_row, который кодирует каждое событие как отдельный JSON-объект на строку. Это формат по умолчанию и рекомендуемый формат для ClickStack при приёме JSON-данных; его следует предпочесть альтернативным форматам, таким как JSON-объекты, закодированные в виде строк.
Приёмник ClickHouse также поддерживает кодирование потоков Arrow (в настоящее время в бета-версии). Это может обеспечить более высокую пропускную способность, но имеет важные ограничения: база данных и таблица должны быть статическими, поскольку схема извлекается один раз при запуске, а динамическая маршрутизация не поддерживается. По этой причине кодирование Arrow лучше всего подходит для фиксированных, чётко определённых конвейеров ингестии.
Рекомендуем ознакомиться с доступными параметрами конфигурации приёмника (sink) в документации Vector:
В приведенном выше примере используется пользователь api для ClickStack Open Source. Для production-развертываний мы рекомендуем создать выделенного пользователя для ингестии с соответствующими правами и ограничениями. Приведенная выше конфигурация также предполагает, что Vector работает на том же хосте, что и ClickStack. В production-развертываниях это, скорее всего, будет не так. Мы рекомендуем отправлять данные через защищенный HTTPS-порт 8443.
Перейдите к интерфейсу ClickStack
Перейдите в пользовательский интерфейс ClickStack по адресу http://localhost:8080. Создайте пользователя, если вы еще не прошли процесс первоначальной настройки.

Создайте источник данных
Перейдите в Team Settings и добавьте новый источник данных.

Приведенная выше конфигурация предполагает схему в стиле Nginx со столбцом time_local, используемым в качестве временной метки. По возможности это должен быть столбец временной метки, объявленный в первичном ключе. Данный столбец является обязательным.
Также рекомендуется обновить Default SELECT, чтобы явно определить, какие столбцы возвращаются в представлении логов. Если доступны дополнительные поля, такие как имя сервиса, уровень логирования или столбец body, их также можно настроить. Столбец отображения временной метки также может быть переопределён, если он отличается от столбца, используемого в первичном ключе таблицы и настроенного выше.
В приведённом выше примере столбец Body отсутствует в данных. Вместо этого он определяется с помощью SQL-выражения, которое восстанавливает строку журнала Nginx из доступных полей.
Другие доступные параметры см. в справочнике по конфигурации.
Исследование данных
Перейдите в представление логов, чтобы изучить данные и начать работу с ClickStack.

Пример набора данных с Vector
В качестве более полного примера ниже мы используем файл журнала Nginx.
- Управляемый ClickStack
- ClickStack с открытым исходным кодом
В данном руководстве предполагается, что вы уже создали управляемый сервис ClickStack и сохранили учетные данные сервиса. Если нет, следуйте руководству Начало работы для управляемого ClickStack до момента настройки Vector.
Установка Vector
Прежде чем продолжить, убедитесь, что Vector установлен в системе, где вы планируете запускать конвейер ингестии данных. Следуйте официальному руководству по установке Vector, чтобы установить предсобранный бинарный файл или пакет, подходящий для вашей среды:
После установки убедитесь, что бинарный файл vector доступен в системном PATH, прежде чем переходить к шагам конфигурации ниже.
Его можно установить на тот же экземпляр, что и ваш ClickStack OTel collector.
Следуйте передовым практикам по архитектуре и безопасности при выводе Vector в продакшн.
Загрузите примеры данных
Если вы хотите поэкспериментировать с тестовым набором данных, скачайте следующий пример для nginx.
Эти данные были собраны с экземпляра Nginx, настроенного на вывод логов в формате JSON для упрощения их разбора. Конфигурацию Nginx для этих логов см. в разделе "Monitoring Nginx Logs with ClickStack".
Создайте базу данных и таблицу
Для Vector необходимо определить таблицу и схему до начала ингестии данных.
Сначала создайте базу данных. Это можно сделать с помощью консоли ClickHouse Cloud.
Создайте базу данных logs:
Создайте таблицу для данных.
Приведенный выше первичный ключ рассчитан на типичные шаблоны доступа к логам Nginx в интерфейсе ClickStack, но может потребовать корректировки в зависимости от вашей рабочей нагрузки в production-окружении.
Скопируйте конфигурацию Vector
Скопируйте конфигурацию Vector и создайте файл nginx.yaml, задав значения CLICKHOUSE_ENDPOINT и CLICKHOUSE_PASSWORD.
Приведенный выше пример использует пользователя по умолчанию для Managed ClickStack. Для production-развертываний рекомендуется создать выделенного пользователя для ингестии с соответствующими правами доступа и ограничениями.
Запуск Vector
Запустите Vector следующей командой, предварительно создав каталог данных для записи смещений файлов.
Перейдите в пользовательский интерфейс ClickStack
Перейдите к управляемому сервису ClickStack и выберите "ClickStack" в меню слева. Если вы уже завершили первоначальную настройку, интерфейс ClickStack откроется в новой вкладке, и вы будете автоматически аутентифицированы. Если нет, пройдите процесс первоначальной настройки и выберите "Launch ClickStack" после выбора Vector в качестве источника данных.

Создайте источник данных
Создайте источник данных для логов. Если источники данных отсутствуют, при первом входе в систему вам будет предложено создать его. В противном случае перейдите в Team Settings и добавьте новый источник данных.

Конфигурация предполагает схему Nginx со столбцом time_local, используемым в качестве временной метки. Это столбец временной метки, объявленный в первичном ключе. Данный столбец обязателен.
Мы также указали значение по умолчанию для select: time_local, remote_addr, status, request, что определяет, какие столбцы возвращаются в представлении логов.
В приведённом выше примере столбец Body отсутствует в данных. Вместо этого он определяется как SQL-выражение:
Это восстанавливает строку журнала из структурированных полей.
Другие доступные параметры см. в справочнике по конфигурации.
Исследование данных
Перейдите в представление поиска за October 20th, 2025, чтобы изучить данные и начать работу с ClickStack.

В данном руководстве предполагается, что вы уже настроили ClickStack Open Source, следуя руководству по началу работы.
Установка Vector
Прежде чем продолжить, убедитесь, что Vector установлен в системе, где вы планируете запускать конвейер ингестии данных. Следуйте официальному руководству по установке Vector, чтобы установить предсобранный бинарный файл или пакет, подходящий для вашей среды:
После установки убедитесь, что бинарный файл vector доступен в системном PATH, прежде чем переходить к шагам конфигурации ниже.
Его можно установить на тот же экземпляр, что и ваш ClickStack OTel collector.
Следуйте передовым практикам по архитектуре и безопасности при выводе Vector в продакшн.
Загрузите примеры данных
Если вы хотите поэкспериментировать с тестовым набором данных, скачайте следующий пример для nginx.
Эти данные были собраны с экземпляра Nginx, настроенного на вывод логов в формате JSON для упрощения их разбора. Конфигурацию Nginx для этих логов см. в разделе "Monitoring Nginx Logs with ClickStack".
Создайте базу данных и таблицу
Для Vector необходимо определить таблицу и схему до начала ингестии данных.
Сначала создайте базу данных. Это можно сделать через веб-интерфейс пользователя ClickHouse по адресу http://localhost:8123/play. Используйте имя пользователя и пароль по умолчанию api:api.

Создайте базу данных logs:
Создайте таблицу для данных.
Указанный выше первичный ключ рассчитан на типичные шаблоны доступа к логам Nginx в интерфейсе ClickStack, но может потребовать корректировки в зависимости от вашей рабочей нагрузки в производственной среде.
Скопируйте конфигурацию Vector
Ингестия в ClickStack для Vector должна осуществляться напрямую в ClickHouse, минуя OTLP-эндпоинт, предоставляемый коллектором.
Скопируйте конфигурацию Vector и создайте файл nginx.yaml.
В приведенном выше примере используется пользователь api для ClickStack Open Source. Для промышленных развертываний рекомендуется создать выделенного пользователя для ингестии с соответствующими правами и ограничениями. Приведенная выше конфигурация также предполагает, что Vector запущен на том же хосте, что и ClickStack. В промышленных развертываниях это, скорее всего, будет не так. Рекомендуется отправлять данные через защищенный HTTPS-порт 8443.
Создайте источник данных
Создайте источник данных для логов через Team -> Sources

Конфигурация предполагает схему Nginx со столбцом time_local, используемым в качестве временной метки. Это столбец временной метки, объявленный в первичном ключе. Данный столбец является обязательным.
Мы также указали значение по умолчанию для select: time_local, remote_addr, status, request, что определяет, какие столбцы возвращаются в представлении логов.
В приведённом выше примере столбец Body отсутствует в данных. Вместо этого он определяется как SQL-выражение:
Это восстанавливает строку журнала из структурированных полей.
Другие доступные параметры см. в справочнике по конфигурации.
Перейдите в пользовательский интерфейс ClickStack
Перейдите в интерфейс ClickStack по адресу http://localhost:8080. Создайте пользователя, если вы еще не прошли процесс первоначальной настройки.

Исследование данных
Перейдите в представление поиска за October 20th, 2025, чтобы изучить данные и начать работу с ClickStack.
