Я не хочу предоставлять доступ к моим журналам внешней компании, такой как s3stat. Я знаю, что AWS регистрирует S3 и Cloud Front в формате, читаемом AWStats. Кто-нибудь использовал AWSats для их анализа?
S3stat раньше предлагал размещенную версию своего программного обеспечения, которая была в бета-версии, но я считаю, что она больше не поддерживается.
Я не привязан к AWStats, я рассмотрю другие варианты программного обеспечения для анализа веб-логов.
Я не использую AWStats с S3, но предполагаю, что есть 3 проблемы с обработкой журналов:
Вам нужно получить данные - они хранятся на S3
С Cloudfront AWS дает вам возможность выбрать, какую корзину вы хотите использовать - она не обязательно должна быть исходной (исходной) корзиной. Вы можете легко настроить конкретную корзину для своих журналов и смонтировать ее через s3fs - это должно обеспечивать простейший доступ к файлам - сохранение отметок времени и т. д., которые часто необходимы для инкрементной обработки журналов. В качестве альтернативы, если вы не хотите монтировать корзину как локальную файловую систему, вы можете использовать s3cmd, awsили один из пакетов SDK для загрузки файлов. (Для этой цели существует скрипт Python (использующий boto) - Вот - хотя за его эффективность не ручаюсь.)
Вам нужно распаковать и объединить логи
Журналы Cloudfront сжимаются (gzip) и хранятся в виде нескольких файлов - имена файлов содержат дату и час (например, XXXXXXXXXXXXX.YYYY-MM-DD-HH.XXXXXXXXX
), хотя в час может быть несколько файлов. Файлы можно распаковать с помощью gunzip
и в сочетании с (предоставленным инструментом AWStats) logresolvemerge.pl
.
Вам необходимо предоставить собственный формат журнала для AWStats
Формат файла разделен табуляцией и имеет вид:
date time x-edge-location sc-bytes c-ip cs-method cs(Host) cs-uri-stem sc-status cs(Referer) cs(User-Agent) cs-uri-query 2011-06-27 08:31:10 JFK1 587 xxx.xxx.xxx.xxx GET xxxxxxxxxxxxxx.cloudfront.net /path/to/your/file 304 http://www.mydomain.com/page/requesting/file User-agent-string -
Поэтому вы бы настроить AWStats с:
LogType=W LogSeparator="\t" LogFormat="%time2 %cluster %bytesd %host %method %virtualname %url %code %referer %ua %query"