Клиентские логи сервиса Object Storage содержат детальную техническую информацию об обращениях к бакету через AWS S3 API и личный кабинет и запросах к s3-website. Они позволяют отслеживать ошибки в работе сервисов и приложений, находить узкие места и быстро реагировать на инциденты.
Клиентские логи не содержат информации о событиях на уровне тенанта. Для получения этой информации используйте аудитные логи.
По умолчанию логирование Object Storage отключено.
Чтобы сервис передавал клиентские логи, включите логирование и укажите лог-группу при создании или редактировании бакета в личном кабинете.
Логи передаются и хранятся централизованно в сервисе «Клиентское логирование».
Для просмотра логов перейдите в раздел личного кабинета Мониторинг → Логирование → Просмотр логов и выберите лог-группу, указанную при включении логирования.
По умолчанию отображаются логи всех сервисов и ресурсов. Чтобы отобразить только логи Object Storage, используйте фильтрацию по меткам Object Storage.
Для точной выборки логов используйте язык фильтрующих выражений. Это позволяет найти записи логов по определенным параметрам и их комбинациям. Например, по тексту сообщения в записи лога, важности лога и метке.
Ниже описаны уровни лога, метки и сообщения, которые передает сервис Object Storage.
Фильтрация по уровням логов позволяет классифицировать логи по важности и срочности реагирования.
Сервис Object Storage передает логи уровня INFO.
Метки передаются в поле labels и позволяют детализировать запрос. Формат обращения к метке в выражении: labels.<label-name>="value".
Для фильтрации записей сервиса Object Storage применяются следующие метки.
Название метки | Описание |
|---|---|
bucket_name | Название бакета. |
tenant_id | Идентификатор тенанта. |
Сообщение передается в поле message и имеет следующую структуру:
Параметр сообщения | Формат | Описание |
|---|---|---|
bucket_owner | string | Идентификатор тенанта. |
bucket | string | Название бакета. |
time | string | Дата и время получения запроса в формате [dd/MMM/yyyy:HH:mm:ss ±zzzz]. |
remote_ip | string | IP-адрес субъекта, который отправил запрос. |
requester | object | Информация о субъекте, который отправил запрос. |
requester.subject_id | string | Идентификатор субъекта, который отправил запрос. Если запрос не авторизован, значение unauthenticated. |
requester.subject_type | string | Тип субъекта. Возможные значения:
|
request_id | string | Уникальный идентификатор запроса. |
operation | string | Описание запроса в формате REST.<http_method>. Для некоторых операций название метода AWS S3 API, используемое в запросе, и название, отображаемое в логах, отличаются. Методы ListObjects и ListObjectsV2 записываются в логах в виде строки REST.ListBucket, ListMultipartUploads — REST.ListMultipartUpload, UploadPart — REST.PutObjectPart. |
key | string | Ключ (название) объекта. Параметр передается только для операций с объектами. |
request_uri | string | URI запроса. |
status | string | HTTP-статус ответа. |
error_code | string | Код ошибки, если она возникла. |
bytes_sent | string | Число байт, отправленных в ответе на запрос. |
bytes_received | string | Число байт, полученных в запросе. |
obj_size | string | Размер тела ответа (Content-Length) в байтах. |
total_time | string | Время выполнения запроса в миллисекундах. Считается от получения запроса до отправки последнего байта ответа. |
turn_around_time | string | Время обработки запроса в миллисекундах. Считается от получения последнего байта запроса до отправки первого байта ответа. |
referer | string | Значение заголовка Referer, если он был передан в запросе. При отправке запроса через личный кабинет — https://console.cloud.ru/. |
user_agent | string | Значение заголовка User-Agent. |
version_id | string | Значение параметра version-id-marker в запросе ListObjectVersions — версия объекта, с которой начинается выдача. |
signature | string | Тип подписи запроса.
|
authentication_type | string | Тип аутентификации:
|
host_header | string | Эндпоинт подключения к хранилищу. |
Примеры запросов к логам для решения частых задач Object Storage:
Найти все запросы на действия с бакетом my-bucket в тенанте acb8b360-4274-4c54-****-****:
labels.bucket_name="my-bucket" AND labels.tenant_id="acb8b360-4274-4c54-****-****"
Найти все запросы на действия с бакетами my-bucket и my-bucket-1:
labels.bucket_name="my-bucket" OR labels.bucket_name="my-bucket-1"
Найти все запросы на действия в тенанте acb8b360-4274-4c54-****-****, кроме действий в бакетах my-bucket и my-bucket-1:
labels.tenant_id="acb8b360-4274-4c54-****-****" AND labels.bucket_name not_in ["my-bucket", "my-bucket-1"]
На основе логов вы можете настроить уведомление о событиях или отклонениях в работе сервиса. Это позволит оперативно реагировать на инциденты, сбои и ошибки, а также снизить время простоя.