Microsoft SQL Server ワークロード用にエージェントを設定する

このドキュメントでは、Compute Engine インスタンスにコンピューティング ワークロード用エージェントをインストールし、これらのコンピューティング インスタンスで実行されている Microsoft SQL Server ワークロードに接続するようにエージェントを構成する方法について説明します。

エージェントをインストールして構成すると、SQL Server ワークロードと基盤となるコンピューティング インスタンスから指標が収集され、ワークロード マネージャーに送信されます。Workload Manager の評価を使用して、インフラストラクチャ、オペレーティング システム、ワークロード構成のベスト プラクティスからの逸脱について SQL Server ワークロードをスキャンできます。

始める前に

コンピューティング ワークロード用エージェント をインストールして構成する前に、次の前提条件が満たされていることを確認する必要があります。

エージェントに必要な IAM ロール

コンピューティング ワークロード用エージェントは、認証と Google Cloud リソースへのアクセスに、コンピューティング インスタンスに関連付けられたサービス アカウントを使用します。

セキュリティを強化するため、Compute Engine のデフォルトのサービス アカウントを使用するのではなく、単一目的のサービス アカウントを使用することをおすすめします。

コンピューティング ワークロード用エージェント がGoogle Cloud で認証を行い、 Google Cloud リソースにアクセスするために必要な権限がサービス アカウントに付与されるように、プロジェクトに対する次の IAM ロールをサービス アカウントに付与するよう管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

管理者は、カスタムロールや他の事前定義ロールを使用して、必要な権限をサービス アカウントに付与することもできます。

Cloud APIs へのアクセスを有効にする

Compute Engine では、すべての Cloud APIs にすべてのアクセス スコープを使用できるようにインスタンスを構成し、インスタンス サービス アカウントの IAM 権限のみを使用してGoogle Cloud リソースへのアクセスを制御することをおすすめします。詳細については、ユーザー管理のサービス アカウントを使用する VM を作成するをご覧ください。

Cloud APIs へのアクセスを制限する場合、コンピューティング ワークロード用エージェントには、ホスト コンピューティング インスタンスで次の最小 Cloud APIs アクセス スコープが必要です。

https://www.googleapis.com/auth/cloud-platform

詳細については、スコープのベスト プラクティスをご覧ください。

外部 IP アドレスを持たないコンピューティング インスタンスで SQL Server ワークロードを実行している場合は、インスタンスのサブネットでプライベート Google アクセスを有効にして、コンピューティング ワークロード用エージェントが Google API とサービスにアクセスできるようにする必要があります。プライベート Google アクセスを有効にする方法については、プライベート Google アクセスを構成するをご覧ください。

SQL Server で必要な権限

次のスクリプトを使用して、エージェントで構成されたユーザー アカウントに必要な権限を割り当てます。

    USE [master]
    GO 
GRANT VIEW SERVER STATE TO [user_name] GRANT VIEW ANY DEFINITION TO [user_name]
-- Adds db_datareader role to the user EXEC sp_MSForEachDB ' USE ? IF NOT EXISTS(SELECT * FROM sys.database_principals WHERE name = ''user_name'') BEGIN CREATE USER [user_name] FOR LOGIN [user_name] END EXEC sp_addrolemember ''db_datareader'', ''user_name'' '

パッケージ マネージャーを使用してエージェントをインストールして構成する

このセクションでは、パッケージ管理システムを使用して、コンピューティング インスタンスにコンピューティング ワークロード用エージェントをインストールし、SQL Server インスタンスに接続するように構成する方法について説明します。

コンピューティング ワークロード用エージェントをインストールする手順は次のとおりです。

Windows

Windows では、googet パッケージ管理コマンドを使用して、コンピューティング ワークロード用エージェントをインストールします。このコマンドは、次のタスクを実行します。

  • エージェントの最新バージョンをダウンロードします。
  • google-cloud-workload-agent という名前の Windows サービスを作成します。
  • 毎分実行されるスケジュール設定されたタスクを作成して、サービスが稼働中かどうかを確認し、必要に応じてサービスを再起動します。

Windows ベースのコンピューティング インスタンスにコンピューティング ワークロード用エージェントをインストールして構成する手順は次のとおりです。

  1. RDP を使用してコンピューティング インスタンスとの接続を確立します。

    方法については、RDP を使用して Windows VM に接続するをご覧ください。

  2. 管理者として PowerShell から次のコマンドを実行します。

    googet addrepo google-cloud-workload-agent  https://packages.cloud.google.com/yuck/repos/google-cloud-workload-agent-windows-x86_64
    googet install google-cloud-workload-agent
    
  3. エージェントの構成ファイルを開きます。

    %ProgramFiles%\Google\google-cloud-workload-agent\conf\configuration.json
    
  4. 構成パラメータの説明に従って、すべての必須パラメータの値を指定します。

  5. 構成ファイルを保存する

  6. 変更を有効にするには、エージェントを再起動します。

RHEL

Red Hat Enterprise Linux(RHEL)では、yum パッケージ管理コマンドを使用してコンピューティング ワークロード用エージェントをインストールします。このコマンドは次のタスクを完了します。

  • エージェントの最新バージョンをダウンロードします。
  • エージェントの systemd サービス(google-cloud-workload-agent という名前)を作成します。
  • google-cloud-workload-agent サービスを有効にして開始します。

RHEL ベースのコンピューティング インスタンスにコンピューティング ワークロード用エージェントをインストールして構成するには、次の操作を行います。

  1. コンピューティング インスタンスと SSH 接続を確立します。

  2. ターミナルでエージェントをインストールします。

    sudo tee /etc/yum.repos.d/google-cloud-workload-agent.repo << EOM
    [google-cloud-workload-agent]
    name=Google Cloud Agent for Compute Workloads
    baseurl=https://packages.cloud.google.com/yum/repos/google-cloud-workload-agent-$basearch
    enabled=1
    gpgcheck=0
    repo_gpgcheck=1
    gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
    EOM
    sudo yum install google-cloud-workload-agent
    
  3. エージェントの構成ファイルを開きます。

    /etc/google-cloud-workload-agent/configuration.json
    
  4. 構成パラメータの説明に従って、すべての必須パラメータの値を指定します。

  5. 構成ファイルを保存する

  6. 変更を有効にするには、エージェントを再起動します。

SLES

SUSE Linux Enterprise Server(SLES)では、zypper パッケージ管理コマンドを使用してコンピューティング ワークロード用エージェントをインストールします。このコマンドは次のタスクを完了します。

  • エージェントの最新バージョンをダウンロードします。
  • エージェントの systemd サービス(google-cloud-workload-agent という名前)を作成します。
  • google-cloud-workload-agent サービスを有効にして開始します。

SLES ベースのコンピューティング インスタンスにコンピューティング ワークロード用エージェントをインストールして構成する手順は次のとおりです。

  1. コンピューティング インスタンスと SSH 接続を確立します。

  2. ターミナルでエージェントをインストールします。

    sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-workload-agent-$basearch
    google-cloud-workload-agent
    sudo zypper install google-cloud-workload-agent
    
  3. エージェントの構成ファイルを開きます。

    /etc/google-cloud-workload-agent/configuration.json
    
  4. 構成パラメータの説明に従って、すべての必須パラメータの値を指定します。

  5. 構成ファイルを保存する

  6. 変更を有効にするには、エージェントを再起動します。

Debian

Debian では、apt パッケージ管理コマンドを使用して、コンピューティング ワークロード用エージェントをインストールします。このコマンドは、次のタスクを実行します。

  • エージェントの最新バージョンをダウンロードします。
  • エージェントの systemd サービス(google-cloud-workload-agent という名前)を作成します。
  • google-cloud-workload-agent サービスを有効にして開始します。

Debian ベースのコンピューティング インスタンスにコンピューティング ワークロード用エージェントをインストールして構成する手順は次のとおりです。

  1. コンピューティング インスタンスと SSH 接続を確立します。

  2. ターミナルでエージェントをインストールします。

    echo 'deb https://packages.cloud.google.com/apt google-cloud-workload-agent-x86-64-apt main' | sudo tee -a /etc/apt/sources.list.d/google-cloud-workload-agent.list
    sudo apt-get update
    sudo apt-get install google-cloud-workload-agent
    
  3. エージェントの構成ファイルを開きます。

    /etc/google-cloud-workload-agent/configuration.json
    
  4. 構成パラメータの説明に従って、すべての必須パラメータの値を指定します。

  5. 構成ファイルを保存する

  6. 変更を有効にするには、エージェントを再起動します。

VM Extension Manager を使用して VM フリートにエージェントをインストールして管理する

このセクションでは、VM Extension Manager を使用して、VM のフリートにコンピューティング ワークロード用エージェントをインストールして管理する方法について説明します。

VM Extension Manager ポリシーを使用すると、次のようなタスクを実行できます。

  • フリート全体のインストール: 次の場所にコンピューティング ワークロード用エージェントをインストールします。
    • Google Cloud プロジェクト内のすべての VM、またはラベルで識別される VM のサブセット。
    • ゾーン内のすべての VM、またはラベルで識別される VM のサブセット。
  • 構成管理: ポリシーで管理されているすべての VM のエージェントにカスタム構成を適用します。

VM Extension Manager の詳細については、VM Extension Manager についてをご覧ください。

VM Extension Manager を設定する

VM Extension Manager を設定するには、次の操作を行います。

VM フリートにエージェントをインストールして構成する

VM Extension Manager ポリシーを使用して VM フリートに最新バージョンのコンピューティング ワークロード用エージェントをインストールするには、該当するセクションをご覧ください。

Google Cloud プロジェクト内の VM にエージェントをインストールして構成する

VM 拡張機能マネージャー ポリシーを使用して、 Google Cloud プロジェクト内のすべての VM、またはラベルで識別される VM のサブセットにエージェントをインストールする手順は次のとおりです。

コンソール

  1. Google Cloud コンソールで、[VM 拡張機能ポリシー] ページに移動します。

    [VM 拡張機能ポリシー] に移動

  2. [拡張機能ポリシーを作成] をクリックします。

  3. [名前] フィールドに、ポリシーの名前を入力します。

  4. 省略可: [説明] フィールドに、ポリシーの説明を入力します。

  5. [優先度] フィールドで、ポリシー間の競合を解決するための優先度番号を指定します。数字が小さいほど優先度が高くなります。デフォルト値は 1000 です。

  6. [スコープ] セクションで、[グローバル ロールアウト] を選択します。

  7. [拡張機能を管理する] セクションで、[拡張機能を追加] をクリックして、次の操作を行います。

    1. [拡張機能] リストから、[Google Cloud's Extension for Compute Workloads] を選択します。
    2. [バージョン] フィールドは空欄のままにします。

      これにより、ポリシーはコンピューティング ワークロード用エージェントの最新バージョンをインストールするように指示されます。

    3. [構成ファイルの内容] フィールドに、エージェントに適用する構成を入力します。

      SQL Server ワークロードのエージェントでサポートされている構成パラメータについては、構成パラメータをご覧ください。

    4. [完了] をクリックします。

    5. [ロールアウト] フィールドで、使用するロールアウト プラン オプション([スロー ロールアウト(推奨)] または [高速ロールアウト])を選択します。

      ロールアウト プランについては、ロールアウト プランについてをご覧ください。

  8. 省略可: ポリシーのロールアウトを必要な VM に制限するには、次の操作を行います。

    1. [ラベルを追加] をクリックし、必要な VM を識別するラベルを追加します。
    2. [完了] をクリックします。
  9. [作成] をクリックします。

gcloud

ターミナルまたは Cloud Shell で、gcloud compute global-vm-extension-policies create コマンドを実行します。

gcloud compute global-vm-extension-policies create POLICY_NAME \
    --project=PROJECT_ID \
    --extensions=google-cloud-workload-extension  \
    --rollout-predefined-plan=ROLL_OUT_SPEED \
    [--description="<var>DESCRIPTION</var>" \]
    [--inclusion-labels=KEY1=VALUE1,KEY2=VALUE2 \]
    [--config-from-file=google-cloud-workload-extension="CONFIG_FILE_PATH" \]
    [--priority=PRIORITY]

次のように置き換えます。

  • POLICY_NAME: VM 拡張機能ポリシーの一意の名前。
  • PROJECT_ID: ポリシーを作成するGoogle Cloud プロジェクトのプロジェクト ID
  • ROLL_OUT_SPEED: ポリシーのロールアウトの速度。サポートされている値は slow_rollout(推奨)と fast_rollout です。詳細については、ロールアウト プランについてをご覧ください。

  • または、--rollout-custom-plan オプションを指定して、カスタム ロールアウト プランを使用することもできます。詳細については、ロールアウト プランについてをご覧ください。

  • --rollout-predefined-plan または --rollout-custom-plan のいずれかを使用できますが、同じコマンドで両方を使用することはできません。

  • DESCRIPTION: ポリシーの説明(省略可)。

  • CONFIG_FILE_PATH: コンピューティング ワークロード用エージェントの構成を含む JSON ファイルのローカルパス。

    • あるいは、構成をインライン文字列として指定する場合は、--config-from-file ではなく --config フラグを使用します。例: --config=google-cloud-workload-extension="CONFIG"
    • --config-from-file または --config のいずれかを使用できますが、同じコマンドで両方を使用することはできません。
    • エージェントでサポートされている構成パラメータについては、構成パラメータをご覧ください。
  • KEY_1=VALUE_1: ポリシーが VM をターゲットにするために使用するラベルを定義する Key-Value ペアのカンマ区切りのリスト。

    • ポリシーのターゲットとなる VM には、指定されたすべてのラベルが設定されている必要があります。
    • --inclusion-labels を複数回指定すると、ポリシーは、指定されたセレクタのいずれかに一致する VM をターゲットにします(論理 OR)。このフラグを省略すると、ポリシーはプロジェクト内のすべての VM をターゲットにします。
  • PRIORITY: ポリシーの優先度を定義する 0~65535 の整数。数字が小さいほど優先度が高くなります。デフォルト値は 1000 です。詳細については、ポリシーの優先度と競合の解決をご覧ください。

特定のゾーン内の VM にエージェントをインストールして構成する

VM Extension Manager ポリシーを使用して、特定のゾーン内の VM フリートに最新バージョンのコンピューティング ワークロード用エージェントをインストールして構成するには、次の操作を行います。

コンソール

  1. Google Cloud コンソールで、[VM 拡張機能ポリシー] ページに移動します。

    [VM 拡張機能ポリシー] に移動

  2. [拡張機能ポリシーを作成] をクリックします。

  3. [名前] フィールドに、ポリシーの名前を入力します。

  4. 省略可: [説明] フィールドに、ポリシーの説明を入力します。

  5. [優先度] フィールドで、ポリシー間の競合を解決するための優先度番号を指定します。数字が小さいほど優先度が高くなります。デフォルト値は 1000 です。

  6. [リージョン] リストと [ゾーン] リストで、このポリシーを適用するゾーンを選択します。

  7. [拡張機能を管理する] セクションで、[拡張機能を追加] をクリックして、次の操作を行います。

    1. [拡張機能] リストから、[Google Cloud's Extension for Compute Workloads] を選択します。
    2. [バージョン] フィールドは空欄のままにします。

      これにより、ポリシーはコンピューティング ワークロード用エージェントの最新バージョンをインストールするように指示されます。

    3. [構成ファイルの内容] フィールドに、エージェントに適用する構成を入力します。

      SQL Server ワークロードのエージェントでサポートされている構成パラメータについては、構成パラメータをご覧ください。

    4. [完了] をクリックします。

  8. 省略可: ポリシーのロールアウトを必要な VM に制限するには、次の操作を行います。

    1. [ラベルを追加] をクリックし、必要な VM を識別するラベルを追加します。
    2. [完了] をクリックします。
  9. [作成] をクリックします。

gcloud

gcloud compute zone-vm-extension-policies create POLICY_NAME \
    --zone=ZONE \
    --extensions=google-cloud-workload-extension \
    --config-from-file=google-cloud-workload-extension=CONFIG_FILE_PATH \
    [--description="DESCRIPTION" \]
    [--inclusion-labels=KEY_1=VALUE_1 \]
    [--inclusion-labels=KEY_2=VALUE_2,KEY_3=VALUE_3 \]
    [--priority=PRIORITY]

次のように置き換えます。

  • POLICY_NAME: VM 拡張機能ポリシーの名前。

    指定した名前のポリシーがゾーンにすでに存在する場合、コマンドは失敗します。

  • ZONE: このポリシーを適用するゾーン。

  • CONFIG_FILE_PATH: SQL Server ワークロードに接続するコンピューティング ワークロード用エージェントの構成を含む JSON ファイルのローカルパス。

    • あるいは、構成をインライン文字列として指定する場合は、--config-from-file ではなく --config フラグを使用します。例: --config=google-cloud-workload-extension="CONFIG"Google Cloud では、--config-from-file の使用をおすすめします。
    • --config-from-file または --config のいずれかを使用できますが、同じコマンドで両方を使用することはできません。
    • SQL Server ワークロードのエージェントでサポートされている構成パラメータについては、構成パラメータをご覧ください。
  • DESCRIPTION: ポリシーの説明(省略可)。

  • KEY_1=VALUE_1: ポリシーが VM をターゲットにするために使用するラベルを定義する Key-Value ペアのカンマ区切りのリスト。

    • ポリシーのターゲットとなる VM には、指定されたすべてのラベルが設定されている必要があります。
    • --inclusion-labels を複数回指定すると、ポリシーは、指定されたセレクタのいずれかに一致する VM をターゲットにします(論理 OR)。このフラグを省略すると、ポリシーは指定されたゾーン内のすべての VM をターゲットにします。
  • PRIORITY: ポリシーの優先度を定義する 0~65535 の整数。数字が小さいほど優先度が高くなります。デフォルト値は 1000 です。

例:

次のコマンドは、test-project という名前のGoogle Cloud プロジェクトに test-agent-policy という名前のポリシーを作成します。このポリシーは、ゾーン us-centrail-f にデプロイされたすべての VM に最新バージョンのコンピューティング ワークロード用エージェント をインストールします。agent-config.json で指定された構成がエージェントに適用されます。

gcloud compute zone-vm-extension-policies create test-agent-policy  \
    --project=test-project \
    --zone=us-central1-f \
    --extensions=google-cloud-workload-extension \
    --config-file-path=google-cloud-workload-extension="/usr/agent-config.json"

VM フリートでエージェントを管理する

VM Extension Manager ポリシーによるコンピューティング ワークロード用エージェントの管理方法を変更するには、ポリシーを更新します。ポリシーを更新すると、VM Extension Manager は通常 1 分以内に、該当するすべての VM に変更をロールアウトします。登録ラベルを変更すると、VM が更新されたラベルと一致するかどうかに基づいて、コンピューティング ワークロード用エージェントが新しい VM にインストールされたり、既存の VM からアンインストールされたりする可能性があります。

以降のセクションでは、コンピューティング ワークロード用エージェント を管理して次の操作を行う方法について説明します。

VM フリートでエージェント構成を変更する

VM Extension Manager ポリシーを使用して VM フリートにインストールしたコンピューティング ワークロード用エージェント インスタンスの構成を変更するには、そのポリシーを編集する必要があります。

VM フリートでエージェント構成を変更する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールで、[VM 拡張機能ポリシー] ページに移動します。

    [VM 拡張機能ポリシー] に移動

  2. 変更するポリシーをクリックします。

  3. [拡張機能のポリシーの詳細] ページで、[編集] をクリックします。

  4. [拡張機能を管理する] セクションで、[Google Cloud のコンピューティング ワークロード拡張機能] を切り替えます。

  5. [構成ファイルの内容] フィールドに、エージェントに適用する構成を入力します。

    エージェントでサポートされている構成パラメータについては、構成パラメータをご覧ください。

  6. [完了] をクリックします。

  7. [保存] をクリックします。

gcloud

VM フリートでコンピューティング ワークロード用エージェントの構成を変更するには、gcloud compute zone-vm-extension-policies update コマンドを実行します。gcloud を使用してポリシーを更新すると、リクエストは完全な置換として機能します。省略したオプション フィールドは、変更されたポリシーの既存の値を保持するのではなく、デフォルト値に戻ります。

エージェント構成を変更する手順は次のとおりです。

gcloud compute zone-vm-extension-policies update POLICY_NAME \
    --zone=ZONE \
    --extensions=google-cloud-workload-extension \
    --config-from-file=google-cloud-workload-extension="CONFIG_FILE_PATH" \
    [--inclusion-labels=KEY_1=VALUE_1 \]
    [--inclusion-labels=KEY_2=VALUE_2,KEY_3=VALUE_3 \]
    [--priority=PRIORITY_NUMBER \]
    [--description="DESCRIPTION"]

次のように置き換えます。

  • POLICY_NAME: 変更する VM 拡張機能ポリシーの名前。
  • ZONE: ポリシーが適用される Google Cloud ゾーン。
  • CONFIG_FILE_PATH: コンピューティング ワークロード用エージェントの構成を含む JSON ファイルのローカル パス。

    • --config-from-file ではなく --config フラグを使用して、エージェント構成をインライン文字列として指定することもできます。例: --config=google-cloud-workload-extension="CONFIG"Google Cloud では、--config-from-file の使用をおすすめします。
    • --config-from-file または --config のいずれかを使用できますが、同じコマンドで両方を使用することはできません。
    • エージェントでサポートされている構成パラメータについては、構成パラメータをご覧ください。
  • KEY_1=VALUE_1: ポリシーが VM をターゲットにするために使用するラベルを定義する Key-Value ペアのカンマ区切りのリスト。

    • ポリシーのターゲットとなる VM には、指定されたすべてのラベルが設定されている必要があります。
    • --inclusion-labels を複数回指定すると、ポリシーは、指定されたセレクタのいずれかに一致する VM をターゲットにします(論理 OR)。このフラグを省略すると、ポリシーは指定されたゾーン内のすべての VM をターゲットにします。
  • PRIORITY_NUMBER: ポリシーに設定する優先度。0~65535 の整数を指定できます。

  • DESCRIPTION: VM 拡張機能ポリシーの説明。

新しいゾーンを含めるようにグローバル ポリシーを更新する

グローバル ポリシーを作成してロールアウトした後に新しいゾーンで VM を作成しても、VM Extension Manager は新しいゾーンの VM にポリシーを自動的に適用しません。新しいゾーンに VM を含めるには、グローバル ポリシーのロールアウトを再開する必要があります。

グローバル ポリシーのロールアウトを再開するには、次の操作を行います。

  • ターミナルまたは Cloud Shell で、gcloud compute global-vm-extension-policies update コマンドを実行し、次のように --rollout-entry-uuid オプションを指定します。

    gcloud compute global-vm-extension-policies update POLICY_NAME \
        --project=PROJECT_ID \
        --extensions=google-cloud-workload-extension  \
        --rollout-predefined-plan=ROLL_OUT_SPEED \
        --config-from-file=google-cloud-workload-extension="CONFIG_FILE_PATH" \
        --rollout-retry-uuid=UUID
    

    次のように置き換えます。

    • UUID: 再試行リクエストを識別するユニバーサルに一意の識別子(UUID)。UUID ジェネレータを使用して作成できます。詳細については、ロールアウトを再試行するをご覧ください。
    • ROLL_OUT_SPEED: ポリシーのロールアウトの速度。サポートされている値は slow_rollout(推奨)と fast_rollout です。詳細については、ロールアウト プランについてをご覧ください。

    • または、--rollout-custom-plan オプションを指定して、カスタム ロールアウト プランを使用することもできます。詳細については、ロールアウト プランについてをご覧ください。

    • --rollout-predefined-plan または --rollout-custom-plan のいずれかを使用できますが、同じコマンドで両方を使用することはできません。

ゾーンを除外するようにグローバル ポリシーを更新する

ゾーンを除外するようにグローバル ポリシーを更新する手順は次のとおりです。

  • ターミナルまたは Cloud Shell で gcloud compute global-vm-extension-policies update コマンドを実行し、ポリシーを適用するゾーンを指定するカスタム ロールアウト プランを指定します。

    gcloud compute global-vm-extension-policies update POLICY_NAME \
        --project=PROJECT_ID \
        --extensions=google-cloud-workload-extension  \
        --rollout-custom-plan=projects/PROJECT_ID/locations/global/rolloutPlans/NEW_CUSTOM_PLAN_NAME \
        --rollout-retry-uuid=UUID
    

    次のように置き換えます。

    • NEW_CUSTOM_PLAN_NAME: ポリシーを適用するゾーンを識別する新しいカスタム ロールアウト プランの名前。カスタム ロールアウト プランの作成については、ロールアウト プランについてをご覧ください。
    • UUID: 再試行リクエストを識別するユニバーサルに一意の識別子(UUID)。UUID ジェネレータを使用して作成できます。詳細については、ロールアウトを再試行するをご覧ください。

VM フリートからエージェントをアンインストールする

VM フリートからコンピューティング ワークロード用エージェントをアンインストールするには、VM フリートを管理する VM Extension Manager ポリシーを削除する必要があります。

ポリシーの削除中に、別の優先度の低い有効なポリシーが VM に適用され、コンピューティング ワークロード用エージェントが宣言されている場合、優先度の低いポリシーに基づいて、エージェントはその VM にインストールされたままになります。

VM Extension Manager は、ポリシーの削除後 1 分以内に、アクセス可能なすべての VM からエージェントを削除します。ゲスト エージェントが削除されたか、VM が削除されたために VM にアクセスできない場合、VM Extension Manager は Agent for Compute Workloads の削除をスキップします。このような VM が再び利用可能になると、VM Extension Manager はその時点でコンピューティング ワークロード用エージェントを削除します。

VM フリートからコンピューティング ワークロード用エージェントをアンインストールする手順は次のとおりです。

コンソール

  1. Google Cloud コンソールで、[VM 拡張機能ポリシー] ページに移動します。

    [VM 拡張機能ポリシー] に移動

  2. VM フリートのコンピューティング ワークロード用エージェントを管理するポリシーをクリックします。

  3. [拡張機能ポリシーの詳細] ページで、[削除] をクリックして、削除を確定します。

gcloud

gcloud compute zone-vm-extension-policies delete POLICY_NAME \
    --project=PROJECT_ID \
    --zone=ZONE

次のように置き換えます。

  • POLICY_NAME: 削除する VM 拡張機能ポリシーの名前。
  • PROJECT_ID: ポリシーが配置されている Google Cloud プロジェクトの ID。
  • ZONE: ポリシーが配置されている Google Cloud ゾーン。

エージェントのインストールを確認する

エージェントが期待どおりに動作していることを確認する手順は次のとおりです。

Windows

  1. RDP を使用してコンピューティング インスタンスとの接続を確立します。

    方法については、RDP を使用して Windows VM に接続するをご覧ください。

  2. 管理者として PowerShell から次のコマンドを実行します。

    $(Get-Service -Name 'google-cloud-workload-agent' -ErrorAction Ignore).Status
    

    エージェントが想定どおりに実行されている場合、ステータスは Running になります。

RHEL

  1. コンピューティング インスタンスと SSH 接続を確立します。

  2. エージェント パッケージのステータスを確認します。

    systemctl status google-cloud-workload-agent
    

    エージェント パッケージが期待どおりに実行されている場合、出力には active (running) が含まれます。次に例を示します。

    google-cloud-workload-agent.service - Google Cloud Agent for Compute Workloads
    Loaded: loaded (/usr/lib/systemd/system/google-cloud-workload-agent.service; enabled; vendor preset: disabled)
    Active: active (running) since Sun 2025-07-30 18:59:12 UTC; 10s ago
    Main PID: 14412 (google_cloud_sq)
      Tasks: 7
    Memory: 12.9M (max: 1.0G limit: 1.0G available: 1011.0M)
    CGroup: /system.slice/google-cloud-workload-agent.service
            └─ 14412 /usr/bin/google_cloud_sql_server_agent --action=run

SLES

  1. コンピューティング インスタンスと SSH 接続を確立します。

  2. エージェント パッケージのステータスを確認します。

    systemctl status google-cloud-workload-agent
    

    エージェント パッケージが期待どおりに実行されている場合、出力には active (running) が含まれます。次に例を示します。

    google-cloud-workload-agent.service - Google Cloud Agent for Compute Workloads
    Loaded: loaded (/usr/lib/systemd/system/google-cloud-workload-agent.service; enabled; vendor preset: disabled)
    Active: active (running) since Sun 2025-07-30 18:59:12 UTC; 10s ago
    Main PID: 14412 (google_cloud_sq)
      Tasks: 7
    Memory: 12.9M (max: 1.0G limit: 1.0G available: 1011.0M)
    CGroup: /system.slice/google-cloud-workload-agent.service
            └─ 14412 /usr/bin/google_cloud_sql_server_agent --action=run

Debian

  1. コンピューティング インスタンスと SSH 接続を確立します。

  2. エージェント パッケージのステータスを確認します。

    systemctl status google-cloud-workload-agent
    

    エージェント パッケージが期待どおりに実行されている場合、出力には active (running) が含まれます。次に例を示します。

    google-cloud-workload-agent.service - Google Cloud Agent for Compute Workloads
    Loaded: loaded (/usr/lib/systemd/system/google-cloud-workload-agent.service; enabled; vendor preset: disabled)
    Active: active (running) since Sun 2025-07-30 18:59:12 UTC; 10s ago
    Main PID: 14412 (google_cloud_sq)
      Tasks: 7
    Memory: 12.9M (max: 1.0G limit: 1.0G available: 1011.0M)
    CGroup: /system.slice/google-cloud-workload-agent.service
            └─ 14412 /usr/bin/google_cloud_sql_server_agent --action=run

構成パラメータ

次の表に、エージェントの構成ファイルのパラメータを示します。

パラメータ
log_level

String

エージェントのロギングレベルを設定するには、必要な値を設定します。使用可能なログレベルは次のとおりです。

  • DEBUG
  • INFO
  • WARNING
  • ERROR

デフォルトのログレベルは INFO です。Cloud カスタマーケアから指示されない限り、ロギングレベルを変更しないでください。

log_to_cloud

Boolean

エージェントのログを Cloud Logging にリダイレクトするには、true を指定します。デフォルト値は true です。

agent_properties.log_usage_metrics

Boolean

エージェントの健全性指標のロギングを有効にするには、値を true に設定します。デフォルト値は false です。

common_discovery.collection_frequency

Duration

エージェントのワークロード検出サービスが実行される頻度を秒単位で指定します。デフォルト値は 10800s です。

このパラメータの値が小文字の s で終わっていることを確認します。

sqlserver_configuration.enabled

Boolean

エージェント内で SQL Server 指標の収集を有効にするには、値を true に設定します。デフォルトは false です。

sqlserver_configuration.collection_configuration.collect_guest_os_metrics

Boolean

OS 指標の収集を有効にするには、値を true に設定します。デフォルトは true です。
Cloud カスタマーケアから指示されない限り、sqlserver_configuration.collection_configuration.collect_guest_os_metrics を false に設定しないでください。

sqlserver_configuration.collection_configuration.collect_sql_metrics

Boolean

SQL Server 指標の収集を有効にするには、true を指定します。デフォルトは true です。
Cloud カスタマーケアから指示されない限り、sqlserver_configuration.collection_configuration.collect_sql_metrics を false に設定しないでください。

sqlserver_configuration.collection_configuration.collection_frequency

Duration

コンピューティング ワークロード用エージェントの指標収集頻度(秒)。デフォルトは 3600s です。収集頻度を更新できます。ただし、デフォルト値を維持することをおすすめします。

sqlserver_configuration.credential_configurations[].connection_parameters[].host

String

SQL Server のホスト名。

sqlserver_configuration.credential_configurations[].connection_parameters[].username

String

SQL Server インスタンスのクエリに使用するユーザー アカウントを指定します。アカウント権限を構成するには、 権限スクリプトに必要な権限を確認して、内部ポリシーに従って付与してください。

注: Windows 認証を使用している場合は、ユーザー名を domain-name\\user-name 形式で指定してください。

sqlserver_configuration.credential_configurations[].connection_parameters[].secret.project_id

String

シークレットが保存されているプロジェクトの ID。シークレットとホスト VM インスタンスが同じ Google Cloud プロジェクトに存在する場合は、空の文字列("")に設定します。

sqlserver_configuration.credential_configurations[].connection_parameters[].secret.secret_name

String

エージェントが SQL Server のクエリに使用するデータベース ユーザー アカウントのパスワードを安全に指定するには、データベース ユーザー アカウントのセキュリティ認証情報を含む Secret Manager のシークレットの名前を指定します。

注: シークレットとホスト VM インスタンスは、同じ Google Cloud プロジェクトに存在する必要があります。

sqlserver_configuration.credential_configurations[].connection_parameters[].port

Int

SQL Server インスタンスがクエリを受け付けるポートを指定します。

sqlserver_configuration.credential_configurations[].remote_win.connection_parameters.host

String

リモート Windows VM の IP アドレスまたは FQDN

sqlserver_configuration.credential_configurations[].remote_win.connection_parameters.username

String

Windows VM にリモート接続するために使用されるユーザー アカウントを指定します。

sqlserver_configuration.credential_configurations[].remote_win.connection_parameters.secret.secret_name

String

エージェントが VM にリモート接続するために使用する Windows ユーザー アカウントのパスワードを安全に指定するには、データベース ユーザー アカウントのセキュリティ認証情報を含む Secret Manager のシークレットの名前を指定します。

注: シークレットとホスト VM インスタンスは、同じ Google Cloud プロジェクトに存在する必要があります。

sqlserver_configuration.credential_configurations[].local_collection

Boolean

エージェントがローカル データの収集を行っていることを示すには、true を指定します。デフォルトは true です。

sqlserver_configuration.credential_configurations[].remote_linux.connection_parameters.host

String

リモート Linux VM の IP アドレスまたは FQDN。

sqlserver_configuration.credential_configurations[].remote_linux.connection_parameters.username

String

Linux VM へのリモート接続に使用するユーザー アカウントを指定します。

sqlserver_configuration.credential_configurations[].remote_linux.connection_parameter.port

Int

リモート Linux VM の SSH ポート番号を指定します。

sqlserver_configuration.credential_configurations[].remote_linux.linux_ssh_private_key_path

String

SSH 秘密鍵ファイルのパスを指定します。

sqlserver_configuration.credential_configurations[].vm_properties.instance_name

String

Compute Engine VM インスタンスの名前を指定します。

注: ローカル コレクションの場合は省略可能です。

sqlserver_configuration.credential_configurations[].vm_properties.instance_id

String

Compute Engine VM インスタンスの ID を指定します。

注: ローカル コレクションの場合は省略可能です。

sqlserver_configuration.collection_timeout

Duration

指標収集のタイムアウト(秒単位)。デフォルトは `10s` です。

sqlserver_configuration.max_retries

Int

コレクションの失敗時に再試行する最大回数。デフォルト値は `3` です。

sqlserver_configuration.retry_frequency

Duration

収集が失敗した場合にエージェントが再試行する頻度を指定します。デフォルト値は `3600s` です。

sqlserver_configuration.remote_collection

Boolean

エージェントがリモート データ収集を行っていることを示すには、true を指定します。デフォルトは false です。

構成ファイルの例

次の構成例では、コンピューティング ワークロード用エージェント が SQL Server インスタンスに接続できます。

ローカル収集

{
"log_level": "INFO",
"common_discovery": {
    "collection_frequency": "10800s"
},
"sqlserver_configuration": {
    "enabled": true,
    "collection_configuration": {
        "collect_guest_os_metrics": true,
        "collect_sql_metrics": true,
        "collection_frequency": "60s"
    },
    "credential_configurations": [
        {
            "connection_parameters": [
                {
                    "host": ".",
                    "username": "db_user_name",
                    "secret": {
                        "project_id": "",
                        "secret_name": "idb_pwd_secret_name"
                    },
                    "port": 1433
                }
            ],
            "local_collection": true
        }
    ],
    "collection_timeout": "60s",
    "max_retries": 5,
    "retry_frequency": "3600s"
}
}

リモート収集

{
"log_level": "INFO",
"common_discovery": {
    "collection_frequency": "10800s"
},
"sqlserver_configuration": {
    "enabled": true,
    "collection_configuration": {
        "collect_guest_os_metrics": true,
        "collect_sql_metrics": true,
        "collection_frequency": "60s"
    },
    "credential_configurations": [
        {
            "connection_parameters": [
                {
                    "host": "sql_server_instance",
                    "username": "db_user_name",
                    "secret": {
                        "project_id": "",
                        "secret_name": "db_pwd_secret_name"
                    },
                    "port": 1433
                }
            ],
            "remote_win": {
                "connection_parameters": {
                    "host": "sql_server_instance",
                    "username": "user_name",
                    "secret": {
                        "project_id": "",
                        "secret_name": "pwd_secret_name"
                    }
                }
            },
            "vm_properties": {
                "instance_name": "db01",
                "instance_id": "9999999999999999999"
            }
        },
        {
            "connection_parameters": [
                {
                    "host": "sql_server_instance",
                    "username": "db_user_name",
                    "secret": {
                        "project_id": "",
                        "secret_name": "db_pwd_secret_name"
                    },
                    "port": 1433
                }
            ],
            "remote_linux": {
                "connection_parameters": {
                    "host": "sql_server_instance",
                    "username": "user_name",
                    "secret": {
                        "project_id": "",
                        "secret_name": "pwd_secret_name"
                    },
                    "port": 22
                },
                "linux_ssh_private_key_path": "path of the private key"
            },
            "vm_properties": {
                "instance_name": "db02",
                "instance_id": "9999999999999999999"
            }
        }
    ],
    "collection_timeout": "10s",
    "max_retries": 3,
    "retry_frequency": "3600s",
    "remote_collection": true
}
}

エージェントのバージョンを確認する

エージェントのバージョンを確認する手順は次のとおりです。

Windows

  1. RDP を使用して、ホストマシンに接続します。
  2. 管理者として PowerShell から次のコマンドを実行します。
    googet installed google-cloud-workload-agent

RHEL

  1. SSH を使用してホストマシンに接続します。
  2. 次のコマンドを実行します。
    yum info google-cloud-workload-agent

SUSE

  1. SSH を使用してホストマシンに接続します。
  2. 次のコマンドを実行します。
    zypper info google-cloud-workload-agent

Debian

  1. SSH を使用してホストマシンに接続します。
  2. 次のコマンドを実行します。
    dpkg -s google-cloud-workload-agent | grep version

エージェントを再起動する

コンピューティング ワークロード用エージェントが停止するか、構成を更新した場合は、エージェントを再起動します。

ご使用のオペレーティング システムに応じて、次の操作を行います。

Windows

  1. RDP を使用して、ホストマシンに接続します。
  2. 管理者として PowerShell から次のコマンドを実行します。
    Restart-Service -Name 'google-cloud-workload-agent' -Force

Linux

  1. SSH を使用してホストマシンに接続します。
  2. 次のコマンドを実行します。
    sudo systemctl restart google-cloud-workload-agent

エージェントを更新する

エージェントの最新バージョンを使用するには、定期的に更新を確認し、エージェントを更新する必要があります。

更新を確認する

ご使用のオペレーティング システムに応じて、次の操作を行います。

Windows

  1. RDP を使用して、ホストマシンに接続します。
  2. 管理者として PowerShell から次のコマンドを実行します。
    googet latest google-cloud-workload-agent

RHEL

  1. SSH を使用してホストマシンに接続します。
  2. 次のコマンドを実行します。
    sudo yum check-update google-cloud-workload-agent

SLES

  1. SSH を使用してホストマシンに接続します。
  2. 次のコマンドを実行します。
    sudo zypper list-updates -r google-cloud-workload-agent

Debian

  1. SSH を使用してホストマシンに接続します。
  2. 次のコマンドを実行します。
    sudo apt list google-cloud-workload-agent

更新をインストールする

ご使用のオペレーティング システムに応じて、次の操作を行います。

Windows

  1. RDP を使用して、ホストマシンに接続します。
  2. 管理者として PowerShell から次のコマンドを実行します。
    googet install google-cloud-workload-agent

RHEL

  1. SSH を使用してホストマシンに接続します。
  2. 次のコマンドを実行します。
    sudo yum --nogpgcheck update google-cloud-workload-agent

SLES

  1. SSH を使用してホストマシンに接続します。
  2. 次のコマンドを実行します。
    sudo zypper --no-gpg-checks update google-cloud-workload-agent

Debian

  1. SSH を使用してホストマシンに接続します。
  2. 次のコマンドを実行します。
    sudo apt-get install google-cloud-workload-agent

Cloud Logging でエージェントのログを表示する

デフォルトでは、コンピューティング ワークロード用エージェントのログは、VM インスタンスから Cloud Logging にリダイレクトされます。

Logging でエージェントのログを表示する手順は次のとおりです。

  1. Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] に移動

  2. [クエリ] ペインに移動します。

  3. [リソース] プルダウン メニューから [グローバル] を選択し、[適用] をクリックします。

  4. クエリエディタで、「google-cloud-workload-agent」と入力します。

  5. [クエリを実行] をクリックします。

    すべての VM インスタンスで実行されているエージェント インスタンスによって生成されたログが表示されます。特定のマシンのログをフィルタするには、インターフェースで使用可能なフィルタを使用します。

Cloud Logging でエージェントのログを無効にする

エージェントのログの Cloud Logging へのデフォルトのリダイレクトを無効にするには、次の操作を行います。

  1. ホスト VM インスタンスと RDP または SSH 接続を確立します。

  2. エージェントの構成ファイルを開きます。

    Windows

    %ProgramFiles%\Google\google-cloud-workload-agent\conf\configuration.json

    Linux

    /etc/google-cloud-workload-agent/configuration.json

  3. log_to_cloud プロパティの値を false に更新します。

  4. 構成ファイルを保存します。

  5. エージェントを再起動して、この変更を有効にします。

トラブルシューティング

以降のセクションでは、コンピューティング ワークロード用エージェントの使用に関連する一般的な問題とその原因、解決策について説明します。

認証スコープが不十分

問題: ホスト VM インスタンスのアクセス スコープを制限すると、コンピューティング ワークロード用エージェント ログに IAM 権限不足のエラーが表示されることがあります。

  googleapi: Error 403: Request had insufficient authentication scopes.
  Details:
  [
    {
      "@type": "type.googleapis.com/google.rpc.ErrorInfo",
      "domain": "googleapis.com",
      "metadata": {
        "method": "google.cloud.workloadmanager.datawarehouse.v1.DataCollectService.WriteInsight",
        "service": "workloadmanager.googleapis.com"
      },
      "reason": "ACCESS_TOKEN_SCOPE_INSUFFICIENT"
    }
  ]

More details: Reason: insufficientPermissions, Message: Insufficient Permission

原因: コンピューティング ワークロード用エージェントでは、ホスト VM インスタンスで最小限の Cloud API アクセス スコープが必要です。

解決策: この問題を解決するには、必要なアクセス スコープを有効にします。

構成ファイルを読み込めませんでした

問題: 構成ファイルに無効な値が含まれている場合、次のエラーが表示されます。

"Failed to load configuration","pid":3524,"error":"proto: (line 19:42): unknown
field "{field_name}"

解決策: この問題を解決するには、構成パラメータの詳細を使用して構成ファイルを更新します。

データの収集を初期化できませんでした

問題: エージェントのインストール後に構成ファイルが更新されないと、次のエラーが表示されます。

"Failed to initialize guest collection","pid":2112,"error":"invalid value for "user_name" "secret_name"

解決策: この問題を解決するには、構成パラメータを使用して認証情報の構成を初期化します。

次のステップ