このページでは、ジョブの 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 Console を使用してジョブを作成すると、Cloud Logging が常に有効になります。
gcloud CLI または Batch API を使用してジョブを作成する場合、Cloud Logging はデフォルトで無効になっています。Cloud Logging を有効にするには、ジョブの作成時に次の構成を
logsPolicy
フィールドに含めます。{ ... "logsPolicy": { "destination": "CLOUD_LOGGING" } ... }
ジョブのログを表示する
ジョブのログは、Google Cloud コンソール、gcloud CLI、Logging API、Go、Java、Python、C++ を使用して表示できます。
コンソール
Google Cloud コンソールを使用してジョブのログを表示する手順は次のとおりです。
Google Cloud コンソールで、[ジョブリスト] ページに移動します。
[ジョブ名] 列で、ジョブの名前をクリックします。ジョブの詳細ページが開きます。
[ログ] タブをクリックします。 バッチによって、ジョブに関連付けられているすべてのログが表示されます。
省略可: ログをフィルタリングするには、次のいずれかを行います。
filter を入力します。
Filterフィールドに[重大度] リストで、[重大度] を選択します。
バッチ フィルタ パラメータを使用して、ログ エクスプローラのクエリを作成するにします。
ログ エクスプローラで表示をクリックして、
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"
}
以下を置き換えます。
PROJECT_ID
: プロジェクトのプロジェクト ID。QUERY
: バッチフィルタ パラメータを含むバッチログのクエリ。
Go
Go
詳細については、Batch Go API のリファレンス ドキュメントをご覧ください。
Batch への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Java
詳細については、Batch Java API のリファレンス ドキュメントをご覧ください。
Batch への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Python
詳細については、Batch Python API のリファレンス ドキュメントをご覧ください。
Batch への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
C++
C++
詳細については、Batch C++ API のリファレンス ドキュメントをご覧ください。
Batch への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
バッチログをフィルタする
Batch ログをフィルタするには、次のフィルタ パラメータ 1 つ以上と、0 個以上のブール演算子(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 ログのタイプ(タスクログの場合はbatch_task_logs
、エージェント ログの場合はbatch_agent_logs
)。
次のステップ
- トラブルシューティングの詳細を確認する。
- Cloud Logging の詳細を確認する。
- ジョブの削除とエクスポートの方法を確認する。