Logging actions with a bucket
In ColdStack, there is an option to log all actions with a bucket. You can record logs, for example, to run an internal security audit or get more granular information about bucket operations.
Logging is disabled by default. After you enable this option, ColdStack will write actions with the bucket to an object once an hour.
To save logs, do the following:
Define the source bucket that you want to log actions with.
Create a target bucket where you want to save the logs.
(optional) Select the prefix of the object key.
Prerequisites
The source and target buckets must be in the same region.
Format of the key for the log object
ColdStack uses the following format of the key for the log object:
Where:
prefix
: The prefix of the key for the log object. You can specify your own prefix when enabling logging.YYYY-MM-DD-HH-MM-SS
: Date and time of saving the log object in the target bucket (UTC format).ID
: A unique record ID that prevents the object from being overwritten.
Prefix of the key
The key prefix lets you distinguish:
Data belonging to different buckets, if the logs for multiple source buckets are saved to the same target bucket.
Logging actions from other actions with the bucket, if the logs are saved to the source bucket. That's because the logging operation is also considered an action with the bucket in this case.
Format of the log object
Logs are saved to a text file. For every action with the bucket, a record is written to the file in the following format:
bucket
String
Bucket name.
bytes_received
Int64
Size of the request in bytes.
bytes_send
Int64
Response size in bytes.
handler
String
Request method in the REST format.<HTTP method>.<subject>
.
http_referer
String
URL of the request source.
ip
String
User's IP address.
method
String
HTTP request method.
object_key
String
protocol
String
Data transfer protocol version.
range
String
An HTTP header that defines the range of bytes to load from the object.
requester
String
User ID.
request_args
String
Arguments of the URL request.
request_id
String
Request ID.
request_path
String
Full path of the request.
request_time
Int64
Request processing time, in milliseconds.
scheme
String
Type of data transfer protocol.
Acceptable values:
- http
, an application layer protocol.
- https
, an application layer protocol with encryption support.
ssl_protocol
String
Security protocol.
status
Int64
storage_class
String
timestamp
String
Date and time of the operation with the bucket, in the YYYY-MM-DDTHH:MM:MMZ
format.
user_agent
String
Client application (User Agent) that executed the request.
version_id
String
Version of the object.
vhost
String
Virtual host of the request.
Acceptable values:
– storage.yandexcloud.net
.
– bucket name>.storage.yandexcloud.net
.
– website.yandexcloud.net
.
– <bucket name>.website.yandexcloud.net
.
Logging specifics
There are several points to note about how actions with a bucket are logged in ColdStack.
Best-effort log delivery
Most requests to a bucket are written to the log file (if the bucket was set up correctly to support logging). Most records are written within a few hours after the request is actually processed.
However, ColdStack doesn't guarantee that the logs are saved in a complete and timely manner. It may take several hours to record an action with the bucket in a log file. In some cases, a record might fail to appear in the file.
The log file provides an overview of the nature of traffic in the bucket, but is not intended for logging every request. In the payment documents, you can find several requests that are not saved in the log file.
Pricing
The standard ColdStack pricing rules apply to logging.
Last updated