Доставка и надёжность логов

Материал из Документация Ключ-АСТРОМ

Доставка и надёжность логов

Эта страница описывает доставку и надёжность логов при их прохождении через следующие три компонента:

  • Хранилище данных: уровень хранения.
  • Модуль логов ЕдиногоАгента: агент сбора на хосте.
  • АктивныйШлюз среды: опциональный компонент маршрутизации или конечная точка API.

Каждый компонент имеет собственное поведение буферизации и ограничения. Другие пути загрузки логов — включая пересылку облачных логов, Коллектор OpenTelemetry Ключ-АСТРОМ, Расширения Ключ-АСТРОМ и сторонние пограничные компоненты, подключающиеся к API загрузки логов, — выходят за рамки этой страницы. Полный список вариантов загрузки см. в разделе Загрузка логов.

Обзор

Понимание полного пути доставки помогает спроектировать сбор логов, который будет одновременно устойчивым и в пределах ограничений платформы. Эта страница описывает, как каждый компонент обрабатывает загрузку, постановку в очередь и восстановление после сбоев.

Хранилище данных

Запись лога отбрасывается при загрузке, если её временная метка старше допустимого временного диапазона. Это означает, что даже при мощном механизме очередей логи, находящиеся в очереди дольше этого окна, будут отброшены. Точный диапазон см. в разделе Ограничения по умолчанию для управления логами и аналитики.

Хранилище данных и поддерживающие его компоненты включают механизмы масштабирования для обработки внезапных всплесков загрузки, например из-за очередей, которые необходимо загрузить после проблем с подключением. Жёсткого ограничения на количество записей логов, которые можно отправить в хранилище данных за определённый период, нет. Дополнительную информацию об общеплатформенных ограничениях см. в разделе Ограничения по умолчанию для управления логами и аналитики.

ЕдиныйАгент

Подробности о том, как ЕдиныйАгент читает, буферизует и доставляет логи — включая интервалы опроса, уровни буферизации и подключение, — см. в разделе Модуль логов ЕдиногоАгента.

АктивныйШлюз среды

АктивныйШлюз среды поддерживает несколько источников логов. Каждый из них имеет свою логику организации очередей.

Логи от ЕдиногоАгента

Логи, полученные от ЕдиногоАгента, немедленно пересылаются в вашу среду Ключ-АСТРОМ. АктивныйШлюз среды не ставит их в локальную очередь. Если среда Ключ-АСТРОМ недоступна, логи не сохраняются на АктивномШлюзе среды для последующей доставки. Механизм надёжности работает на стороне ЕдиногоАгента: ЕдиныйАгент ожидает подтверждения от АктивногоШлюза среды и отправляет повторно, если подтверждение не получено вовремя. Методы дедупликации и восстановления после сбоев предотвращают потерю или дублирование данных, если ЕдиныйАгент перезапускается во время передачи.

Ограничения и сценарии потери данных

  • Если АктивныйШлюз не доставляет подтверждение в течение 24 часов, сообщение отбрасывается.
  • Записи логов с временной меткой старше двух часов не создают точки метрик на основе логов.
  • Если хост создаёт больше логов, чем АктивныйШлюз среды может обработать за длительный период, очередь неподтверждённых записей растёт на стороне ЕдиногоАгента. Чтобы ограничить использование памяти, ЕдиныйАгент прекращает чтение новых записей логов, пока предыдущие не будут подтверждены. В этом состоянии исходные файлы логов служат очередью. Если эти файлы будут ротированы или удалены до того, как ЕдиныйАгент их прочитает, произойдёт потеря данных.

Логи с конечной точки API

Логи, полученные на конечных точках /api/v2/logs/ingest и /api/v2/otlp/v1/logs, ставятся в очередь на диске на АктивномШлюзе среды. По умолчанию диске очередь хранится в общесистемной временной папке и ограничена 300 МБ. Оба параметра можно переопределить с помощью свойств disk_queue_path и disk_queue_max_size_mb в секции [generic_ingest] конфигурации АктивногоШлюза. Подробности см. в разделе Свойства и параметры конфигурации АктивногоШлюза. Очередь использует сжатие; для текстовых логов типичная степень сжатия составляет примерно 10:1, поэтому очередь в 300 МБ может эффективно хранить около 3 ГБ несжатых данных логов. Когда диске очередь достигает ёмкости, АктивныйШлюз среды возвращает ошибку HTTP 503. Подробности см. в разделе Коды ответов API мониторинга логов v2. Механизм повторных попыток между компонентами Ключ-АСТРОМ не реализует стратегию задержки. Когда АктивныйШлюз среды повторяет поставленные в очередь сообщения после сбоя хранилища данных, может возникнуть всплеск трафика, совпадающий с новыми входящими сообщениями. Планируйте ёмкость соответственно.

Логи от расширений

Логи, полученные в расширениях (например, Syslog), управляются Контроллером выполнения расширений (EEC), который имеет размер буфера по умолчанию 1,5 ГБ. Этот лимит настраивается. Поведение повторной отправки по умолчанию на стороне EEC:

  • Логи отправляются повторно каждые две минуты, если не подтверждены.
  • Логи, не подтверждённые в течение 20 минут, отбрасываются.

Оба интервала настраиваются. Рекомендации по выбору размера см. в разделе Аппаратные и системные требования для АктивныхШлюзов на Linux.

Возможности высокой доступности

Сегментация сети

Сетевые зоны — это сущности Ключ-АСТРОМ, которые отражают топологию вашей сети и обеспечивают эффективную маршрутизацию трафика, минимизируя передачу данных между регионами. При развёртывании ЕдиногоАгента вместе с АктивнымШлюзом среды настройка сетевых зон рекомендуется для производственных сред. Подробности см. в разделах Сетевые зоны, Подключение ЕдиногоАгента в сетевых зонах и Подключение АктивногоШлюза в сетевых зонах.

Сетевой прокси

Если между ЕдинымАгентом и АктивнымШлюзом среды расположен сетевой прокси, настройте URL-адрес прокси на АктивномШлюзе среды, чтобы ЕдиныеАгенты могли маршрутизировать свой трафик через него. Подробности см. в разделе Настройка обратного прокси для ЕдиногоАгента.

Балансировка нагрузки для трафика ЕдиногоАгента

ЕдиныйАгент автоматически выбирает доступный АктивныйШлюз среды для связи. При настроенных сетевых зонах ЕдиныйАгент отдаёт приоритет АктивномуШлюзу в той же зоне. При масштабировании количества АктивныхШлюзов вверх или вниз ЕдиныеАгенты автоматически перераспределяют трафик по активному набору — в том числе во время обслуживания, сбоя или временной недоступности АктивногоШлюза. Подробности об алгоритме подключения см. в разделе Подключение ЕдиногоАгента в сетевых зонах.

Балансировка нагрузки для загрузки логов через API

Ключ-АСТРОМ не предоставляет встроенной балансировки нагрузки для загрузки логов через REST API на АктивныхШлюзах среды. Чтобы обеспечить высокую доступность и сбалансированное распределение трафика, настройте балансировку нагрузки на основе DNS или разверните аппаратный балансировщик нагрузки перед вашим развёртыванием АктивныхШлюзов.

Мониторинг и восстановление процессов

Процесс АктивногоШлюза среды непрерывно контролируется выделенным процессом-сторожевым таймером. Если АктивныйШлюз среды аварийно завершается или перестаёт отвечать, сторожевой таймер автоматически перезапускает его. Полный список параметров конфигурации см. в разделе Настройка АктивногоШлюза.

Ограничения

Общеплатформенные ограничения загрузки, применяемые на всём пути доставки, см. в разделе Ограничения по умолчанию для управления логами и аналитики.

Рекомендации по выбору размера

Размер диске очереди АктивногоШлюза и настройки сохранения напрямую влияют на то, какой объём данных логов можно буферизовать во время сбоев.

Диагностика

Готовый дашборд Обзор загрузки логов предоставляет сквозной обзор, визуализацию и поток для диагностики проблем загрузки логов по всем компонентам загрузки: ЕдиныйАгент, конечные точки API, АктивныйШлюз среды и OpenPipeline. Используйте следующие ресурсы для исследования возможных возникающих проблем.