このドキュメントでは、VM Manager のトラブルシューティングについて説明します。
VM Manager の詳細については、VM Manager をご覧ください。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、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.
- VM によってログに記録されたエラー メッセージまたは警告。これは、VM レベルのエラーや、VM で実行されている他のサービスのエラーを特定する際に最適です。これらのログを確認方法については、Cloud Logging の検査をご覧ください。
- OS Config エージェントがログに記録したデバッグ情報。これは、VM Manager によって実行される処理の問題を特定する際に役立ちます。OS Config エージェントのデバッグログを確認する方法については、デバッグログの調査をご覧ください。
- Google Cloud Console で、[OS Patch Management] ページの [パッチジョブ] タブに移動します。
- デバッグするパッチジョブの名前をクリックします。
- [更新された VM インスタンス] までスクロールします。
- 特定の VM について、[ログ] の下の [表示] をクリックします。
- Google Cloud コンソールで、[OS Configuration Management] ページの [VM インスタンス] タブに移動します。
- デバッグする VM の名前をクリックします。
- [ポリシー] までスクロールします。
- [ログ] で、[表示] をクリックします。
Google Cloud コンソールで [VM インスタンス] ページに移動します。
メタデータ値を設定する VM の名前をクリックします。
[インスタンスの詳細] ページで、[編集] をクリックして設定を編集します。
[カスタム メタデータ] の下に、次のメタデータ エントリを追加します。
キー:
osconfig-log-level
値:debug
[保存] をクリックして、VM に変更を適用します。
- Cloud Logging: Google Cloud コンソールまたは Google Cloud CLI を使用する
シリアルポート コンソール
Google Cloud コンソールの [ロギング] > [ログ エクスプローラ](ログ エクスプローラ)ページに移動します。
ページの上部で既存の Google Cloud プロジェクトを選択するか、新しいプロジェクトを作成します。
[リソース] プルダウン リストで、[VM インスタンス] を選択します。使用可能な VM(
instance_id
)のリストが表示されます。表示する VM をクリックします。
[追加] をクリックします。
[ログ名] プルダウン リストで [OSConfigAgent] を選択します。
[追加] をクリックします。
クエリは次のようになります。
resource.type="gce_instance" resource.labels.instance_id="INSTANCE_ID" logName="projects/PROJECT_ID/logs/OSConfigAgent"
[実行] をクリックします。
- 接続されたサービス アカウント。VM Manager は、このサービス アカウントを使用して API サービスに対するリクエストに署名します。
- 接続されたサービス アカウントに対する、Logging API にログを書き込む
roles/logging.logWriter
ロール。 - Google Cloud OS Config サービス エージェント。VM Manager は、パッチジョブの開始時にこのサービス エージェントを作成し、Cloud OS Config サービス エージェントのロールを付与します。OS ポリシーの作成には、このサービス エージェントを構成する必要はありません。
- すべてのアカウントに、接続されたサービス アカウントが存在することを確認します。
Google Cloud OS Config サービス エージェントに Cloud OS Config サービス エージェントのロール(
roles/osconfig.serviceAgent
)が設定されていることを確認します。gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com' \ --role='roles/osconfig.serviceAgent'
次のように置き換えます。
PROJECT_ID
: プロジェクト IDPROJECT_NUMBER
: プロジェクトの番号
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
概要
問題をトラブルシューティングするには、まず VM Manager が適切に設定されていることを確認します。設定が正しいにもかかわらず問題が継続している場合は、ログをご確認ください。ログを確認すると、VM や VM Manager ワークフローの問題(コマンドやスクリプトのエラーなど)を特定し、隔離して解決できます。
ログからは次の情報を収集できます。
問題またはエラーを特定した後、一般的なエラーのセクションで、可能性のある修正方法を確認することもできます。
Cloud Logging の検査
Google Cloud コンソールで機能ごとのクイックリンクを使用すると、特定の VM のログを確認できます。
OS パッチ
OS ポリシー
この手順は OS ポリシーでサポートされています。ゲストポリシー(ベータ版)の場合は、次のセクションで説明するデバッグログ オプションを使用してください。
デバッグログを検査する
OS Config エージェントのデバッグを有効にしてデバッグログを表示すると、VM Manager 機能の問題を特定できます。
OS Config エージェントのデバッグ ロギングを有効にする
デバッグ ロギングを有効にするには、VM インスタンスまたはプロジェクトでメタデータ
osconfig-log-level=debug
を設定します。VM でデバッグ ロギングを有効にするには、次の手順を行います。
コンソール
gcloud
--metadata=osconfig-log-level=debug
フラグを指定してinstances add-metadata
コマンドを使用します。gcloud compute instances add-metadata VM_NAME \ --metadata=osconfig-log-level=debug
VM_NAME
は実際の VM 名に置き換えます。REST
インスタンスのメタデータを設定する方法については、インスタンス メタデータの設定で API の手順をご覧ください。
メタデータ プロパティの一部として、次の Key-Value ペアが必要です。
キー:
osconfig-log-level
値:debug
デバッグログを表示する
デバッグ ロギングが有効になっている場合、OS Config エージェントは Cloud Logging とシリアルポート コンソールにログエントリを書き込みます。
VM でデバッグ ロギングを有効にしてから、OS Config エージェントが Cloud Logging にデバッグ メッセージを書き込むまでに 10 分ほどかかります。この待機時間を短縮するには、エージェントまたは VM を再起動します。Cloud Logging の詳細については、Cloud Logging のログの表示をご覧ください。
デバッグログを表示するには、次のオプションを使用できます。
コンソール
gcloud
gcloud logging read
コマンドを実行します。gcloud logging read "resource.type=gce_instance AND logName=projects/PROJECT_ID/logs/OSConfigAgent"
PROJECT_ID
は、実際のプロジェクト ID に置き換えます。シリアルポート
シリアルポート コンソールからのデバッグログ情報を表示するには、シリアルポート出力の表示をご覧ください。
一般的なエラー
認証の問題
VM Manager を使用するには、次のものが必要です。
VM Manager を使用していて、サービス アカウントが接続されていない場合、または Google Cloud OS Config サービス エージェントがない場合は、パッチジョブの操作中に次のエラーが表示されることがあります。
Service account permissions are missing. Verify that the service account has the correct permissions and try again.
OSConfigAgent Error main.go:88: error getting token from metadata: metadata: GCE metadata "instance/service-accounts/default/identity?audience=osconfig.googleapis.com&format=full" not defined
message: "Error running OPERATION_NAME: error calling OPERATION_NAME: code: "PermissionDenied", message: "The caller does not have permission", details: []"
認証に関する問題により、VM インスタンスがパッチ ダッシュボードに表示されないこともあります。
これらの問題を解決するには、次のいずれか、またはすべてをお試しください。
パッチ更新用のパッケージの除外時のエラーについて
パッチジョブでパッケージを除外するときにパッケージの名前にワイルドカードまたは特殊文字を指定した場合、OS Patch Management はリストを無視してすべてのパッケージを更新することがあります。
この問題を解決するには、OS Config エージェントを更新してバージョン
20220829.00
にしてから、スラッシュ(/
)でパッケージ名をラップします。次の例では、OS Patch Management は、パッケージ名に接頭辞
google-
が付いたyum
パッケージを除外しています。gcloud compute os-config patch-jobs execute --instance-filter-all
--yum-excludes=/google-.*/次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-11-19 UTC。
-