Viewing Yandex StoreDoc cluster logs
Yandex StoreDoc enables retrieval of cluster log snippets for a chosen period and real-time log viewing.
Note
Cluster logs are kept for 30 days.
Getting a cluster log
- Navigate to the page of the folder
that contains your cluster. - Navigate to the Yandex StoreDoc service.
- Click the name of your cluster and select the
Logs tab. - Specify a time period for the log entries to be displayed: enter it manually or click the date field to choose from a calendar.
- If needed, specify the hosts and logging level in the row containing the date field.
You will see a list of log entries for the chosen time period. To see details of a specific event, click its entry in the list.
If the list is too long to display all entries at once, click Load more at the end of the list.
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.
-
See the description of the CLI command for viewing cluster logs:
yc managed-mongodb cluster list-logs --help -
Run the command below to get cluster logs. Note that this example does not show all available command options:
yc managed-mongodb cluster list-logs <cluster_name_or_ID> \ --limit <entry_number_limit> \ --service-type <service_type> \ --columns <list_of_data_columns> \ --filter <entry_filtration_settings> \ --since <time_range_start> \ --until <time_range_end>Where:
-
--limit: limits on the number of entries to output. -
--service-type: Service type for log entries. Possible values aremongod,mongos,mongocfg, andaudit. -
--columns: List of output columns:component: Type of logged component, e.g,CONTROL.context: Executable module name, e.g.,signalProcessingThread.hostname: Host name.message: Component’s log message.severity: Logging level, e.g.,I(Info),W(Warning), etc.
Note
The list of output columns depends on the selected
--service-type. -
--filter: record filter settings, for example,message.hostname='node1.mdb.yandexcloud.net'. -
--since: Left boundary of a time range in RFC-3339 ,HH:MM:SSformat or a time interval relative to the current time. Examples:2006-01-02T15:04:05Z,15:04:05,2h,3h30m ago. -
--until: right boundary of a time range, the format is similar to that of--since.
-
You can get the cluster’s name and ID from the list of clusters in your folder.
-
Get an IAM token for API authentication and place it in an environment variable:
export IAM_TOKEN="<IAM_token>" -
Call the Cluster.ListLogs method, e.g., via the following cURL
request:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<cluster_ID>:logs' \ --url-query serviceType=<service_type> \ --url-query columnFilter=<column_list> \ --url-query fromTime=<time_range_start> \ --url-query toTime=<time_range_end>Where:
-
serviceType: Source service type for logs:MONGOD: Yandex StoreDoc operations log.AUDIT: Audit log.
-
columnFilter: List of output columns:hostname: Host name.component: Type of component to log, Example:HTTP-Session.message: Message output by the component.query_id: Request ID.severity: Logging level, e.g.,Debug.thread: ID of the thread involved in query handling.
You can specify only one column in the
columnFilterparameter. If you want to filter logs by more than one column, provide a list of the columns in several parameters.fromTime: Left boundary of a time range in RFC-3339 format, Example:2006-01-02T15:04:05Z.
toTime: End of the time range in the same format asfromTime.
You can get the cluster ID from the list of clusters in your folder.
-
-
Check the server response to make sure your request was successful.
-
Get an IAM token for API authentication and place it in an environment variable:
export IAM_TOKEN="<IAM_token>" -
Clone the cloudapi
repository:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiBelow, we assume that the repository contents reside in the
~/cloudapi/directory. -
Call the ClusterService.ListLogs method, e.g., via the following gRPCurl
request:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<cluster_ID>", "service_type": "<service_type>", "column_filter": [ "<column_1>", "<column_2>", ..., "<column_N>" ], "from_time": "<time_range_start>", "to_time": "<time_range_end>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.ClusterService.ListLogsWhere:
-
service_type: Source service type for logs:MONGOD: Yandex StoreDoc operations log.AUDIT: Audit log.
-
column_filter: List of output columns:hostname: Host name.component: Type of component to log, Example:HTTP-Session.message: Message output by the component.query_id: Request ID.severity: Logging level, e.g.,Debug.thread: ID of the thread involved in query handling.
You can specify more than one column in the
column_filterparameter if you want to filter logs by multiple columns.from_time: Left boundary of a time range in RFC-3339 format, Example:2006-01-02T15:04:05Z.
to_time: End of the time range in the same format asfrom_time.
You can get the cluster ID from the list of clusters in your folder.
-
-
Check the server response to make sure your request was successful.
Streaming cluster logs
This method allows you to stream cluster logs in real time.
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.
To view cluster logs in real time, run this command:
yc managed-mongodb cluster list-logs <cluster_name_or_ID> --follow
You can get the cluster’s name and ID from the list of clusters in your folder.
-
Get an IAM token for API authentication and place it in an environment variable:
export IAM_TOKEN="<IAM_token>" -
Call the Cluster.StreamLogs method, e.g., via the following cURL
request:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<cluster_ID>:stream_logs' \ --url-query serviceType=<service_type> \ --url-query columnFilter=<column_list> \ --url-query fromTime=<time_range_start> \ --url-query toTime=<time_range_end> \ --url-query filter=<log_filter>Where:
-
serviceType: Source service type for logs:MONGOD: Yandex StoreDoc operations log.AUDIT: Audit log.
-
columnFilter: List of output columns:hostname: Host name.component: Type of component to log, Example:HTTP-Session.message: Message output by the component.query_id: Request ID.severity: Logging level, e.g.,Debug.thread: ID of the thread involved in query handling.
You can specify only one column in the
columnFilterparameter. If you want to filter logs by more than one column, provide a list of the columns in several parameters.fromTime: Left boundary of a time range in RFC-3339 format, Example:2006-01-02T15:04:05Z.
toTime: End of the time range in the same format asfromTime.
-
filter: Log filter. You can use a filter to stream only the logs you need.To learn more about filters and their syntax, see the API reference.
Tip
A filter can contain quotation marks and other characters. Escape them if you need to.
Supported filters:
message.hostname: Filtering by host name.message.severity: Filtering by logging level.
You can get the cluster ID from the list of clusters in your folder.
-
-
Check the server response to make sure your request was successful.
-
Get an IAM token for API authentication and place it in an environment variable:
export IAM_TOKEN="<IAM_token>" -
Clone the cloudapi
repository:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiBelow, we assume that the repository contents reside in the
~/cloudapi/directory. -
Call the ClusterService.StreamLogs method, e.g., via the following gRPCurl
request:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<cluster_ID>", "service_type": "<service_type>", "column_filter": [ "<column_1>", "<column_2>", ..., "<column_N>" ], "from_time": "<time_range_start>", "to_time": "<time_range_end>", "filter": "<log_filter>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.ClusterService.StreamLogsWhere:
-
service_type: Source service type for logs:MONGOD: Yandex StoreDoc operations log.AUDIT: Audit log.
-
column_filter: List of output columns:hostname: Host name.component: Type of component to log, Example:HTTP-Session.message: Message output by the component.query_id: Request ID.severity: Logging level, e.g.,Debug.thread: ID of the thread involved in query handling.
You can specify more than one column in the
column_filterparameter if you want to filter logs by multiple columns.from_time: Left boundary of a time range in RFC-3339 format, Example:2006-01-02T15:04:05Z.
to_time: End of the time range in the same format asfrom_time.
-
filter: Log filter. You can use a filter to stream only the logs you need.To learn more about filters and their syntax, see the API reference.
Tip
A filter can contain quotation marks and other characters. Escape them if you need to.
Supported filters:
message.hostname: Filtering by host name.message.severity: Filtering by logging level.
You can get the cluster ID from the list of clusters in your folder.
-
-
Check the server response to make sure your request was successful.