Мониторинг логов AWS CloudWatch с ClickStack
В этом руководстве показано, как пересылать логи AWS CloudWatch в ClickStack с помощью приёмника AWS CloudWatch в OpenTelemetry Collector. Вы узнаете, как:
- Настроить OpenTelemetry Collector для получения логов из CloudWatch
- Настроить учётные данные AWS и права IAM
- Отправлять логи CloudWatch в ClickStack через OTLP
- Фильтровать и автоматически обнаруживать группы логов
- Использовать готовый дашборд для визуализации паттернов логов CloudWatch
Демонстрационный набор данных с примерами логов доступен, если вы хотите протестировать интеграцию до настройки вашего боевого окружения AWS.
Требуемое время: 10–15 минут
Обзор
AWS CloudWatch — это сервис мониторинга ресурсов и приложений AWS. Хотя CloudWatch предоставляет сбор и агрегацию логов, пересылка логов в ClickStack позволяет:
- Анализировать логи вместе с метриками и трейсами на единой платформе
- Выполнять запросы к логам с использованием SQL-интерфейса ClickHouse
- Сокращать расходы за счет архивирования логов или уменьшения периода хранения в CloudWatch
В этом руководстве описано, как пересылать логи CloudWatch в ClickStack с помощью OpenTelemetry Collector.
Интеграция с существующими группами журналов CloudWatch
В этом разделе описана настройка OpenTelemetry Collector для считывания журналов из существующих групп журналов CloudWatch и их пересылки в ClickStack.
Если вы хотите протестировать интеграцию до настройки продакшен-окружения, вы можете воспользоваться нашим демонстрационным набором данных в разделе демонстрационного набора данных.
Предварительные требования
- Запущенный экземпляр ClickStack
- Учётная запись AWS с группами журналов CloudWatch
- Учётные данные AWS с соответствующими правами доступа IAM
В отличие от интеграций на основе файлов журналов (nginx, Redis), CloudWatch требует запуска отдельного коллектора OpenTelemetry, который опрашивает CloudWatch API. Этот коллектор не может выполняться внутри образа ClickStack «всё в одном», так как ему необходимы учётные данные AWS и доступ к API.
Получите API-ключ ClickStack
Коллектор OpenTelemetry отправляет данные на OTLP-эндпоинт ClickStack, для которого требуется аутентификация.
- Откройте HyperDX по URL-адресу вашего ClickStack (например, http://localhost:8080)
- При необходимости создайте аккаунт или войдите в систему
- Перейдите в раздел Team Settings → API Keys
- Скопируйте свой ключ API для приёма данных

Сохраните это значение в переменной окружения:
Настройте учетные данные AWS
Экспортируйте учетные данные AWS как переменные окружения. Способ зависит от типа аутентификации:
Для пользователей AWS SSO (рекомендуется для большинства организаций):
Замените YOUR_PROFILE_NAME на название вашего профиля AWS SSO (например, AccountAdministrators-123456789).
Для пользователей IAM с долгосрочными учётными данными:
Требуемые разрешения IAM:
Для учетной записи AWS, связанной с этими учетными данными, необходима следующая политика IAM для чтения логов CloudWatch:
Замените YOUR_ACCOUNT_ID на идентификатор вашей учетной записи AWS.
Настройте приёмник CloudWatch
Создайте файл otel-collector-config.yaml с конфигурацией ресивера CloudWatch.
Пример 1: Именованные группы логов (рекомендуется)
Данная конфигурация собирает логи из конкретных именованных групп логов:
Пример 2: Автообнаружение групп логов с префиксом
Данная конфигурация автоматически обнаруживает и собирает логи из максимум 100 групп логов, начинающихся с префикса /aws/lambda:
Параметры конфигурации:
region: регион AWS, в котором находятся ваши группы журналовpoll_interval: Как часто выполнять проверку на наличие новых логов (например,1m,5m)max_events_per_request: Максимальное количество событий логов, извлекаемых за один запросgroups.autodiscover.limit: Максимальное число групп логов, которые будут автоматически обнаруженыgroups.autodiscover.prefix: Фильтрация групп журналов по префиксуgroups.named: явный список имен групп журналов, которые нужно собирать
Дополнительные параметры конфигурации см. в документации по приёмнику CloudWatch.
Замените следующие значения:
${CLICKSTACK_API_KEY}→ Использует переменную окружения, которую вы установили ранееhttp://localhost:4318→ Ваша конечная точка ClickStack (используйте хост ClickStack, если ClickStack развернут удалённо)us-east-1→ ваш регион AWS- Имена/префиксы групп логов → соответствующие группы логов CloudWatch
Приемник CloudWatch извлекает логи только из недавних временных окон (на основе poll_interval). При первом запуске он начинает работу с текущего времени. Исторические логи по умолчанию не извлекаются.
Запуск коллектора
Создайте файл docker-compose.yaml:
Затем запустите коллектор:
Просмотр логов коллектора:
Проверьте логи в HyperDX
После запуска коллектора:
- Откройте HyperDX по адресу http://localhost:8080 (или по URL-адресу вашего ClickStack)
- Перейдите к разделу Logs
- Подождите 1–2 минуты, пока не появятся логи (с учётом заданного интервала опроса)
- Поиск логов в группах журналов CloudWatch

Найдите следующие ключевые атрибуты в логах:
ResourceAttributes['aws.region']: регион AWS (например, "us-east-1")ResourceAttributes['cloudwatch.log.group.name']: имя группы журналов CloudWatchResourceAttributes['cloudwatch.log.stream']: Имя потока журналовBody: основное содержание сообщения журнала

Демонстрационный набор данных
Для пользователей, которые хотят протестировать интеграцию CloudWatch Logs до настройки продакшн‑окружения AWS, мы предоставляем демонстрационный набор данных с предварительно сгенерированными логами, отражающими реалистичные шаблоны работы нескольких сервисов AWS.
Загрузите демонстрационный набор данных
Набор данных содержит 24 часа логов CloudWatch от нескольких сервисов:
- Lambda-функции: обработка платежей, управление заказами, аутентификация
- Сервисы ECS: шлюз API с ограничением частоты запросов и тайм‑аутами
- Фоновые задания: пакетная обработка с шаблонами повторных попыток
Запустите ClickStack
Если у вас ещё не запущен ClickStack:
Подождите несколько минут, чтобы ClickStack полностью запустился.
Импортируйте демонстрационный набор данных
Это импортирует логи напрямую в таблицу логов ClickStack.
Проверьте демонстрационные данные
После импорта:
- Откройте HyperDX по адресу http://localhost:8080 и войдите в систему (при необходимости создайте аккаунт)
- Перейдите в раздел Logs
- Установите диапазон времени 2025-12-07 00:00:00 - 2025-12-08 00:00:00 (UTC)
- Выполните поиск по
cloudwatch-demoили отфильтруйте поLogAttributes['source'] = 'cloudwatch-demo'
Вы должны увидеть логи из нескольких групп логов CloudWatch.

HyperDX отображает временные метки в локальном часовом поясе вашего браузера. Демонстрационные данные охватывают период 2025-12-07 00:00:00 - 2025-12-08 00:00:00 (UTC). Установите диапазон времени 2025-12-06 00:00:00 - 2025-12-09 00:00:00, чтобы гарантированно увидеть демо‑логи независимо от вашего местоположения. После того как появятся логи, вы можете сузить диапазон до 24 часов для более наглядной визуализации.
Дашборды и визуализация
Чтобы упростить мониторинг логов CloudWatch с помощью ClickStack, мы предоставляем готовый дашборд с основными визуализациями.
Импортируйте дашборд
- Откройте HyperDX и перейдите в раздел Dashboards
- Нажмите Import Dashboard в правом верхнем углу под значком с тремя точками

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

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

Для демонстрационного набора данных установите диапазон времени 2025-12-07 00:00:00 - 2025-12-08 00:00:00 (UTC) (при необходимости скорректируйте с учётом вашего часового пояса). У импортированного дашборда по умолчанию не задан диапазон времени.
Устранение неполадок
Логи не отображаются в HyperDX
Убедитесь, что учетные данные AWS настроены корректно:
Если это не срабатывает, ваши учётные данные недействительны или срок их действия истёк.
Проверьте права доступа IAM:
Убедитесь, что вашим учётным данным AWS выданы необходимые права доступа logs:DescribeLogGroups и logs:FilterLogEvents.
Проверьте логи коллектора на наличие ошибок:
Распространённые ошибки:
The security token included in the request is invalid: учётные данные недействительны или истёк срок их действия. Для временных учётных данных (SSO) убедитесь, что заданAWS_SESSION_TOKEN.operation error CloudWatch Logs: FilterLogEvents, AccessDeniedException: недостаточно прав IAMfailed to refresh cached credentials, no EC2 IMDS role found: не заданы переменные окружения с учётными данными AWSconnection refused: конечная точка ClickStack недоступна
Проверьте, что группы логов CloudWatch существуют и содержат недавние записи:
Отображаются только старые логи или отсутствуют последние логи
По умолчанию CloudWatch receiver начинает с «текущего момента»:
Когда коллектор запускается впервые, он создаёт контрольную точку на текущий момент времени и получает только те логи, которые появляются после этого. Исторические логи не считываются.
Чтобы собрать логи за недавний период из истории:
Остановите коллектор, удалите его контрольную точку, затем перезапустите:
Приёмник создаст новую контрольную точку и будет получать логи, начиная с текущего момента.
Недействительный токен безопасности / истёк срок действия учётных данных
Если вы используете временные учётные данные (AWS SSO, роль, полученная через AssumeRole), срок их действия истекает через определённое время.
Повторно экспортируйте обновлённые учётные данные:
Высокая задержка или отсутствие свежих логов
Уменьшите интервал опроса:
Значение poll_interval по умолчанию — 1 минута. Для почти реального времени получения логов уменьшите его:
Примечание: меньший интервал опроса увеличивает число запросов к AWS API и может привести к более высоким расходам на API CloudWatch.
Коллектор потребляет слишком много памяти
Уменьшите размер пакета или увеличьте тайм-аут:
Ограничить автообнаружение:
Следующие шаги
Теперь, когда журналы CloudWatch поступают в ClickStack:
- Настройте оповещения для критических событий (сбоев подключений, всплесков ошибок)
- Сократите затраты на CloudWatch, настроив периоды хранения или архивацию в S3, теперь, когда журналы уже есть в ClickStack
- Отфильтруйте шумные группы логов, удалив их из конфигурации коллектора, чтобы уменьшить объём принимаемых данных
Переход в продакшн
В этом руководстве показан запуск OpenTelemetry Collector локально с помощью Docker Compose для тестирования. Для продакшн-развертываний запускайте коллектор на инфраструктуре с доступом к AWS (EC2 с IAM-ролями, EKS с IRSA или ECS с ролями задач), чтобы не нужно было управлять ключами доступа. Разворачивайте коллекторы в том же регионе AWS, что и ваши группы логов CloudWatch, чтобы снизить задержки и затраты.
См. раздел Ingesting with OpenTelemetry для ознакомления с шаблонами продакшн-развертываний и примерами конфигурации коллектора.