gcloud CLI を使用したログエントリの書き込みとクエリ

このドキュメントでは、Cloud Logging のいくつかの機能を紹介し、以下の内容の実行方法について説明します。

  • Google Cloud CLI を使用してログエントリを書き込む。
  • gcloud CLI を使用してログエントリをリスト表示する。
  • Logging API を使用してログエントリをリスト表示する。
  • ログ エクスプローラを使用してログエントリを表示、クエリする。

始める前に

このクイックスタートを完了するには、課金が有効になっている Cloud de Confiance プロジェクトが必要です。 Cloud de Confiance プロジェクトがない場合、または Cloud de Confiance プロジェクトに対して課金が有効になっていない場合は、次の操作を行います。

  1. Install the Google Cloud CLI.

  2. 連携 ID を使用するように gcloud CLI を構成します。

    詳細については、連携 ID を使用して gcloud CLI にログインするをご覧ください。

  3. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  4. Create or select a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Cloud de Confiance project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Cloud de Confiance project you are creating.

    • Select the Cloud de Confiance project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Cloud de Confiance project name.

  5. Verify that billing is enabled for your Cloud de Confiance project.

  6. gcloud CLI を使用してログエントリを書き込む

    Logging では、構造化データを含むログエントリと非構造化データを含むログエントリがサポートされています。構造化データは、JSON データ構造で構成されます。例: {"weather": "partly cloudy"}。非構造化データは文字列です。例: "A simple entry"

    次の手順では、gcloud CLI を使用して、非構造化データを含むログエントリと構造化データを含むログエントリを書き込みます。gcloud CLI は、Cloud Logging API へのコマンドライン インターフェースを提供します。

    1. 非構造化データを含むログエントリをログ my-test-log に書き込みます。gcloud logging write コマンドを実行します。

      gcloud logging write my-test-log "A simple entry."
      

      コマンドが完了すると、次のメッセージが表示されます。Created log entry

    2. 構造化データを含むログエントリをログ my-test-log に書き込みます。

      gcloud logging write --payload-type=json my-test-log '{ "message": "My second entry", "weather": "partly cloudy"}'
      

      構造化データを含むログエントリを書き込む場合は、--payload-type=json を含める必要があります。このフィールドを省略すると、Logging はペイロードを非構造化データとして解釈します。

    ログ my-test-log が存在しない場合、ログエントリの受信時にログが作成されます。

    gcloud CLI を使用してログエントリをリスト表示する

    gcloud CLI を使用して、Logging からログエントリを取得して表示できます。たとえば、リソースタイプが global のログエントリを取得して表示するには、次のコマンドを実行します。

    gcloud logging read "resource.type=global"
    

    このコマンドは次のような結果を返します。

    ---
    insertId: jpj9zjf73t1mn
    jsonPayload:
      message: My second entry
      weather: partly cloudy
    logName: projects/myloggingproject/logs/my-test-log
    receiveTimestamp: '2018-11-01T18:39:31.114507977Z'
    resource:
      labels:
        project_id: myloggingproject
      type: global
    timestamp: '2018-11-01T18:39:31.114507977Z'
    ---
    insertId: vd4m1if7h7u1a
    logName: projects/myloggingproject/logs/my-test-log
    receiveTimestamp: '2018-11-01T18:39:19.718100792Z'
    resource:
      labels:
        project_id: myloggingproject
      type: global
    textPayload: A simple entry
    timestamp: '2018-11-01T18:39:19.718100792Z'
    

    ログの読み取りの詳細については、gcloud logging read リファレンス ドキュメントをご覧ください。

    ログ エクスプローラでログエントリを表示する

    Cloud de Confiance コンソールでログエントリを表示するには、ログ エクスプローラを使用します。ほとんどの Cloud de Confiance プロジェクトは多数のログを保存しています。クエリを作成することで、特定のログエントリを選択できます。

    ログ エクスプローラを使用して書き込んだログエントリを表示するには、次の操作を行います。

    1. Cloud de Confiance コンソールで、[ログ エクスプローラ] ページに移動します。

      [ログ エクスプローラ] に移動

      検索バーを使用してこのページを検索する場合は、小見出しが [Logging] の結果を選択します。

      Cloud de Confiance by S3NSナビゲーション バーで Cloud de Confiance プロジェクトが選択されていることを確認します。必要に応じて、 Cloud de Confiance プロジェクトのプルダウン リストを使用して Cloud de Confiance プロジェクトを選択します。

    2. [リソース] メニューで [グローバル] を選択します。

      [グローバル] メニュー オプションが表示されない場合や、該当するログエントリが表示されない場合は、数分待ってからページを更新します。Logging でログエントリが受信されるまでに数分かかることがあります。

    3. ログエントリの詳細を表示するには、その [メニュー] をクリックします。

      1 つ目のログエントリのデータは textPayload に格納されています。2 つ目のログエントリには構造化データが含まれているため、データが jsonPayload に格納されています。構造化ペイロードには messageweather というキーが含まれています。

    ログエントリのデータ形式の詳細については、LogEntry タイプをご覧ください。

    ログ エクスプローラのクエリログ エントリ

    クエリエディタと、構造化ログではキーと値を使用してログエントリをクエリできます。たとえば、テキスト simple を含むすべてのログエントリを表示するには次のようにします。

    1. Cloud de Confiance コンソールで、[ログ エクスプローラ] ページに移動します。

      [ログ エクスプローラ] に移動

      検索バーを使用してこのページを検索する場合は、小見出しが [Logging] の結果を選択します。

    2. [リソース] メニューで [グローバル] を選択します。

    3. クエリエディタで、文字列 simple を引用符で囲んで入力します。ログにはログエントリ A simple entry. のみが表示されます。

    4. ログを表示したら、追加したクエリ文字列を削除して、[クエリを実行] をクリックします。両方のログエントリが画面に再表示されます。

    キー weather を持ち、value フィールドに partly が含まれる構造化データを含むすべてのログエントリを表示するには、次のようにします。

    1. クエリエディタには、resource.type="global" という行が含まれます。次のコマンドを入力します。

      jsonPayload.weather:partly
      
    2. [クエリを実行] をクリックします。結果は My second entry の単一のログエントリです。

    ログ エクスプローラでは、保存したクエリ、おすすめのクエリ、最近のクエリも使用できます。 クエリの詳細については、ログ エクスプローラでクエリを作成するをご覧ください。

    サンプルクエリについては、ログ エクスプローラを使用したサンプルクエリをご覧ください。

    トラブルシューティング

    • 入力ミスや不明なフィールド名がある場合は、gcloud CLI コマンドが無効な引数のメッセージを返して終了します。たとえば、resource.type でピリオドを忘れたとすると、次のエラーが発生します。

       ERROR: (gcloud.logging.read) INVALID_ARGUMENT: Field not found: 'resourcetype'.
      
    • Cloud Logging に必要なアクセス権限が付与されていない場合、gcloud CLIのコマンドが権限がありませんのメッセージを返して終了します。たとえば、Compute Engine VM インスタンスがデフォルトの API 設定で構成されている場合、list コマンドは権限拒否エラーで終了します。

       ERROR: (gcloud.logging.read) PERMISSION_DENIED: Request had insufficient authentication scopes.
      

      この状態を解決するには、Compute Engine VM インスタンスの権限を変更して、Cloud Logging に読み取り権限を付与します。

      1. VM インスタンスの [VM インスタンスの詳細] ページに移動します。[停止] をクリックします。完了までに 1~2 分かかることがあります。
      2. 構成を変更するには、[編集] をクリックします。
      3. [Cloud API アクセス スコープ] という見出しを見つけて、[詳細] をクリックします。各 API の設定が表示されます。Cloud Logging API のエントリを [フル] に変更して、[保存] をクリックします。
      4. VM インスタンスを再起動するには、[開始] をクリックします。しばらくすると、VM を使用できるようになります。

    クリーンアップ

    このページで使用したリソースについて、 Cloud de Confiance アカウントに課金されないようにするには、リソースを含む Cloud de Confiance プロジェクトを削除します。

    1. (オプション)作成したログエントリを削除するには、次の gcloud コマンドを実行します。

      gcloud logging logs delete my-test-log
      

      ログエントリを削除しない場合、ログエントリは期限切れとなり削除されます。保持情報については、割り当てと制限をご覧ください。

    次のステップ

    • Logging のコマンドライン インターフェースの詳細については、gcloud logging コマンド グループをご覧ください。
    • Logging API に関するドキュメントについては、Cloud Logging API を参照してください。
    • ログ エクスプローラの詳細については、ログ エクスプローラの使用をご覧ください。