Skip to main content
CockroachDB Advanced users can use the to configure log export to Amazon CloudWatch, GCP Cloud Logging, or Azure Monitor. Once the export is configured, logs will flow from all nodes in all regions of your CockroachDB Advanced cluster to your chosen cloud log sink. You can configure log export to redact sensitive log entries, limit log output by severity, send log entries to specific log group targets by log channel, and more. Log exports include the cluster name (cloud_cluster_name) in addition to the cluster ID (cloud_cluster_id), which makes it easier to identify logs from specific clusters.

The logexport endpoint

To configure and manage log export for your CockroachDB Advanced cluster, use the logexport endpoint:
Access to the logexport endpoint requires a valid CockroachDB Cloud assigned one of the following :
The following methods are available for use with the logexport endpoint:
MethodDescription
GETReturns the current status of the log export configuration.
POSTEnables log export, or updates an existing log export configuration.
DELETEDisables log export, halting all log export to Amazon CloudWatch, GCP Cloud Logging, or Azure Monitor.

Log name format

GCP Cloud Logging and AWS CloudWatch logs have the following name format:
Where:
  • is a string of your choosing as you configure log export. For Amazon CloudWatch, this is the log group you create as part of enabling log export. For GCP Cloud Logging, this is the log_name you choose during configuration. Refer to the Enable log export instructions specific to your cloud provider for more information.
  • is the cloud provider region where your CockroachDB Advanced cluster resides.
  • is the CockroachDB , such as HEALTH or OPS.
  • is the node number of the CockroachDB Advanced node emitting the log messages. Log messages received before a node is fully started may appear in a log named without an explicit node number, ending in just .n.
For Azure Monitor, the logs have a different name format, refer to instructions.

Enable log export

Perform the following steps to enable log export from your CockroachDB Advanced cluster to Amazon CloudWatch.
  1. Create the desired target Amazon CloudWatch log group by following the Create a log group in CloudWatch logs instructions. If you already have a log group created, you can skip this step. To send logs to more than one target log group, refer to the custom configuration option in step 8.
  2. Find your CockroachDB Advanced cluster ID:
    1. Visit the CockroachDB Cloud console cluster page.
    2. Click on the name of your cluster.
    3. Find your cluster ID in the URL of the single cluster overview page: https://cockroachlabs.cloud/cluster/{your_cluster_id}/overview.
  3. Determine your CockroachDB Advanced cluster’s associated AWS Account ID. This command uses the third-party JSON parsing tool jq to isolate just the needed account_id field from the results:
    Refer to for instructions on generating the .
  4. Create a cross-account IAM role in your AWS account:
    1. In the AWS console, visit the IAM page.
    2. Select Roles and click Create role.
    3. For Trusted entity type, select AWS account.
    4. Choose Another AWS account.
    5. For Account ID, provide the CockroachDB Advanced AWS Account ID from step 3.
    6. Finish creating the IAM role with a suitable name. These instructions will use the role name CockroachCloudLogExportRole. You do not need to add any permissions.
You will need the Amazon Resource Name (ARN) for your cross-account IAM role later in this procedure.
  1. Select the new role, and create a new policy for this role. These instructions will use the policy name CockroachCloudLogExportPolicy.
  2. Select the new policy, and paste the following into the Permissions tab, with the {} JSON option selected:
    Where:
    • is the AWS Account ID of the AWS account where you created the CockroachCloudLogExportRole role, not the AWS Account ID of your CockroachDB Advanced cluster. You can find your AWS Account ID on the AWS IAM page.
    • is the target Amazon CloudWatch log group you created in step 1. This defines the set of permissions that the CockroachDB Advanced log export feature requires to be able to write logs to CloudWatch. If desired, you may also limit log export from your CockroachDB Advanced cluster to a specific single AWS region, by providing the name of the desired region as the fourth value to the Resource entry. For example:
      Specifying an AWS region that you do not have a cluster in, or a region that only partially covers your cluster’s nodes will result in missing logs.
  3. Copy the Amazon Resource Name (ARN) of the CockroachCloudLogExportRole role found under Summary, which is needed for the next step.
  4. Use one of the following Cloud API commands to enable log export for your CockroachDB Advanced cluster. The first presents a basic configuration, where all logs are sent to Amazon CloudWatch using the default settings. The second allows for more detailed customization of the logging configuration, such as the ability to send certain log channels to specific target log groups, or the ability to redact sensitive log entries.
    1. To enable log export for your CockroachDB Advanced cluster with default logging configuration, issue the following Cloud API command:
      Where:
      • is your CockroachDB Advanced cluster ID as determined in step 2.
      • is your CockroachDB Advanced API key. Refer to for instructions on generating this key.
      • is the target Amazon CloudWatch log group you created in step 1.
      • is the ARN for the CockroachCloudLogExportRole role you copied in step 7.
    2. To enable log export for your CockroachDB Advanced cluster with custom logging configuration:
      1. Consult the log export entry on the and select the Schema tab to view the supported log configuration options, and determine the customized logging configuration you would like to use. For example, consider the following configuration:
        This configuration:
        • Enables globally for all log entries emitted to Amazon CloudWatch.
        • Does not send log entries in the SESSIONS and SQL_PERF logging channels.
        • Sends log entries in the SQL_SCHEMA and SQL_EXEC to a Amazon CloudWatch log group named sql, and overrides (disables) the global redaction configuration for just these two log channels only.
        • Sends log entries in the OPS, HEALTH, and STORAGE to an Amazon CloudWatch log group named devops, but only for those entries that are of log WARNING or higher.
        • Sends log entries in all other logging channels to the default Amazon CloudWatch log group.
      2. Once you have determined the configuration you’d like to use, edit the configuration to be a single line, the required form for passing to the configuration command in the next step. To accomplish this easily, use a third-party minifier, such as json minifier. The preceding configuration becomes the following single line:
      3. To enable log export for your CockroachDB Advanced cluster with the preceding example configuration, issue the following Cloud API command:
        Where:
        • is your CockroachDB Advanced cluster ID as determined in step 2.
        • is your CockroachDB Advanced API key. Refer to for instructions on generating this key.
        • is the ARN for the CockroachCloudLogExportRole role you copied in step 7.
  5. Depending on the size of your cluster and how many regions it spans, the configuration may take a moment. You can monitor the ongoing status of the configuration using the following Cloud API command:
    Run the command periodically until the command returns a status of ENABLED, at which point the configuration across all nodes is complete, and logs will begin appearing in CloudWatch under the log group you created in step 1. Since the configuration is applied to cluster nodes in a rolling fashion, you may see some logs appear even before the GET command returns an ENABLED status.
  6. Once log export has been enabled, you can access logs from your CockroachDB Advanced cluster directly in Amazon CloudWatch.
Once log export has been enabled, logs generated going forward are sent to the specified cloud sink. Logs are not back-filled to the specified cloud sink.

Send logs over a private cloud connection

You can send logs to Amazon CloudWatch from private egress endpoints on your CockroachDB Cloud clusters to ensure they are sent over private connections within the cloud service. To learn more, read the .

Monitor the status of a log export configuration

To check the status of an existing CockroachDB Advanced log export configuration, use the following Cloud API command:
Where:
  • is your CockroachDB Advanced cluster’s cluster ID, which can be found in the URL of your Cloud Console for the specific cluster you wish to configure, resembling f78b7feb-b6cf-4396-9d7f-494982d7d81e.
  • is your CockroachDB Advanced API key. Refer to for instructions on generating this key.

Update an existing log export configuration

To update an existing CockroachDB Advanced log export configuration, make any necessary changes to your cloud provider configuration (e.g., Amazon CloudWatch or GCP Cloud Logging), then issue the same POST Cloud API command as shown in the Enable log export instructions for your cloud provider with the desired updated configuration. Follow the Monitor the status of a log export configuration instructions to ensure the update completes successfully.

Disable log export

To disable an existing CockroachDB Advanced log export configuration, and stop sending logs to a cloud log sink, use the following Cloud API command:
Where:
  • is your CockroachDB Advanced cluster’s cluster ID, which can be found in the URL of your Cloud Console for the specific cluster you wish to configure, resembling f78b7feb-b6cf-4396-9d7f-494982d7d81e.
  • is your CockroachDB Advanced API key. Refer to for instructions on generating this key.

Limitations

  • CockroachDB Advanced clusters hosted on AWS can only export logs to Amazon CloudWatch. Similarly, CockroachDB Advanced clusters hosted on GCP can only export logs to GCP Cloud Logging, and CockroachDB Advanced clusters hosted on Azure can only export logs to Azure Monitor.
  • The log export feature does not guarantee 100% log delivery or at-least-once delivery.

CockroachDB Advanced log export Frequently Asked Questions (FAQ)

Yes, use the redact: true log configuration option. Refer to for more information. Yes, use the custom log configuration step for your cloud provider, and specify multiple groups, each with a unique log_name value, in your configuration. No, if your CockroachDB Advanced cluster resides on AWS, you can only export your logs to Amazon CloudWatch. Similarly, if your CockroachDB Advanced cluster resides on GCP, you can only export your logs to GCP Cloud Logging, and if your CockroachDB Advanced cluster resides on Azure, you can only export your logs to Azure Monitor. No, logs for each region in your cluster are exported to the corresponding cloud log sink region configured for your account. For AWS, ensure that the target Amazon CloudWatch log group is configured with the same name in all target regions, and that the IAM role you are using has permission to access each regional log group. For GCP, you can configure Log Buckets to collect logs from different regions, as well as assign individual retention policies by region if desired. By default, all logs written to GCP Cloud Logging are written to a _Default bucket, in the “global” region. You can export the following CockroachDB : SESSIONS, OPS, HEALTH, STORAGE, SQL_SCHEMA, USER_ADMIN, PRIVILEGES, SENSITIVE_ACCESS, SQL_EXEC, SQL_PERF, and CHANGEFEED. Log channels, such as DEV, KV_DISTRIBUTION, SQL_INTERNAL_PERF, and TELEMETRY, cannot be exported from CockroachDB Advanced. These are for Cockroach Labs internal use cases and are not meant for external use. If you need access to additional logs, contact Support. Yes, the is exported via the SENSITIVE_ACCESS log channel by default, as long as you have previously enabled audit logging on desired tables using the statement. No, the CockroachDB Advanced log export feature does not support use of an AWS External ID. You must configure a cross-account IAM Role as described in the Enable log export instructions. No, log export configuration uses the syntax. For example, log export uses min_level to define log , while CockroachDB uses filter. Log messages received from CockroachDB Advanced nodes that are not yet fully started may arrive without a node number appended to the log name, in the format {logname}.n. Node-specific log messages, as they are received, are written to node-specific logs in the format {logname}.n1, {logname}.n2, etc., where the number following the n characters is the node ID. Refer to Log Name Format.

Troubleshooting

Amazon CloudWatch

Most log export errors stem from incorrect AWS IAM configuration. Ensure you have followed steps 1 through 6 of the Enable log export instructions closely, and that you have a cross-account IAM role which trusts your CockroachDB Advanced AWS account ID (as determined in step 3) and has permission to write to your specified log group in CloudWatch (as created in step 1). When supplying the Amazon Resource Name (ARN) to step 8, be sure you are supplying the ARN for the CockroachCloudLogExportRole role, not the ARN for the CockroachCloudLogExportPolicy policy. Whether you are using the default logging configuration or the custom configuration: be sure to supply this ARN to the auth_principal parameter, in the --data payload.

GCP Cloud Logging

When supplying the GCP project ID in step 6a or 6b, be sure you use the Project ID, and not the Project Name. Both are shown on the Google Cloud Console Settings page. You do not need to create a GCP service account to enable or manage log export. The GCP principal mentioned in step 3 and used in step 5c is already created for you. These steps simply determine the account name of this principal, which is specific to your cluster.