Viewing Sharded PostgreSQL cluster logs
Managed Service for Sharded PostgreSQL allows you to get a cluster log snippet for the selected time period and view logs in real time.
Note
Cluster logs are kept for 30 days.
Getting a cluster log
- Navigate to the Yandex Managed Service for Sharded PostgreSQL service.
- Click the name of your cluster and select the
Logs tab. - Specify a time period for the log entries you want to view: enter it manually or select in the calendar using the date input field.
- Optionally, add log filters in the row with the date input field:
- Select the
INFRA,ROUTER, orCOORDINATORservice type. - Specify the hosts.
- Select the logging level.
- Select the
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 yet, install and initialize it.
The folder used by default is the one specified when creating the CLI 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 options.
-
See the description of the CLI command for viewing cluster logs:
yc managed-sharded-postgresql 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-sharded-postgresql 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: Target service type for log retrieval (infra,router, orcoordinator). -
--columns: List of output columns:hostname: Host name.severity: Logging level, e.g.,info.message: Component’s log message.contextual_data: Additional information.
-
--filter: Record filter settings, e.g.,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.
-
-
Get an IAM token for API authentication and put it into 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-spqr/v1/clusters/<cluster_ID>:logs' \ --url-query serviceType=<service_type> \ --url-query columnFilter=<column_1> \ --url-query columnFilter=<column_2> \ ... \ --url-query columnFilter=<column_N> \ --url-query fromTime=<time_range_start> \ --url-query toTime=<time_range_end>Where:
-
serviceType: Target service type for log retrieval:INFRA:INFRAhost operations, which acts as both the router and coordinator.ROUTER: Router operations.COORDINATOR: Coordinator operations.
-
columnFilter: Name of the data column:hostname: Host name.severity: Logging level, e.g.,info.message: Component’s log message.contextual_data: Additional information.
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: Start of the time range in RFC-3339 format, e.g.,2024-09-18T15:04:05Z. -
toTime: End of the time range in the same format asfromTime.
-
-
Check the server response to make sure your request was successful.
-
Get an IAM token for API authentication and put it into 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/spqr/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.spqr.v1.ClusterService.ListLogsWhere:
-
service_type: Target service type for log retrieval:INFRA:INFRAhost operations, which acts as both the router and coordinator.ROUTER: Router operations.COORDINATOR: Coordinator operations.
-
column_filter: List of output columns:hostname: Host name.severity: Logging level, e.g.,info.message: Component’s log message.contextual_data: Additional information.
You can specify more than one column in the
column_filterparameter if you want to filter logs by multiple columns. -
from_time: Start of the time range in RFC-3339 format, e.g.,2024-09-18T15:04:05Z. -
to_time: End of the time range in the same format asfrom_time.
-
-
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 yet, install and initialize it.
The folder used by default is the one specified when creating the CLI 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 options.
To view cluster logs in real time, run this command:
yc managed-sharded-postgresql cluster list-logs <cluster_name_or_ID> \
--service-type <service_type> \
--follow
Where --service-type is the target service type for log retrieval (infra, router, or coordinator).
-
Get an IAM token for API authentication and put it into 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-spqr/v1/clusters/<cluster_ID>:stream_logs' \ --url-query serviceType=<service_type> \ --url-query columnFilter=<column_1> \ --url-query columnFilter=<column_2> \ ... \ --url-query columnFilter=<column_N> \Where:
-
serviceType: Target service type for log retrieval:INFRA:INFRAhost operations, which acts as both the router and coordinator.ROUTER: Router operations.COORDINATOR: Coordinator operations.
-
columnFilter: Name of the data column:hostname: Host name.severity: Logging level, e.g.,info.message: Component’s log message.contextual_data: Additional information.
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.
-
-
Check the server response to make sure your request was successful.
Once you launch the command, it will continue running, displaying new logs in its output in real time.
-
Get an IAM token for API authentication and put it into 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/spqr/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>" ] }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.spqr.v1.ClusterService.StreamLogsWhere:
-
service_type: Target service type for log retrieval:INFRA:INFRAhost operations, which acts as both the router and coordinator.ROUTER: Router operations.COORDINATOR: Coordinator operations.
-
column_filter: List of output columns:hostname: Host name.severity: Logging level, e.g.,info.message: Component’s log message.contextual_data: Additional information.
You can specify more than one column in the
column_filterparameter if you want to filter logs by multiple columns.
-
-
Check the server response to make sure your request was successful.
Once you launch the command, it will continue running, displaying new logs in its output in real time.