アクティビティ ログの表示

Compute Engine のアクティビティ ログを使用して、API 呼び出しやシステム イベントなどのプロジェクトに影響するイベントを追跡できます。具体的には次の情報がログに記録されます。

  • Compute Engine API の呼び出し - GCE_API_CALL イベントは、リソースの状態を変更する API 呼び出しです。たとえば、ディスクの作成、インスタンス メタデータの更新、インスタンス グループの作成、マシンタイプの変更などの API 呼び出しがアクティビティ ログに記録されます。get リクエストや list リクエストなど、リソースを更新しない API 呼び出しは記録されません。
  • オペレーション ログ - リソースの状態を変更する API 呼び出しが完了し、Compute Engine からオペレーション完了イベントが返されると、GCE_OPERATION_DONE イベントがアクティビティ ログに記録されます。
  • システムログ - Compute Engine がシステム イベントを実行すると、GCE_SYSTEM_EVENT イベントがアクティビティ ログに記録されます。たとえば、透過的メンテナンスのイベントがシステム イベントとして記録されます。

たとえば API イベントのアクティビティ ログを見ると、API リクエストの開始時刻と終了時刻、リクエスト本文の詳細、API リクエストを発行した承認ユーザー、リクエストのエンドポイントなどの詳細情報がわかります。アクティビティ ログをダウンロードして特定の API リクエストを検索したり、Compute Engine が開始したシステム イベントを確認したりできます。

アクティビティ ログには、プロジェクトに関する課金や使用状況の情報(仮想マシン インスタンスの稼働時間やそれに対する課金など)は記録されません。課金のログについては、課金データのエクスポート機能をご覧ください。使用状況ログについては、使用状況レポートの表示をご覧ください。

Compute Engine アクティビティ ログは監査ログとは異なります。

アクティビティ ログは Stackdriver Logging サービスの一部として提供されています。Stackdriver Logging 全般について詳しくは、Stackdriver Logging のドキュメントをお読みください。

始める前に

このタスクに必要な権限

このタスクを実行するには、次の権限が必要です。

  • プロジェクトに関する logging.logServiceIndexes.list
  • プロジェクトに関する logging.logServices.list

ログの表示

アクティビティ ログは、特に設定しなくてもすべての Compute Engine プロジェクトで記録されます。

プロジェクトのアクティビティ ログを表示するには、Google Cloud Platform Consoleログビューアを使用します。

  1. GCP Console の [ロギング] ページに移動します。
  2. ログビューアで、最初のプルダウン メニューからリソースタイプを選択してフィルタします。
  3. [すべてのログ] プルダウン メニューから [activity_log] を選択すると、Compute Engine アクティビティ ログが表示されます。

ログのエクスポート

アクティビティ ログをエクスポートする方法については、Stackdriver ドキュメントのログのエクスポートの構成をご覧ください。

ログファイルの特定

Google Cloud Storage にログをエクスポートすると、ログエントリ オブジェクトのドキュメントに示す構造でログファイルが保存されます。

Compute Engine のログファイルは次のディレクトリ構造で保存されます。

<bucket>/compute.googleapis.com/activity_log/<year>/<month>/<day>

my-bucket という名前で Google Cloud Storage バケットに保存されたログファイル名の例:

my-bucket/compute.googleapis.com/activity_log/2014/10/31/20:00:00_20:59:59_S0.json

BigQuery では、アクティビティ ログは一連のテーブルとして保存されます。ログタイプと日付ごとに 1 つのテーブルが作成され、次のファイル名で保存されます。

<dataset>.compute_googleapis_com_activity_log_YYYYMMDD

BigQuery でアクティビティ ログを照会する方法については、Google BigQuery のログエントリをご覧ください。

アクティビティ ログを読む

アクティビティ ログの構造は、LogEntry タイプのドキュメントに説明があります。

Compute Engine アクティビティ ログには次の要素が含まれます。

  • compute.googleapis.com/activity_log: これが log フィールドの値になります。
  • metadata: タイムスタンプなどの共通情報を示します。
  • structPayload: 各ログエントリに固有の情報を示します。

すべてのログエントリに共通するフィールドについては、LogEntry の説明をご覧ください。アクティビティ ログエントリのペイロード フィールドの内容は Compute Engine に固有であり、これについて以下に説明します。

ペイロードの内容

ログエントリの内容は JSON オブジェクト形式で structPayload フィールドに格納されます。structPayload フィールドには次の情報が含まれます。

フィールド 説明
actor 文字列 オペレーションを実行するユーザーまたはサービス アカウントのメールアドレス。これは user_id と同じです。
error 文字列 このイベント中にエラーが発生した場合、エラーの詳細を提供します。エラーが発生しなかった場合、このフィールドは省略されます。エラーが発生した場合は通常、リクエストは失敗します。このフィールドを使用して失敗したリクエストをデバッグできます。
event_subtype 文字列 特定のサブタイプを API メソッドとして表します。

たとえば、新しいインスタンスを挿入するリクエストは compute.instances.insert と表され、Address リソースを削除するリクエストは compute.addresses.delete と表されます。

API メソッドの一覧については、API リファレンスをご覧ください。

event_timestamp_us タイムスタンプ 記録されたイベントのタイムスタンプを標準エポックからの経過時間(マイクロ秒単位)で示します。これは metadata.timestamp と同じです。
event_type 文字列 全般的なイベントタイプを表します。

次のいずれかになります。

  • GCE_API_CALL: リソースを更新した REST API 呼び出しを示します。
  • GCE_OPERATION_DONE: API リクエストが完了した後、成功したかどうかにかかわらず、このイベントタイプが記録されます。
  • GCE_SYSTEM_EVENT - Compute Engine によって開始されたシステム イベント。
info 文字列 該当する場合に追加情報を提供するオプション フィールド。追加情報がない場合は省略されます。
operation 文字列 リソースを更新または変更する API リクエストを発行すると、対応するオペレーション オブジェクトが作成され、リクエストの完了が追跡されます。このプロパティはイベントのオペレーション オブジェクトを表しており、オペレーション名、オペレーション ID やオペレーションのゾーン、リージョンなどの情報を提供します。

変更対象のリソースに応じて、オペレーションはゾーン オペレーションリージョン オペレーショングローバル オペレーションに分けられます。

request JSON オリジナルの API リクエスト本文が含まれます。

resource JSON このイベントによって変更される特定のリソースを記述します。たとえばリソースが仮想マシン インスタンスである場合、仮想マシンのリソース プロパティは次のようになります。

"resource": {
  "type": "instance",
  "name": "example-instance",
  "id": "0",
  "zone": "us-central1-f"
}

リソースタイプの一覧とその詳細については、API リファレンスをご覧ください。

注: 操作が複数のリソースに影響する場合、同じ trace_id で複数のログエントリが作成されることがあります。

trace_id 文字列 単一の操作によって発生した関連するログをグループ化する、自動生成されたトレース ID。次に例を示します。

trace_id: "operation-1442436581415-51fe3700bd85a-7fd317e3-f1a3555e"
user_agent 文字列 このリクエストを実行したクライアントを表します。たとえば、Java クライアント ライブラリを使用してリクエストを発行した場合、ユーザー エージェントは Google-API-Java-Client になります。
version 文字列 Compute Engine ログスキーマの現在のログ形式バージョンを示します。現在のバージョンは 1.2 です。

メモ: Compute Engine API のバージョン付けとログ形式のバージョン付けは互いに関連していません。

warning 文字列 このイベント中に警告が発生した場合、警告の詳細を提供します。警告は情報提供を目的としたもので、エラーとは異なり、リクエストに影響することはありません。

ログエントリの例

仮想マシンを作成する API リクエストのログエントリの例を次に示します。

{
  "log": "compute.googleapis.com/activity_log",
  "insertId": "2015-09-16|13:49:42.532185-07|10.106.9.208|335899593",
  "metadata": {
    "severity": "INFO",
    "projectId": "835469197146",
    "serviceName": "compute.googleapis.com",
    "zone": "us-central1-f",
    "labels":{
      "compute.googleapis.com/resource_id":"0",
      "compute.googleapis.com/resource_name":"example-instance",
      "compute.googleapis.com/resource_type":"instance",
      "compute.googleapis.com/resource_zone":"us-central1-f"
    },
    "timestamp": "2015-09-16T20:49:42.423637Z"
  },
  "structPayload": {
    "version": "1.2",
    "trace_id": "operation-1442436581415-51fe3700bd85a-7fd317e3-f1a3555e",
    "event_timestamp_us": "1442436582423637",
    "event_type": "GCE_API_CALL",
    "event_subtype": "compute.instances.insert",
    "resource": {
      "type": "instance",
      "name": "example-instance",
      "id": "0",
      "zone": "us-central1-f"
    },
    "actor": {
      "user": "user@example.com"
    },
    "ip_address": "",
    "user_agent": "apitools-client/1.0",
    "request": {
      "url": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances",
      "body": "{
        \"canIpForward\":false,
        \"description\":\"\",
        \"disks\":[{
          \"autoDelete\":true,
          \"boot\":true,
          \"deviceName\":\"example-instance\",
          \"initializeParams\":{
            \"diskSizeGb\":\"10\",
            \"diskType\":\"https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/diskTypes/pd-standard\",
            \"sourceImage\":\"https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-8-jessie-v20150818\"
          },
          \"mode\":\"READ_WRITE\",
          \"type\":\"PERSISTENT\"
        }],
        \"machineType\":\"https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/machineTypes/n1-standard-1\",
        \"metadata\":{
          \"items\":[]
        },
        \"name\":\"example-instance\",
        \"networkInterfaces\":[{
            \"accessConfigs\":[{
              \"name\":\"External NAT\",
              \"type\":\"ONE_TO_ONE_NAT\"

            }],
            \"network\":\"https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default\"
          }],
        \"scheduling\":{
          \"automaticRestart\":true,
          \"onHostMaintenance\":\"MIGRATE\",
          \"preemptible\":false
        },
        \"serviceAccounts\":[{
          \"email\":\"default\",
          \"scopes\":[
            \"https://www.googleapis.com/auth/devstorage.read_only\",
            \"https://www.googleapis.com/auth/logging.write\"
          ]
        }],
        \"tags\":{
          \"items\":[]
        },
        \"zone\":\"https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f\"
      }"
    },
    "operation": {
      "type": "operation",
      "name": "operation-1442436581415-51fe3700bd85a-7fd317e3-f1a3555e",
      "id": "291347737657178184",
      "zone": "us-central1-f"
    }
  }
}
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Compute Engine ドキュメント