本页面介绍如何为 Cloud Logging 启用和查看作业日志。
您可以使用日志来获取对分析作业有用的信息。例如,日志可帮助您调试失败的作业。 为作业启用 Cloud Logging 后,Cloud Logging 会生成以下类型的日志供您查看:
- 任务日志 (
batch_task_logs
):写入标准输出 (stdout) 和标准错误 (stderr) 流的所有数据的日志。如需为作业生成任务日志,请配置任务,以写入数据以用于分析和调试这些数据流。 - 代理日志 (
batch_agent_logs
):来自 Batch 服务代理的活动日志。Batch 会自动为您的作业生成这些日志。
请注意,Cloud Logging 仅在作业开始运行后生成日志。如需验证作业是否已开始运行,请描述作业并确认作业的状态为 RUNNING
或更晚状态。如果您需要分析未生成日志的作业(例如,作业在 RUNNING
状态之前失败),请使用 gcloud CLI 或 Batch API 描述该作业,并检查 statusEvents
字段。
准备工作
- 如果您之前未使用过 Batch,请查看 Batch 使用入门,并通过完成项目和用户的前提条件来启用 Batch。
-
如需获取使用日志分析作业所需的权限,请让管理员授予您以下 IAM 角色:
-
如需创建启用了日志的作业,请对项目执行批量作业编辑器 (
roles/batch.jobsEditor
) -
如需查看日志,请执行以下操作:
项目上的日志查看器 (
roles/logging.viewer
)
如需详细了解如何授予角色,请参阅管理访问权限。
-
如需创建启用了日志的作业,请对项目执行批量作业编辑器 (
为作业启用日志
如需为作业生成日志,请在创建作业时启用 Cloud Logging:
- 如果您使用 Google Cloud 控制台创建作业,则 Cloud Logging 始终处于启用状态。
如果您使用 gcloud CLI 或 Batch API 创建作业,Cloud Logging 默认处于停用状态。如需启用 Cloud Logging,请在创建作业时为
logsPolicy
字段添加以下配置:{ ... "logsPolicy": { "destination": "CLOUD_LOGGING" } ... }
查看作业的日志
您可以使用 Google Cloud 控制台、gcloud CLI、Logging API、Go、Java 或 Python 在 Cloud Logging 中查看作业的日志。
控制台
如需使用 Google Cloud 控制台查看作业日志,请执行以下操作:
gcloud
如需使用 gcloud CLI 查看日志,请使用 gcloud logging read
命令:
gcloud logging read "QUERY"
其中 QUERY
是批量日志的查询。
API
如需使用 Logging API 查看日志,请使用 entries.list
方法:
POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
"projects/PROJECT_ID"
],
"filter": "QUERY"
"orderBy": "timestamp desc"
}
请替换以下内容:
Go
Go
如需了解详情,请参阅 Batch Go API 参考文档。
如需向 Batch 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
Java
如需了解详情,请参阅 Batch Java API 参考文档。
如需向 Batch 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
Python
如需了解详情,请参阅 Batch Python API 参考文档。
如需向 Batch 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
编写查询以过滤批量日志
您可以通过编写包含以下一个或多个过滤条件参数以及零个或零个以上布尔值运算符(AND
、OR
和 NOT
)的查询来过滤 Batch 日志。
如需过滤来自特定作业的日志,请指定该作业的唯一 ID (UID):
labels.job_uid=JOB_UID
其中
JOB_UID
是作业的 UID。如需获取作业的 UID,请描述相应作业。如需过滤特定类型的批处理日志,请指定日志类型:
logName=projects/PROJECT_ID/logs/BATCH_LOG_TYPE
请替换以下内容:
PROJECT_ID
:您要查看其日志的项目的项目 ID。BATCH_LOG_TYPE
:您要查看的批量日志类型,其中batch_task_logs
表示任务日志,batch_agent_logs
表示代理日志。
后续步骤
- 详细了解问题排查。
- 详细了解 Cloud Logging。
- 删除作业。