ログを使用してジョブを分析する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このページでは、ジョブの 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 Console、gcloud CLI、または Logging API を使用して Cloud Logging で表示できます。

Console

Google Cloud Console を使用してジョブのログを表示する方法は次のとおりです。

  1. ジョブを記述します
  2. [ジョブの詳細] ページの [ログ] セクションで、 [Cloud Logging] をクリックします。[ログ エクスプローラ] ページが開きます。

    デフォルトでは、ログ エクスプローラにはこのジョブのすべてのタスクログが表示されます。

    推奨: 表示するログをフィルタリングするには、クエリを作成します。たとえば、クエリエディタ フィールド内でバッチログのクエリを入力します。

gcloud

gcloud CLI を使用してログを表示するには、gcloud logging read コマンドを使用します。

gcloud logging read "QUERY"

ここで、QUERYBatch ログのクエリです。

API

Logging API を使用してログを表示するには、entries.list メソッドを使用します。

POST https://logging.googleapis.com/v2/entries:list
{
    "resourceNames": [
        "projects/PROJECT_ID"
    ],
    "filter": "QUERY"
    "orderBy": "timestamp desc"
}

以下を置き換えます。

バッチログをフィルタリングするクエリを作成する

Batch ログをフィルタするには、次のフィルタ パラメータ 1 つ以上と、0 個以上のブール演算子(ANDORNOT)を含むクエリを作成します。

  • 特定のジョブのログをフィルタリングするには、ジョブの一意の 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)。

次のステップ