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 に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
このタスクに必要な権限
このタスクを行うには、次の権限が必要です。
- プロジェクトの
logging.logServiceIndexes.list
- プロジェクトの
logging.logServices.list
ログの表示
アクティビティ ログは、特に設定しなくてもすべての Compute Engine プロジェクトで記録されます。
プロジェクトのアクティビティ ログを表示するには、Google Cloud コンソールのログ エクスプローラを使用します。
- Google Cloud コンソールで [ロギング] ページに移動します。
- ログ エクスプローラで、最初のプルダウン リストからリソースタイプを選択してフィルタします。
- [すべてのログ] プルダウン リストから [compute.googleapis.com/activity_log] を選択すると、Compute Engine アクティビティ ログが表示されます。
ルーティング ログ
アクティビティ ログをエクスポートする方法については、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 アクティビティ ログには次の要素が含まれます。
compute.googleapis.com/activity_log
:log
フィールドの値になります。metadata
: タイムスタンプなどの共通情報を示します。structPayload
: 各ログエントリに固有の情報を示します。
すべてのログエントリに共通するフィールドについては、LogEntry の説明をご覧ください。ここでは、Compute Engine に固有である、アクティビティ ログ エントリのペイロードの内容について説明します。
ペイロードの内容
ログエントリの内容は JSON オブジェクト形式で structPayload
フィールドに格納されます。structPayload
フィールドには次の情報が含まれます。
フィールド | タイプ | 説明 |
---|---|---|
actor |
文字列 | オペレーションを実行するユーザーまたはサービス アカウントのメールアドレス。これは user_id と同じです。 |
error |
文字列 | このイベント中にエラーが発生した場合、エラーの詳細を提供します。エラーが発生しなかった場合、このフィールドは省略されます。通常、エラーが発生するとリクエストは失敗します。このフィールドを使用して失敗したリクエストをデバッグできます。 |
event_subtype |
文字列 | 特定のサブタイプを API メソッドとして表します。 たとえば、新しいインスタンスを挿入するリクエストは 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 |
文字列 | 単一の操作によって発生した関連するログをグループ化する、自動生成されたトレース 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 |