Cloud SQL 日志记录

本页介绍如何查找和使用 Cloud Logging 以查看和查询 Cloud SQL 实例的日志。

Cloud SQL 使用 Cloud Logging。如需了解完整信息,请参阅 Cloud Logging 文档并查看 Cloud SQL 示例查询

查看日志

如需查看 Cloud SQL 实例日志条目的日志,请执行以下操作:

控制台

  1. 在 Google Cloud Console 中,转到 Cloud Logging 页面。

    转到 Cloud Logging

  2. 在页面顶部选择一个现有 Cloud SQL 项目。
  3. 在查询构建器中,添加以下内容:
    • 资源:选择 Cloud SQL 数据库。在该对话框中,选择一个 Cloud SQL 实例。
    • 日志名称:滚动到 Cloud SQL 部分,并为您的实例选择相应的日志文件。例如:
      • cloudsql.googleapis.com/sqlagent.out
      • cloudsql.googleapis.com/sqlserver.err
    • 严重程度:选择一个日志级别。
    • 时间范围:选择预设范围或创建自定义范围。

gcloud

使用 gcloud logging 命令查看日志条目。 在下面的示例中,替换 PROJECT_IDlimit 标志是一个可选参数,用于指示要返回的最大条目数。

gcloud logging read "resource.type=cloudsql_database" \
--project=PROJECT-ID \
--limit=10 \
--format=json

查看实例操作日志

您可以在操作窗格中查看实例的日志。操作窗格会将对实例执行的所有操作记录到日志中,并包含以下信息:

  • 操作完成的时间,按照您的本地时区报告。
  • 操作的类型。
  • 操作的状态。
  • 说明操作结果的消息。

如果操作失败,您可以使用该消息来排查问题。

如需查看实例操作日志,请执行以下操作

  1. 在 Google Cloud Console 中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 点击实例名称,打开其概览页面。
  3. 点击操作切换到显示操作日志的窗格。
注意:操作日志不包含使用外部管理工具(如 SQL Server 命令行工具)执行的操作。 只有使用 Google Cloud Console、gcloud 命令行工具或 Cloud SQL Admin API 执行的用户管理和密码更改操作才会出现在操作日志中。

查看应用日志

连接到 Cloud SQL 的应用会将其日志存储在不同位置。

App Engine(柔性环境)

计算 > App Engine > 服务中:

  • 在服务列表中,找到您的服务。
  • 点击工具下拉列表。
  • 选择日志

在 Google Cloud Console 的操作 > Logging > 日志浏览器部分,使用以下查询:

resource.type="gae_app"
resource.labels.module_id="default"

Cloud Run

在 Google Cloud Console 的 Cloud Run 日志浏览器部分查看日志。请注意,Cloud Run 仅报告来自 Cloud SQL 身份验证代理的错误消息。使用如下所示的查询:

resource.type="cloud_run_revision"
resource.labels.service_name="$SERVICE_NAME"
resource.labels.revision_name="$REVISION_NAME"

Cloud SQL Auth 代理

操作 > Logging > 日志浏览器中,使用以下查询:

log_id("appengine.googleapis.com/cloud_sql_proxy")

问题排查

点击表中的链接可查看详细信息:

针对此问题… 可能的原因… 请尝试以下操作…
Logging 占用了大量 CPU 和内存。 Logging 需要进行调整。 尝试调整日志记录资源使用情况
未找到审核日志。 用户身份验证。 检查用户角色和权限
在日志中找不到操作信息。 审核日志未启用。 启用审核日志记录
日志文件难以读取。 您只想以 json 或文本形式查看日志。 使用 gcloud logging 命令

Logging 占用了大量 CPU 和内存

Logging 占用了大量 CPU 和内存。

可能的问题

Logging 使用情况需要进行调整。

可以尝试的操作

log_statement 标志可以设置为“none”,logging_collector 标志可以设置为“off”。如果仍在进行日志记录,则可能存在其他与日志相关的标志可以调整。您可以修改实例来改动这些标志。


审核日志记录

您为 Cloud SQL 启用了审核日志记录,但在 Cloud Logging 中找不到任何审核日志

可能的问题

只有当操作是经过身份验证的用户进行的 API 调用(用于创建、修改或读取用户创建的数据),或者操作访问配置文件或资源元数据时,才会写入数据访问日志。

可以尝试的操作

检查执行操作的用户的角色和权限。


在日志中找不到操作信息

您想要详细了解某项操作。例如,用户已被删除,但您找不到谁执行了此操作。日志显示操作已开始,但未提供任何更多信息。

可能的问题

您必须为要记录的详细个人身份信息 (PII) 等启用审核日志记录。

可以尝试的操作

在项目中启用审核日志记录


日志文件难以读取

您发现很难在日志浏览器中读取日志。

可能的原因

您只想以 JSON 或文本格式在本地下载日志。

可以尝试的操作:

您可以使用 gcloud logging read 命令以及 linux 后处理命令下载日志。

如需下载为 JSON 文件,请运行以下命令:

gcloud logging read "resource.type=cloudsql_database AND logName=projects/PROJECT-ID/logs/cloudsql.googleapis.com%2FLOGFILE-NAME" --format json --project=PROJECT-ID--freshness="1d" > downloaded-log.json

如需下载为 TEXT 文件,请运行以下命令:

gcloud logging read "resource.type=cloudsql_database AND logName=projects/PROJECT-ID/logs/cloudsql.googleapis.com%2FLOGFILE-NAME" --format json --project=PROJECT-ID--freshness="1d"| jq -rnc --stream 'fromstream(1|truncate_stream(inputs)) | .textPayload' > downloaded-log.txt