オートスケーラー ログの表示

このページでは、自動スケーリングに関連するログを表示したり解釈したりする方法について説明します。自動スケーリングを有効にすると、指定されたオプションに基づいてオートスケーラーがスケーリングに関する決定を下します。スケーリングに関するそれぞれの決定は Stackdriver Logging によって記録され、ログビューアでそのログを見ることができます。

ログビューアを使用すると、以下に関連するイベントを表示できます。

  • インスタンス グループのサイズ変更。オートスケーラーがインスタンス グループのサイズを変更すると、そのサイズ変更がオートスケーラー ログに記述されます。
  • オートスケーラーのステータスの変更。たとえば、オートスケーラーが期待どおりに動作しているのに問題が発生した場合、ステータスの変更がオートスケーラー ログに記述されます。一般的なステータス メッセージの一部は、よく返されるステータス メッセージのセクションで説明されています。

始める前に

  • 自動スケーリングのドキュメントを読みます。
  • ログを表示する対象となるアクティブなオートスケーラーを用意します。
  • ログビューアの使用方法を確認します。

オートスケーラー ログの表示

オートスケーラー ログを表示するには、Google Cloud Platform Consolegcloud ツール、または Stackdriver Logging API を使用します。

Console

  1. ログビューアのページに移動します。

    ログビューア ページに移動

  2. リソース プルダウン メニューをプルダウンし、[GCE オートスケーラー] を選択します。
  3. 次に、[すべてのログ] プルダウンを展開します。自動スケーリングのログを表示するオートスケーラーを選択します。

gcloud

gcloud ツールを使用してベータ版 logging read コマンドを実行し、自動スケーリングに関連するすべてのログ(アクティビティおよび監査ログを含む)を検索します。次に例を示します。

gcloud beta logging read "resource.type=gce_autoscaler" --limit 10 \
    --format json

オートスケーラーのサイズ変更アクションに関連するログだけにエントリを制限する場合は、logName パラメータを指定し、フィールド jsonPayload.newSize によってフィルタを適用します。logName を次のように設定します。

`projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler`

例:

gcloud beta logging read 'logName="projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler" AND jsonPayload.newSize:*' \
    --limit 10 --format json

オートスケーラーのステータスの変更の場合は、logName パラメータを指定し、フィールド jsonPayload.new_status によってフィルタを適用します。logName を次のように設定します。

`projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler`

例:

gcloud beta logging read 'logName="projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler" AND jsonPayload.new_status:*' \
    --limit 10 --format json

API

Logging V2 API へのリクエストを発行します。リクエスト本文には、ログ検索で使用する filter パラメータと、ログ表示の対象となる project が含まれている必要があります。たとえば、サイズ変更アクションのリストを取得するリクエストは次のように発行します。

POST https://logging.googleapis.com/v2/entries:list

{
  "filter": "logName=\"projects\/[PROJECT_ID]\/logs\/compute.googleapis.com%2Fautoscaler\" AND jsonPayload.new_size:*",
  "pageSize": 10,
  "resourceNames": [
    "projects\/[PROJECT_ID]"
  ]
}

ステータス変更のリストを取得するリクエストは次のように発行します。

POST https://logging.googleapis.com/v2/entries:list

{
  "filter": "logName=\"projects\/[PROJECT_ID]\/logs\/compute.googleapis.com%2Fautoscaler\" AND jsonPayload.new_status:*",
  "pageSize": 10,
  "resourceNames": [
    "projects\/[PROJECT_ID]"
  ]
}

サイズ変更ログ

サイズ変更アクションに関連するログには、インスタンス グループの変更前のサイズと新しいサイズに関する情報が記述されます。このログエントリは、JSON ペイロードに次のフィールドが存在することで識別できます。

jsonPayload.new_size
jsonPayload.old_size

たとえば、次のエントリでは、サイズ 8 の古いインスタンス グループからサイズ 10 の新しいインスタンス グループへの変更がログに記録されています。

{
"insertId": "1l68z7sg4jw7kzo",
"jsonPayload": {
  "autoscaler_name": "example-autoscaler",
  "instance_group_name": "example-igm",
  "new_size": 10,
  "old_size": 8,
  "project_id": "myproject",
  "zone_name": "europe-west1-b"
},
"logName": "projects/myproject/logs/compute.googleapis.com%2Fautoscaler",
"receiveTimestamp": "2017-10-24T16:12:08.294439822Z",
"resource": {
  "labels": {
    "autoscaler_id": "1234567890123456789",
    "location": "europe-west1-b",
    "project_id": "myproject"
  },
  "type": "gce_autoscaler"
},
"severity": "INFO",
"timestamp": "2017-10-24T16:12:07.715125478Z"

}

ログの各フィールドの説明は次のとおりです。

プロパティ
insertId ログエントリの一意の識別子。
jsonPayload ログエントリのペイロードを表す構造体を JSON オブジェクトで記述したもの。
new_size 自動スケーリングによるこのグループの新しいサイズ。グループがスケールアップされた場合、新しいサイズは古いサイズより大きくなります。スケールダウンされた場合、新しいサイズは古いサイズより小さくなります。
old_size このグループの変更前の古いサイズ。
instance_group_name このログエントリの適用対象のマネージド インスタンス グループの名前。
project_id インスタンス グループのプロジェクト ID。これは常に現在のプロジェクトの ID でなければなりません。
autoscaler_name このアクションを担当するオートスケーラーの名前。
zone_name オートスケーラーとインスタンス グループのゾーン。
resource オートスケーラーの詳細。
type リソースのタイプ。オートスケーラーの場合、このフィールドは常に gce_autoscaler です。
labels オートスケーラーに関するメタデータ。
location オートスケーラーのゾーン。
autoscaler_id サーバーが生成した数値のオートスケーラー ID。
project_id オートスケーラーが属するプロジェクト ID
timestamp ログエントリが表すイベントの発生日時。RFC 3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒。
severity このログの重大度。オートスケーラー ログの場合、これは常に "INFO" です。
logName このログエントリが属するログのリソース名。オートスケーラー サイズ変更ログの場合、これは常に projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler です。
receiveTimestamp Stackdriver Logging がログエントリを受信した時刻。RFC 3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒。

ステータス変更ログ

オートスケーラーのステータスが変わると、Compute Engine はステータス変更をキャプチャするログエントリを作成します。このログエントリは、JSON ペイロードに次のフィールドが存在することで識別できます。

jsonPayload.old_status
jsonPayload.new_status

たとえば、次のエントリは、OK から新しいステータスへのステータス変更について記述しています。

The autoscaler is configured to scale based on a load balancing signal but
the instance group has not received any utilization data from the load
balancer or the utilization is constantly 0. Check that the load balancing
configuration is working

このステータス メッセージは、オートスケーラーが予期したとおりに動作しない理由を調べたり、過去に発生していた問題をデバッグしたりするために使用できます。この場合、新しいステータス メッセージが表示されるので、ロード バランシング構成が正しく設定されているかどうかを確認できます。

{
"insertId": "ivho6kg4icqfio",
"jsonPayload": {
  "autoscaler_name": "example-autoscaler",
  "instance_group_name": "example-igm",
  "new_status": {
    "details": "The autoscaler is configured to scale based on a load
        balancing signal but the instance group has not received any
        utilization data from the load balancer or the utilization is
        constantly 0. Check that the load balancing configuration is working."
  },
  "old_status": {
    "details": "OK"
  },
  "project_id": "myproject",
  "zone_name": "us-east1-b"
},
"logName": "projects/myproject/logs/compute.googleapis.com%2Fautoscaler",
"receiveTimestamp": "2017-10-24T15:11:58.076196762Z",
"resource": {
  "labels": {
    "autoscaler_id": "1234567890123456789",
    "location": "us-east1-b",
    "project_id": "myproject"
  },
  "type": "gce_autoscaler"
},
"severity": "INFO",
"timestamp": "2017-10-24T15:11:57.619997893Z"

}

ログの各フィールドの説明は次のとおりです。

プロパティ
insertId ログエントリの一意の識別子。
jsonPayload ログエントリのペイロードを表す構造体を JSON オブジェクトで記述したもの。
new_status オートスケーラーの新しいステータス。よく返されるステータス メッセージを参照。
old_status 変更前の古いオートスケーラー ステータス。
instance_group_name このログエントリの適用対象のマネージド インスタンス グループの名前。
project_id インスタンス グループのプロジェクト ID
autoscaler_name このアクションを担当するオートスケーラーの名前。
zone_name オートスケーラーとインスタンス グループのゾーン。
resource オートスケーラーの詳細。
type リソースのタイプ。オートスケーラーの場合、このフィールドは常に gce_autoscaler です。
labels オートスケーラーに関するメタデータ。
location オートスケーラーのゾーン。
autoscaler_id サーバーが生成した数値のオートスケーラー ID。
project_id オートスケーラーが属するプロジェクト ID。これは常に現在のプロジェクトでなければなりません。
timestamp ログエントリが表すイベントの発生日時。RFC 3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒。
severity このログの重大度。オートスケーラー ログの場合、これは常に "INFO" です。
logName このログエントリが属するログのリソース名。ステータス変更ログの場合、これは常に projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler です。
receiveTimestamp Stackdriver Logging がログエントリを受信した時刻。RFC 3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

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

Compute Engine ドキュメント