本文档介绍了如何启用、生成和查看 来自 Cloud Logging 的日志 。
您可以使用日志来获取对 来分析作业。例如,日志可以帮助您调试失败的作业。
值得注意的是,只有在作业开始运行之后才会生成日志 并且仅当为作业启用了日志记录时才发送提醒。 如果您需要分析没有日志的作业, 查看状态事件。
准备工作
- 如果您之前未使用过批处理功能,请参阅开始使用批处理,并完成适用于项目和用户的前提条件,以启用批处理功能。
-
如需获得使用日志分析作业所需的权限,请让您的管理员为您授予以下 IAM 角色:
-
如需创建作业,请执行以下操作:
-
项目的 Batch Job Editor (
roles/batch.jobsEditor
) -
Service Account User (
roles/iam.serviceAccountUser
) 服务账号用户 针对作业的服务账号,该账号默认为默认 Compute Engine 服务账号
-
项目的 Batch Job Editor (
-
如需查看日志,请执行以下操作:
日志查看器 (
roles/logging.viewer
) 针对项目
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
-
如需创建作业,请执行以下操作:
为作业启用日志记录
如需允许为某个作业生成日志,请从以下位置启用日志: 创建作业时使用 Cloud Logging:
- 如果您使用 Google Cloud 控制台创建作业, Cloud Logging 始终处于启用状态。
如果您使用 gcloud CLI 或 批处理 API,来自 Cloud Logging 的日志已停用 默认情况。如需从 Cloud Logging 启用日志,请添加以下内容 配置
logsPolicy
字段:{ ... "logsPolicy": { "destination": "CLOUD_LOGGING" } ... }
为作业写入和生成日志
为作业启用来自 Cloud Logging 的日志后, 系统会自动生成为此作业写入的任何日志。 具体而言,批处理作业可以具有以下日志类型:
代理日志 (
batch_agent_logs
):活动日志 。Batch 会自动为每个作业写入代理日志 已启用日志记录
任务日志 (
batch_task_logs
):您配置了 将作业的可运行对象写入 标准输出 (stdout
) 流或标准错误 (stderr
) 流。您可以选择性地为每个会话写入任务日志 已启用日志记录的作业。
查看作业的日志
您可以使用 Google Cloud 控制台、 gcloud CLI、Logging API、Go、Java、Python 或 C++。
控制台
如需使用 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
如需了解详情,请参阅 批处理 Go API 参考文档。
如需向 Batch 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
Java
有关详情,请参阅 批处理 Java API 参考文档。
如需向 Batch 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
Python
有关详情,请参阅 批处理 Python API 参考文档。
如需向 Batch 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
C++
C++
有关详情,请参阅 批处理 C++ API 参考文档。
如需向 Batch 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
过滤 Batch 日志
您可以通过编写查询来过滤批处理日志
包含以下一个或多个过滤器参数,以及零个或多个
布尔运算符(AND
、OR
和 NOT
)。
如需过滤来自特定作业的日志,请指定作业的唯一 ID (UID):
labels.job_uid=JOB_UID
其中,
JOB_UID
是作业的 UID。接收者 获取作业的 UID 查看作业的详细信息。要过滤特定类型的 Batch 日志,请指定 日志类型:
logName=projects/PROJECT_ID/logs/BATCH_LOG_TYPE
替换以下内容:
PROJECT_ID
: 项目 ID 要查看其日志的项目的日志。BATCH_LOG_TYPE
:您要查看的批处理日志的类型,对于任务日志为batch_task_logs
,对于代理日志为batch_agent_logs
。
如需过滤包含自定义状态事件的日志,请指定日志必须定义
jsonPayload.batch/custom/event
字段:jsonPayload.batch"/"custom"/"event!=NULL_VALUE
如需过滤一个或多个特定严重程度的日志,请指定以下内容 比较:
severityCOMPARISON_OPERATORSEVERITY_ENUM
替换以下内容:
COMPARISON_OPERATOR
:比较运算符,例如>=
。SEVERITY_ENUM
:aLogSeverity
枚举、 ,用于说明日志的严重程度,例如ERROR
。
有关更多过滤选项,请参阅 Cloud Logging 查询语言文档。
后续步骤
- 详细了解问题排查。
- 详细了解 Cloud Logging。
- 了解如何写入任务日志。
- 了解如何导出作业信息。
- 了解如何删除作业。