Yandex.Cloud
  • Сервисы
  • Почему Yandex.Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Yandex Object Storage
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Бакеты
      • Создание бакета
      • Удаление бакета
      • Ограничение максимального размера бакета
      • Открытие публичного доступа к бакету
      • Шифрование бакета
      • Управление жизненными циклами объектов
      • Управление конфигурацией CORS
      • Редактирование ACL бакета
      • Включение механизма логированния
    • Объекты
      • Загрузка объекта
      • Получение информации об объекте
      • Скачивание объекта
      • Получение публичной ссылки на объект
      • Удаление объекта
      • Удаление частично загруженного объекта
      • Редактирование ACL объекта
    • Хостинг статических сайтов
      • Настройка хостинга
      • Поддержка собственного домена
      • Поддержка нескольких доменных имен
      • Настройка HTTPS
  • Концепции
    • Обзор
    • Бакет
    • Объект
    • Версионирование бакета
    • Жизненные циклы объектов
    • CORS
    • Хостинг статических сайтов
    • Подписанные (pre-signed) URL
    • Составная (multipart) загрузка
    • Список управления доступом (ACL)
    • Политика доступа (Bucket Policy)
    • Загрузка файла через HTML форму
    • Класс хранилища
    • Механизм логирования действий с бакетом
    • Резервное копирование
    • Протокол TLS
    • Квоты и лимиты
  • Инструменты
    • Все инструменты
    • Консольные клиенты
      • AWS CLI
      • S3cmd
    • Файловые браузеры
      • CyberDuck
      • WinSCP
    • SDK
      • AWS SDK для Java
      • Python SDK (boto)
    • FUSE
      • s3fs
      • goofys
  • HTTP API, совместимый с Amazon S3
    • Как пользоваться API
    • Подписывание запросов
    • Справочник API
      • Все сервисы и методы
      • Bucket
        • Все методы
        • create
        • getBucketEncryption
        • getMeta
        • listObjects
        • listBuckets
        • deleteBucket
        • deleteBucketEncryption
        • putBucketEncryption
        • putBucketVersioning
        • getBucketVersioning
        • putBucketLogging
        • getBucketLogging
        • listObjectVersions
      • Object
        • Все методы
        • upload
        • get
        • copy
        • getObjectMeta
        • delete
        • deleteMultipleObjects
        • options
      • Multipart upload
        • Общий порядок составной загрузки
        • startUpload
        • uploadPart
        • copyPart
        • listParts
        • abortUpload
        • completeUpload
        • listUploads
      • Static Website Hosting
        • Все методы
        • upload
        • get
        • delete
        • Коды ответов статического сайта
      • CORS
        • Все методы
        • XML-структура конфигурации CORS
        • upload
        • get
        • delete
      • Lifecycles
        • Все методы
        • XML-структура конфигурации жизненных циклов
        • upload
        • get
        • delete
      • ACL
        • Все методы
        • XML-структура конфигурации ACL
        • objectGetAcl
        • objectPutAcl
        • bucketGetAcl
        • bucketPutAcl
      • Bucket Policy
        • Все методы
        • GetBucketPolicy
        • PutBucketPolicy
        • DeleteBucketPolicy
        • Схема данных
        • Действия
        • Условия
      • Общие заголовки запросов
      • Общие заголовки ответов
      • Ответы
  • Управление доступом
  • Правила тарификации
    • Действующие правила
    • Архив
      • До 1 января 2019 года
      • С 1 января до 1 марта 2019 года
  • Вопросы и ответы
  1. Концепции
  2. Механизм логирования действий с бакетом

Механизм логирования действий с бакетом

  • Требования
  • Формат ключа объекта с логами
    • Префикс ключа
  • Формат объекта с логами
  • Особенности механизма логирования
    • Негарантированная доставка логов
    • Длительное включение механизма
  • Тарификация

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

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

Чтобы записывать логи, необходимо:

  • определить исходный бакет, действия с которым необходимо логировать;
  • создать целевой бакет, куда будут записываться логи;
  • включить механизм логирования;
  • (опционально) выбрать префикс ключа объекта.

Требования

Исходный и целевой бакеты должны находиться в одном облаке.

Формат ключа объекта с логами

Object Storage использует следующий формат ключа объекта с логами:

<префикс>/ГГГГ-ММ-ДД-ЧЧ-ММ-СС-<идентификатор>

Где:

  • префикс/ — префикс ключа объекта с логами. Вы можете самостоятельно указать префикс при включении механизма логирования.
  • ГГГГ-ММ-ДД-ЧЧ-ММ-СС — дата и время сохранения объекта с логами в целевом бакете, в формате UTC.
  • идентификатор — уникальный идентификатор записи, который предотвращает перезапись объекта.

Префикс ключа

Префикс ключа позволяет различать:

  • Данные из разных бакетов, если логи для нескольких исходных бакетов сохраняются в один целевой.
  • Действия по логированию от остальных действий с бакетом, если логи сохраняются в исходном бакете. Так как в этом случае сама операция логирования тоже будет учтена как действие с бакетом.
  • Объекты с логами и другие объекты, чтобы периодически удалять логи. Вы можете настроить жизненный цикл целевого бакета так, чтобы объекты с определенным префиксом ключа удалялись автоматически.

Формат объекта с логами

Логи сохраняются в файл в формате JSON. На каждое действие с бакетом в файле появляется запись следующего формата:

Поле Тип Описание
bucket String Имя бакета.
bytes_received Int64 Размер запроса в байтах.
bytes_send Int64 Размер ответа в байтах.
handler String Метод запроса в формате REST.<HTTP-метод>.<субъект>.
http_referer String URL-адрес источника запроса.
ip String IP-адрес пользователя.
method String Метод HTTP-запроса.
object_key String Ключ объекта, закодированный методом URL-кодировки.
protocol String Версия протокола передачи данных.
range String HTTP-заголовок, который определяет диапазон байт для загрузки из объекта.
requester String Идентификатор пользователя.
request_args String Аргументы URL-запроса.
request_id String Идентификатор запроса.
request_path String Полный путь запроса.
request_time Int64 Время обработки запроса, в миллисекундах.
scheme String Тип протокола передачи данных.
Возможные значения:
- http — протокол прикладного уровня передачи данных.
- https — протокол прикладного уровня передачи данных с поддержкой шифрования.
ssl_protocol String Протокол обеспечения безопасности.
status Int64 HTTP-код ответа.
storage_class String Класс хранилища объекта.
timestamp String Дата и время операции с бакетом, в формате ГГГГ-ММ-ДДTЧЧ:ММ:ССZ.
user_agent String Клиентское приложение (User Agent), которое выполнило запрос.
version_id String Версия объекта.
vhost String Виртуальный хост запроса.
Возможные значения:
– storage.yandexcloud.net.
– <имя бакета>.storage.yandexcloud.net.
– website.yandexcloud.net.
– <имя бакета>.website.yandexcloud.net.

Пример записи в файле с логами:

{
  "bucket": "my-bucket-example",
  "bytes_received": 749,
  "bytes_send": 1251,
  "handler": "REST.GET.OBJECT",
  "http_referer": "https://example.com/page",
  "ip": "84.201.121.46",
  "method": "GET",
  "object_key": "path/logs/2020-11-10-14-42-11-123f57b5-1853-4120-8d7a-5bcc1e9e9b4f",
  "protocol": "HTTP/1.1",
  "range": "-",
  "requester": "-",
  "request_args": "X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Date=20201030T072100Z\u0026X-Amz-SignedHeaders=host\u0026X-Amz-Expires=43200\u0026X-Amz-Credential=ZGB4EY1...\u0026X-Amz-Signature=12f350...",
  "request_id": "1235efdab7445028",
  "request_path": "/my-bucket-example/path/logs/2020-11-10-14-42-11-123f57b5-1853-4120-8d7a-5bcc1e9e9b4f?X-Amz-...",
  "request_time":88,
  "scheme": "https",
  "ssl_protocol": "TLSv1.2",
  "status": 200,
  "storage_class": "STANDARD",
  "timestamp": "2020-11-10T13:21:18Z",
  "user_agent": "docker/19.03.9 go/go1.13.10 git-commit/1d238398e7 kernel/4.4.0-142-generic os/linux arch/amd64 UpstreamClient(Go-http-client/1.1)",
  "version_id": "",
  "vhost": "storage.yandexcloud.net"
}

Особенности механизма логирования

У механизма логирования действий с бакетом в Object Storage есть несколько особенностей.

Негарантированная доставка логов

Большинство запросов к бакету, который был корректно настроен для логирования, сохраняются в файле с логами. Большинство записей сохраняются в течение нескольких часов после фактической обработки запроса.

Однако Object Storage не гарантирует полноту и своевременность записи логов. Запись о действии с бакетом может быть сохранена в файле с логами спустя несколько часов. В некоторых случаях запись в файле может не появиться.

Файл с логами дает общее представление о характере трафика в бакете, но не предназначен для полного учета всех запросов. В платежных документах вы можете найти несколько запросов, которые не будут отражены в файле с логами.

Длительное включение механизма

Включение механизма логирования и изменение настроек занимает около часа. Первый объект с логами сохранится в бакет через пару часов после включения механизма, но иногда поставка логов может занимать больше времени.

При изменении целевого бакета некоторые логи будут доставляться в предыдущий целевой бакет, другие — в новый.

Все изменения настроек вступят в силу без дополнительных действий со стороны пользователя.

Тарификация

Для механизма логирования действуют стандартные правила тарификации Object Storage.

В этой статье:
  • Требования
  • Формат ключа объекта с логами
  • Префикс ключа
  • Формат объекта с логами
  • Особенности механизма логирования
  • Негарантированная доставка логов
  • Длительное включение механизма
  • Тарификация
Language
Вакансии
Политика конфиденциальности
Условия использования
© 2021 ООО «Яндекс.Облако»