Перейти к основному содержимому

Получение статистики посещения сайта с использованием S3 Select

Вы можете собрать статистику посещения вашего сайта, размещенного в S3, с помощью S3 Select.
Это отличный способ быстро получить информацию о пользователях и частоте обращений без загрузки всех логов целиком.

Совет: Перед началом убедитесь, что включено логирование для бакета, в котором хранится содержимое сайта.

Перед началом работы

  1. Установите и настройте AWS CLI.
  2. Убедитесь, что у вас есть доступ к бакету с логами посещений.

Получение статистики посещений

Сначала задайте необходимые переменные:

bucket=my-website-logs
key=access/2025-04-11-logs.json
query="SELECT user_agent FROM S3Object"

Теперь выполните запрос:

aws --endpoint https://storage.turbocloud.ru s3api select-object-content \
--bucket $bucket \
--key $key \
--expression "$query" \
--expression-type 'SQL' \
--input-serialization 'JSON={Type=LINES}' \
--output-serialization 'CSV={}' \
"output.csv"

Чтобы вывести количество посещений для каждого агента пользователя, выполните агрегирующий запрос с помощью команд sort и uniq:

sort -nr output.csv | uniq -c

Пример результата

422 docker/20.10.5 go/go1.16.4 git-commit/9d123abc kernel/5.4.0-89-generic os/linux arch/amd64 UpstreamClient(Go-http-client/2.0)
249 docker/24.0.1 go/go1.19 git-commit/ff45d39 kernel/3.10.0-1160.el7 os/linux arch/amd64 UpstreamClient(Go-http-client/1.1)
95 aws-sdk-java/1.12.540 Linux/5.15.0-89 OpenJDK_64-Bit_Server_VM/17.0.2 java/17.0.2
21 aws-cli/2.14.3 Python/3.10.9 Linux/5.10.23 botocore/2.16.10