Я настраиваю конвейер обработки файлов журнала CloudFront. Читая документацию, я понимаю, что CF будет создавать один файл журнала в час для каждого распределения, но это не то, что я вижу в своей корзине. Я получаю несколько файлов на дистрибутив (за час):
E39O6KS6J8MIZW.2015-10-09-23.083b2c12.gz
E39O6KS6J8MIZW.2015-10-09-23.1a96bb61.gz
E39O6KS6J8MIZW.2015-10-09-23.4cd34dd8.gz
E39O6KS6J8MIZW.2015-10-09-23.50c7b5b1.gz
Что мне не хватает? По сути, я пытаюсь понять, какие драйверы создают новые файлы журналов.
CloudFront, как вы, вероятно, знаете, - это глобально распределенная система, в которой подготовка является централизованной, но более 50 периферийных местоположений работают независимо после того, как инициализация передается им.
Предположительно, журналы собираются либо локально на каждом краю, либо регионально, а затем периодически собираются и объединяются в консолидированные журналы и публикуются в вашей корзине журналов.
Отметка времени, встроенная в имя файла журнала, приблизительно соответствует часу, в течение которого произошли указанные события. Таким образом, журнал для данного часа часто не приходит в течение часа или даже в час, непосредственно следующий за ним.
Если что-то мешает своевременному сбору журналов с определенных краев (как и следовало ожидать на глобальной распределенной платформе), они обычно прибывают в течение нескольких часов в архивном файле журнала, который представляет приблизительное время логи были изначально записаны.
Время доставки файла журнала
CloudFront доставляет журналы доступа для рассылки до нескольких раз в час. Как правило, файл журнала содержит информацию о запросах, полученных CloudFront за определенный период времени. CloudFront обычно доставляет файл журнала за этот период времени в корзину Amazon S3 в течение часа после событий, которые появляются в журнале. Обратите внимание, однако, что некоторые или все записи файла журнала за определенный период времени могут иногда задерживаться до 24 часов. Когда записи журнала задерживаются, CloudFront сохраняет их в файле журнала, для которого имя файла включает дату и время периода, в котором возникли запросы, а не дату и время доставки файла.
http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html#access-logs-timing
Итак, по сути, CloudFront создаст хотя бы один log за каждый час, в течение которого у вашего дистрибутива есть какой-либо трафик, но журнал может прибыть практически в любое время ... поэтому вы не можете эффективно опрашивать ведро в поисках определенных шаблонов на основе текущего времени, времени предыдущего часа, и т.п.
Один из способов справиться с ними как можно быстрее (без опроса корзины): Уведомления о событиях S3.
В любом случае вы должны быть готовы обрабатывать любую временную метку, когда бы она ни записывалась, не предполагать дублирования и не игнорировать журнал, потому что он имеет временную метку, которая кажется старше, чем ожидалось.