このドキュメントでは、Compute Engine インスタンスにコンピューティング ワークロード用エージェントをインストールし、これらのコンピューティング インスタンスで実行されている MySQL ワークロードに接続するようにエージェントを構成する方法について説明します。
エージェントをインストールして構成すると、MySQL ワークロードと基盤となるコンピューティング インスタンスから指標が収集され、Workload Manager に送信されます。その後、 Workload Manager の評価 を使用して、 インフラストラクチャ、オペレーティング システム、ワークロード構成のベスト プラクティスからの逸脱がないか MySQL ワークロードをスキャンできます。
始める前に
コンピューティング ワークロード用エージェント をインストールして構成する前に、次の前提条件を満たしていることを確認する必要があります。
- 1 つ以上のコンピューティング インスタンスに MySQL ワークロードをデプロイしている。
- Workload Manager の評価を作成できるサポート対象リージョン を確認している。
- 管理者が、ワークロード マネージャーの評価を作成して実行するために必要な IAM ロールを付与している。
- エージェントに必要な IAM ロールを付与している。
- Cloud APIs へのアクセスを有効にしている。
エージェントに必要な IAM ロール
コンピューティング ワークロード用エージェント は、認証とリソースへのアクセスに、コンピューティング インスタンスに接続されたサービス アカウントを使用します。 Google Cloud
セキュリティを強化するため、Compute Engine のデフォルトのサービス アカウントではなく、 単一目的のサービス アカウント を使用することをおすすめします。
コンピューティング ワークロード用エージェント が 認証してGoogle Cloud リソースにアクセスするために必要な権限がサービス アカウントに付与されるように、プロジェクトに対する次の IAM ロールをサービス アカウントに付与するよう管理者に依頼してください。 Google Cloud
-
コンピューティング インスタンスから指標を収集する:
コンピューティング閲覧者 (
roles/compute.viewer) -
ワークロード マネージャー データ ウェアハウスにデータを書き込む:
Workload Manager Insights ライター (
roles/workloadmanager.insightWriter) -
エージェント ログを Cloud Logging に送信する:
ログ書き込み (
roles/logging.logWriter) -
Secret Manager を使用して MySQL インスタンスに接続するパスワードを保存する場合:
Secret Manager シークレット アクセサー (
roles/secretmanager.secretAccessor)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
管理者は、カスタムロールや他の事前定義ロールを使用して、必要な権限をサービス アカウントに付与することもできます。
Cloud APIs へのアクセスを有効にする
Compute Engine では、すべての Cloud APIs にすべてのアクセス スコープを使用できるようにインスタンスを構成し、インスタンスサービス アカウントの IAM 権限のみを使用して リソースへのアクセスを制御することをおすすめします。 Google Cloud 詳細については、 ユーザー管理のサービスアカウントを使用する VM を作成するをご覧ください。
Cloud APIs へのアクセスを制限する場合、コンピューティング ワークロード用エージェントには、ホスト コンピューティング インスタンスで次の最小 Cloud APIs アクセス スコープが必要です。
https://www.googleapis.com/auth/cloud-platform
詳細については、 スコープのベスト プラクティスをご覧ください。
外部 IP アドレスを持たないコンピューティング インスタンスで MySQL アプリケーションを実行している場合は、インスタンスのサブネットでプライベート Google アクセスを有効にして、コンピューティング ワークロード用エージェント が Google API とサービスにアクセスできるようにする必要があります。プライベート Google アクセスを有効にする方法については、 プライベート Google アクセスを構成するをご覧ください。
パッケージ管理システムを使用してエージェントをインストールして構成する
このセクションでは、パッケージ管理システムを使用して、コンピューティング インスタンスにコンピューティング ワークロード用エージェントをインストールし、MySQL インスタンスに接続するように構成する方法について説明します。
コンピューティング ワークロード用エージェントをインストールする手順は次のとおりです。
RHEL
Red Hat Enterprise Linux(RHEL)では、yum パッケージ管理コマンドを使用してコンピューティング ワークロード用エージェントをインストールします。このコマンドは、次のタスクを完了します。
- エージェントの最新バージョンをダウンロードします。
- エージェントの
systemdサービス(google-cloud-workload-agentという名前)を作成します。 google-cloud-workload-agentサービスを有効にして開始します。
RHEL ベースのコンピューティング インスタンスにコンピューティング ワークロード用エージェントをインストールして構成する手順は次のとおりです。
コンピューティング インスタンスとの SSH 接続を確立します。
ターミナルで、エージェントをインストールします。
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エージェントの構成ファイルを開きます。
/etc/google-cloud-workload-agent/configuration.json構成ファイルを保存します。
変更を有効にするには、エージェントを再起動します。
SLES
SUSE Linux Enterprise Server(SLES)では、zypper パッケージ管理コマンドを使用してコンピューティング ワークロード用エージェントをインストールします。このコマンドは、次のタスクを完了します。
- エージェントの最新バージョンをダウンロードします。
- エージェントの
systemdサービス(google-cloud-workload-agentという名前)を作成します。 google-cloud-workload-agentサービスを有効にして開始します。
SLES ベースのコンピューティング インスタンスにコンピューティング ワークロード用エージェントをインストールして構成する手順は次のとおりです。
コンピューティング インスタンスとの SSH 接続を確立します。
ターミナルで、エージェントをインストールします。
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エージェントの構成ファイルを開きます。
/etc/google-cloud-workload-agent/configuration.json構成ファイルを保存します。
変更を有効にするには、エージェントを再起動します。
Debian
Debian では、apt パッケージ管理コマンドを使用してコンピューティング ワークロード用エージェントをインストールします。このコマンドは、次のタスクを完了します。
- エージェントの最新バージョンをダウンロードします。
- エージェントの
systemdサービス(google-cloud-workload-agentという名前)を作成します。 google-cloud-workload-agentサービスを有効にして開始します。
Debian ベースのコンピューティング インスタンスにコンピューティング ワークロード用エージェントをインストールして構成する手順は次のとおりです。
コンピューティング インスタンスとの SSH 接続を確立します。
ターミナルで、エージェントをインストールします。
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エージェントの構成ファイルを開きます。
/etc/google-cloud-workload-agent/configuration.json構成ファイルを保存します。
変更を有効にするには、エージェントを再起動します。
Windows
Windows では、googet パッケージ管理コマンドを使用してコンピューティング ワークロード用エージェントをインストールします。このコマンドは、次のタスクを完了します。
- エージェントの最新バージョンをダウンロードします。
google-cloud-workload-agentという名前の Windows サービスを作成します。- 毎分実行されるスケジュール設定されたタスクを作成して、サービスが実行されているかどうかを確認し、必要に応じてサービスを再起動します。
google-cloud-workload-agentWindows ベースのコンピューティング インスタンスにコンピューティング ワークロード用エージェントをインストールして構成する手順は次のとおりです。
RDP を使用してコンピューティング インスタンスとの接続を確立します。
手順については、 RDP を使用して Windows VM に接続するをご覧ください。
管理者として 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エージェントの構成ファイルを開きます。
%ProgramFiles%\Google\google-cloud-workload-agent\conf\configuration.json構成ファイルを保存します。
変更を有効にするには、エージェントを再起動します。
VM Extension Manager を使用して VM フリートにエージェントをインストールして管理する
VM Extension Manager を設定する
VM Extension Manager を設定するには、次の手順を行います。
- VM Extension Manager のドキュメントの 始める前にをご覧ください。
VM Extension Manager ポリシーの作成と管理に必要な IAM ロールを設定します。詳しくは以下をご覧ください。
VM フリートにエージェントをインストールする
VM Extension Manager ポリシーを使用して、特定のゾーン内の VM フリートに最新バージョンのコンピューティング ワークロード用エージェントをインストールする手順は次のとおりです。
コンソール
コンソールで、[VM 拡張機能ポリシー] ページに移動します。 Google Cloud
[拡張機能ポリシーを作成] をクリックします。
[名前] フィールドに、ポリシーの名前を入力します。
省略可: [説明] フィールドに、ポリシーの説明を入力します。
[優先度] フィールドで、ポリシー間の競合を解決するための優先度番号を指定します。数字が小さいほど優先度が高くなります。デフォルト値は
1000です。[リージョン] リストと [ゾーン] リストを使用して、このポリシーを適用するゾーンを選択します。
[拡張機能] セクションで [拡張機能を追加] をクリックし、次の操作を行います。
- [拡張機能] リストから [Google Cloud の Compute Workloads 用拡張機能] を選択します。
[バージョン] フィールドは空欄のままにします。
これにより、ポリシーはコンピューティング ワークロード用エージェントの最新バージョンをインストールします。
[構成ファイルの内容] フィールドに、エージェントに適用する構成を入力します。
MySQL ワークロードのエージェントでサポートされている構成パラメータについては、 構成パラメータをご覧ください。
[完了] をクリックします。
省略可: ポリシーのロールアウトを必要な VM に制限するには、次の操作を行います。
- [ラベルを追加] をクリックし、必要な VM を識別するラベルを追加します。
- [完了] をクリックします。
[作成] をクリックします。
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: コンピューティング ワークロード用エージェントが MySQL ワークロードに接続するための構成を含む JSON ファイルのローカル パス。- あるいは、構成をインライン文字列として指定する場合は、
--configではなく--config-from-fileフラグを使用します。たとえば、--config=google-cloud-workload-extension="CONFIG"。 Google Cloud--config-from-fileの使用をおすすめします。 --config-from-fileまたは--configのどちらかを使用できますが、 同じコマンドで両方を使用することはできません。- MySQL ワークロードのエージェントでサポートされている構成パラメータについては、 構成パラメータをご覧ください。
- あるいは、構成をインライン文字列として指定する場合は、
DESCRIPTION: ポリシーの説明(省略可)。KEY_1=VALUE_1: ポリシーが VM をターゲットにするために使用するラベルを定義する Key-Value ペアのカンマ区切りのリスト 。- ポリシーのターゲットとなる VM には、指定されたすべてのラベルが必要です。
--inclusion-labelsを複数回指定すると、ポリシーは、指定されたセレクタのいずれかに一致する VM をターゲットにします(論理OR)。このフラグを省略すると、ポリシーは指定されたゾーン内のすべての VM をターゲットにします。
PRIORITY: ポリシーの優先度を定義する0~65535の整数。数字が小さいほど優先度が高くなります。デフォルト値は1000です。
例:
次のコマンドは、test-project という名前のプロジェクトに test-agent-policy という名前のポリシーを作成します。このポリシーは、ゾーン us-centrail-f にデプロイされたすべての VM に最新バージョンの Agent for Compute Workloads をインストールします。Google Cloud 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"
エージェントのインストールを確認する
エージェントが想定どおりに実行されていることを確認する手順は次のとおりです。
RHEL
コンピューティング インスタンスとの SSH 接続を確立します。
エージェント パッケージのステータスを確認します。
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
コンピューティング インスタンスとの SSH 接続を確立します。
エージェント パッケージのステータスを確認します。
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
コンピューティング インスタンスとの SSH 接続を確立します。
エージェント パッケージのステータスを確認します。
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
Windows
RDP を使用してコンピューティング インスタンスとの接続を確立します。
手順については、 RDP を使用して Windows VM に接続するをご覧ください。
管理者として PowerShell から次のコマンドを実行します。
$(Get-Service -Name 'google-cloud-workload-agent' -ErrorAction Ignore).Statusエージェントが想定どおりに実行されている場合、ステータスは
Runningと表示されます。
構成ファイルの例
次に、コンピューティング ワークロード用エージェント が MySQL インスタンスに接続できるようにする構成の例を示します。認証には、MySQL インスタンスが実行されている同じ Google Cloud プロジェクトに保存されている Secret Manager シークレットが使用されます。
{
"log_level": "INFO",
"common_discovery": {
"collection_frequency": "10800s"
},
"mysql_configuration": {
"enabled": true,
"connection_parameters": {
"username": "db_user_name",
"secret": {
"secret_name": "db_pwd_secret_name",
"project_id": ""
},
"host": "localhost",
"port": 1433
}
}
}
構成パラメータ
次の表に、MySQL ワークロードの評価をサポートするコンピューティング ワークロード用エージェントの構成パラメータを示します。
| パラメータ | |
|---|---|
log_level |
エージェントのロギングレベルを設定するには、必要な値を設定します。使用可能なログレベルは次のとおりです。
デフォルトのログレベルは |
log_to_cloud |
エージェントのログを
Cloud Logging にリダイレクトするには、
|
agent_properties.log_usage_metrics |
エージェントの健全性指標のロギングを有効にするには、値を
|
common_discovery.collection_frequency |
エージェントのワークロード検出サービスを実行する頻度を秒単位で指定します。デフォルト値は このパラメータの値は小文字の |
mysql_configuration.enabled
|
エージェントが MySQL
インスタンスから指標を収集できるようにするには、値を |
mysql_configuration.connection_parameters.username |
エージェントが MySQL インスタンスのクエリに使用するユーザー アカウントを指定します。 |
mysql_configuration.connection_parameters.password |
エージェントが MySQL インスタンスのクエリに使用するユーザー アカウントのパスワード(書式なしテキスト)を指定します。 書式なしテキスト パスワードを指定する代わりに、
認証の場合、エージェントは次の優先順位を使用します。指定されている場合、 |
mysql_configuration.connection_parameters.secret.secret_name |
省略可。エージェントが MySQL インスタンスのクエリに使用するユーザー アカウントのパスワードを安全に指定するには、パスワードを含む Secret Manager シークレットの名前を指定します。 認証の場合、エージェントは次の優先順位を使用します。指定されている場合、 |
mysql_configuration.connection_parameters.secret.project_id |
シークレットとワークロードが同じ Google Cloud プロジェクトにある場合は、このパラメータの値を空の文字列( |
mysql_configuration.connection_parameters.host |
MySQL ホスト名を指定します。 |
mysql_configuration.connection_parameters.port |
MySQL インスタンスがクエリを受け付けるポートを指定します。 |