我的cloud logging console里到处都有来自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来获取更多细节?
1条答案
按热度按时间8ehkhllq1#
声明:FETCH 10000 FROM C1显示在您提到的日志中,是在postgresql中执行的原始(后端)查询。此查询将从游标C1中检索接下来的10000行,因为默认情况下没有任何方向,postgresql将方向视为NEXT。
有关FETCH命令的更多详细信息,请参阅此link。
如果您想了解该PgAudit日志的详细信息,请尝试执行此查询,将logName更改为您的logName(logName:“projects/xyz/logs/cloudsql.googleapis.com%2Fpostgres.log”)
输出结果如下所示
这里的语句值是指在后台执行的查询。此查询将帮助您获取审核日志的详细信息。有关查询和审核日志的详细信息,请参阅本文档。
更新时间:
Cloud SQL for PostgreSQL中的数据库审计可通过开源pgAudit扩展提供。通过使用此扩展,您可以有选择地记录和跟踪针对给定数据库示例执行的SQL操作。该扩展为您提供了审计功能,以监视和记录选定的操作子集。
pgAudit扩展适用于执行的SQL命令和查询。相反,云审计日志应用于审计在云SQL示例上完成的管理和维护操作。
请参阅document配置PostgreSQL pgAudit扩展。