Compute Engine アクティビティ ログは監査ログとは異なります。監査ログには、以前のアクティビティ ログなどと同じ情報が含まれています。アクティビティ ログの代わりに監査ログを使用することをおすすめします。アクティビティ ログをすでに使用している場合は、アクティビティ ログから監査ログへの移行をご覧ください。
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 が開始したシステム イベントを確認したりできます。
アクティビティ ログには、プロジェクトに関する課金や使用状況の情報(仮想マシン インスタンスの稼働時間やそれに対する課金など)は記録されません。課金のログについては、課金データのエクスポート機能をご覧ください。使用状況ログについては、使用状況レポートの表示をご覧ください。
アクティビティ ログは Cloud Logging サービスの一部として提供されています。Logging の全般的な情報については、Cloud Logging のドキュメントをご覧ください。
始める前に
- Cloud Logging について理解します。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud のサービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- プロジェクトの
logging.logServiceIndexes.list
- プロジェクトの
logging.logServices.list
- Google Cloud コンソールで [Logging] ページに移動します。
- ログ エクスプローラで、最初のプルダウン リストからリソースタイプを選択してフィルタします。
- [すべてのログ] プルダウン リストから [compute.googleapis.com/activity_log] を選択すると、Compute Engine アクティビティ ログが表示されます。
compute.googleapis.com/activity_log
:log
フィールドの値になります。metadata
: タイムスタンプなどの共通情報を示します。structPayload
: 各ログエントリに固有の情報を示します。GCE_API_CALL
: リソースを更新した REST API 呼び出しを示します。GCE_OPERATION_DONE
: API リクエストが完了した後、成功したかどうかにかかわらず、このイベントタイプが記録されます。GCE_SYSTEM_EVENT
: Compute Engine によって開始されたシステム イベント。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
このタスクに必要な権限
このタスクを行うには、次の権限が必要です。
ログの表示
アクティビティ ログは、特に設定しなくてもすべての Compute Engine プロジェクトで記録されます。
プロジェクトのアクティビティ ログを表示するには、Google Cloud コンソール のログ エクスプローラを使用します。
ルーティング ログ
アクティビティ ログをエクスポートする方法については、Cloud Logging のドキュメントのシンクを構成して管理するをご覧ください。
ログファイルの特定
Cloud Storage にログをエクスポートすると、ログファイルは、ログエントリのオブジェクトのドキュメントで説明している構造内に保存されます。
Compute Engine のログファイルは次のディレクトリ構造で保存されます。
<bucket>/compute.googleapis.com/activity_log/<year>/<month>/<day>
次に、
my-bucket
という名前の 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 でアクティビティ ログのクエリを実行する方法については、BigQuery のログエントリをご覧ください。
アクティビティ ログを読む
アクティビティ ログの構造については、LogEntry タイプのドキュメントに説明があります。
Compute Engine アクティビティ ログには次の要素が含まれます。
すべてのログエントリに共通するフィールドについては、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
文字列 全般的なイベントタイプを表します。 次のいずれかの値です。
info
文字列 該当する場合に追加情報を提供するオプション フィールド。追加情報がない場合は省略されます。 operation
文字列 リソースを更新または変更する API リクエストを発行すると、対応するオペレーション オブジェクトが作成され、リクエストの完了が追跡されます。このプロパティはイベントのオペレーション オブジェクトを表しており、オペレーション ID やオペレーションのゾーン、リージョンなどの情報を提供します。 変更対象のリソースに応じて、オペレーションはゾーン オペレーション、リージョン オペレーション、グローバル オペレーションに分けられます。
request
JSON オリジナルの API リクエスト本文が含まれます。 resource
JSON このイベントによって変更される特定のリソースを記述します。たとえば、仮想マシン(VM)インスタンスはリソースと見なされ、VM のリソース プロパティの例は次のようになります。 "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 の Cloud クライアント ライブラリを使用してリクエストを発行した場合、ユーザー エージェントは Google-API-Java-Client
になります。version
文字列 Compute Engine ログスキーマの現在のログ形式バージョンを示します。現在のバージョンは 1.2 です。 注: Compute Engine API のバージョニングとログ形式のバージョニングは互いに関連していません。
warning
文字列 このイベント中に警告が発生した場合、警告の詳細を提供します。警告は情報提供を目的としたもので、エラーとは異なり、リクエストに影響することはありません。 ログエントリの例
たとえば、VM を作成する 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" } } }
非推奨のアクティビティ ログエントリ
次のアクティビティ ログエントリは 2020 年 6 月 1 日に無効になります。代替はありません。
モニタリング対象のリソースタイプ イベント サブタイプ gce_backend_service
BackendServiceConfigProgramming
gce_instance
RE_ENCRYPT_SSL_CERTIFICATE_FLOW
gce_instance
addFirewallRuleToSecurityPolicy
gce_instance
attachCloudLink
gce_instance
attachFirewallSecurityPolicy
gce_instance
compute.instanceGroupManagers.updateHealth
gce_instance
compute.instanceGroups.detachHealthCheck
gce_instance
compute.instanceNetworkConfig.updateName
gce_instance
compute.regionInstanceGroups.attachHealthCheck
gce_instance
compute.regionInstanceGroups.detachHealthCheck
gce_instance
createFirewallSecurityPolicy
gce_instance
deleteFirewallSecurityPolicy
gce_instance
detachFirewallSecurityPolicy
gce_instance
patchFirewallRuleInSecurityPolicy
gce_instance
removeCloudLink
gce_instance
removeFirewallRuleFromSecurityPolicy
gce_instance
updateFirewallSecurityPolicy
gce_instance
updateVpnTunnel
gce_instance_group
compute.instanceGroups.attachHealthCheck
gce_instance_group
compute.instanceGroups.attachNetworkInterfaces
gce_instance_group
compute.instanceGroups.detachHealthCheck
gce_instance_group
compute.regionInstanceGroups.attachHealthCheck
gce_instance_group
compute.regionInstanceGroups.detachHealthCheck
gce_instance_template
compute.zoneInstanceTemplates.insert
gce_network
compute.networks.switchLegacyToCustomMode
gce_project
compute.projects.moveProjectNetworking
gce_reserved_address
compute.addresses.insertDnsForwarding
gce_reserved_address
compute.addresses.insertNatAddress
gce_ssl_certificate
RE_ENCRYPT_SSL_CERTIFICATE_FLOW
gce_ssl_certificate
SslCertificateAddManagedCertificateChallenge
gce_ssl_certificate
SslCertificateProvisionManagedCertificate
gce_ssl_certificate
SslCertificateRemoveManagedCertificateChallenge
gce_subnetwork
compute.subnetworks.createOrUpdateVirtualSubnetwork
vpn_tunnel
updateVpnTunnel
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-12-05 UTC。
-