我的云日志控制台中大部分都有来自 cloudsql postgresql 审核日志的审核日志。
{
"textPayload": "2023-04-27 08:03:17.058 UTC [980077]: [41406-1] db=xyz,user=xyz LOG: duration: 6166.869 ms statement: FETCH 10000 FROM c1",
"insertId": "s=4ae93d4dfabf4fc6b09ckdanknc0f18e2;i=39eexcb;b=eca5cad5acb84ckjndkj9e5a3af5dc7aee47;m=153c87ckac099b;t=5fa4cca00kjbad2ae;x=aa1f7345cca3ckbcjb81d-0-0@a1",
"resource": {
"type": "cloudsql_database",
"labels": {
"project_id": "xyz",
"database_id": "xyz:postgres",
"region": "europe-west9"
}
},
"timestamp": "2023-04-27T08:03:17.059246Z",
"severity": "INFO",
"labels": {
"INSTANCE_UID": "12-d77d8db7-0633-4695-b4c7-0a8cdhdknec9392",
"LOG_BUCKET_NUM": "38"
},
"logName": "projects/xyz/logs/cloudsql.googleapis.com%2Fpostgres.log",
"receiveTimestamp": "2023-04-30T08:03:20.820646796Z"
}
我尝试查询
pg_cursors
,但由于没有活动连接,所以我没有看到任何数据。
我想跟踪该光标后面的原始查询
c1
或获取有关此FETCH 10000 FROM c1
查询的更多详细信息。
如何通过使用云日志记录或查询 postgresql 来获取更多详细信息?
语句:FETCH 10000 FROM C1是在postgresql中执行的原始(后端)查询。该查询将从游标C1检索接下来的10000行,因为默认情况下没有任何方向,postgresql将方向视为NEXT。
请参阅此如果您想了解有关此PgAudit 日志的更多详细信息,请尝试通过将 logName 更改为您的 logName 来执行此查询(logName: "projects/xyz/logs/cloudsql.googleapis.com%2Fpostgres.log" )
resource.type="cloudsql_database"
logName="projects/<your-project-name>/logs/cloudaudit.googleapis.com%2Fdata_access"
protoPayload.request.@type="type.googleapis.com/google.cloud.sql.audit.v1.PgAuditEntry"
输出将是这样的
{
protoPayload: {
@type: "type.googleapis.com/google.cloud.audit.AuditLog"
methodName: "cloudsql.instances.query"
request: {
@type: "type.googleapis.com/google.cloud.sql.audit.v1.PgAuditEntry"
auditClass: "READ"
auditType: "SESSION"
chunkCount: "1"
chunkIndex: "1"
command: "SELECT"
database: "finance"
databaseSessionId: 2209692
parameter: "[not logged]"
statement: "SELECT * FROM C1"
statementId: 2
substatementId: 1
user: "alice"
}
}
}
这里的statement值指的是后端执行的查询。此查询将有助于获取有关审核日志的更多详细信息。有关查询和审核日志的更多信息,请参阅此文档。
更新:
Cloud SQL for PostgreSQL 中的数据库审核可通过开源pgAudit 扩展进行。通过使用此扩展,您可以有选择地记录和跟踪针对给定数据库实例执行的 SQL 操作。 该扩展为您提供了审核功能来监视和记录选定的操作子集。
pgAudit 扩展适用于执行的 SQL 命令和查询。相比之下,云审核日志应用于审核在 Cloud SQL 实例上完成的管理和维护操作。
请参阅此