Google Cloud Operations Suite のエージェントを用いた Google Cloud VMware Engine (GCVE) 環境のモニタリング構成手順と取得した指標やログの確認方法

Takao Setaka
google-cloud-jp
Published in
16 min readOct 27, 2021
GCVE のメトリック(指標)データを Cloud Monitoring のダッシュボードで参照する

TL;DR

はじめに

Google Cloud 内において VMware vSphere や VMware NSX を用いた VMware の Software Defined Data Center (SDDC) 環境をマネージドサービスとして提供する Google Cloud VMware Engine (以下、GCVE) では、オンプレミスにおける vSphere 基盤と同様に vCenter Server や NSX Manager の Web UI や API を利用して日常的な操作や管理を行って頂くことができます。また、ライセンス等は別途ご用意頂く必要がありますが、各種ステータスの把握のために VMware vRealize もご利用いただけます。

オンプレミス環境から GCVE へと VMware 基盤を移行した場合や、オンプレミス環境と併用している場合などにおいては、これらの使い慣れたツールを GCVE に対しても引き続き利用できることは管理者にとって運用オペレーションの変更を最小とすることで学習コストを下げることができるなど様々なメリットがあります。

しかし同時に、Google Cloud が提供する様々なサービスを併用していく計画がある、もしくは既にご活用頂いている上で、追加的に GCVE を利用したい場合などにおいては、Google Cloud が提供する運用監視スイートである Google Cloud Operations Suite に含まれる Cloud Monitoring や Cloud Logging で指標(メトリック)やログの収集や分析を一元化して管理したいというニーズもあるかと思います。

本エントリーでは、このようなニーズにお答えするために 2021/08/20 より Preview 段階として提供が開始されており、こちらの Google Cloud ブログ記事『Google Cloud VMware Engine と Google Cloud のオペレーション スイートのモニタリングがさらにシンプルに』でも紹介されている『Google Cloud Operations Suite のエージェントを用いた GCVE 環境のモニタリングの構成手順と取得した指標やログの確認方法』について、その詳細な構成手順を解説します。実際の構成においては、必ず合わせて Google Cloud のガイドを参照下さい。

ここで紹介している機能は、2021/10/29 にGAしました!! 最新情報についてはGCVEのリリースノートおよびガイド等を参照ください。

前提条件

以降の構成手順を進めるためには、GCVE 環境が既に展開されており、VPCとの間で Private Connection が構成済であることが必要です。

Google Cloud VMware Engine (GCVE) と VPC および お客様ネットワークとの接続概略図

また、以下の構成が事前に行われていることが前提となります。

gcloud services list
gcloud services enable monitoring
GCVE Web Console における CloudOwner@gve.local アカウントの権限の一時昇格

スタンドアローンエージェント

GCVE の vCenter Server は Google Cloud Monitoring には標準で対応していないため、GCVE に対する指標の取得においては vCenter Server と Cloud Monitoring の間を橋渡しするスタンドアローンエージェントを利用します。つまり、このスタンドアローンエージェントをインストールしたインスタンスが vCenter Server から vSphere API と Syslog 経由で指標やログを取得した上で、Google Cloud Operations の Cloud Monitoring や Cloud Logging の API に対して HTTPS 経由で指標やログを転送します。

vCenter Server を通じたスタンドアロンエージェントによるログおよびメトリックの取得

スタンドアローンエージェントを導入するインスタンスは、GCVE に作成することも、GCE に作成することも、どちらでも可能です。ただし、GCE のインスタンスを利用する場合には GCVE のプライベートクラウドとピアリング接続しているユーザ VPC に接続されている必要があります。

なお、スタンドアローンエージェントを導入するインスタンスにはシステム要件があります。必要な要件の詳細については、こちらを参照ください

スタンドアロンエージェントを導入するインスタンスが、vCenter Server の FQDN を名前解決できることを確認して下さい。DNS サーバとして GCVE が提供するDNSサーバを指定するか、GCVE のDNS サーバとの間でフォワーダー関係を構成しているDNSサーバを参照先として指定している必要があります。

エージェントのインストールは以下のコマンド1つで実施することができます。

sudo sh -c "$(curl -S https://storage.googleapis.com/bindplane-agent/bpagent/latest/pkg/vmware-linux-amd64/installer/install.sh)"

インストール実施例です。

[root@agent-vm01 ~]# sudo sh -c "$(curl -S https://storage.googleapis.com/bindplane-agent/bpagent/latest/pkg/vmware-linux-amd64/installer/install.sh)"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 666 100 666 0 0 1069 0 --:--:-- --:--:-- --:--:-- 1067
Input file was not supplied will attempt to download latest to file: /root/vmware-headless-agent.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 141M 100 141M 0 0 145M 0 --:--:-- --:--:-- --:--:-- 145M
Expanding package to /opt/bpagent and /etc/systemd/system/bpagent.service
Registering service
Created symlink /etc/systemd/system/multi-user.target.wants/bpagent.service → /etc/systemd/system/bpagent.service.
[root@agent-vm01 ~]#

サービスアカウントの構成

Cloud Monitoring へ指標データを転送する権限を持ったサービスアカウントを作成します。このサービスアカウントには、ロールとして[モニタリング管理者][ログ書き込み]の2つのロールが必要です。

サービスアカウント vm-agent に必要な権限を付与した例

GCE のインスタンスをスタンドアローンエージェントとして利用する場合には、当該インスタンスに紐付いているサービスアカウントにこれらの権限を付与してください。

GCE に構成したスタンドアロンエージェント用VMのプライベートIPアドレスは停止などをした場合にも変更されないようにエフェメラルではなく静的に構成することをオススメします。

GCVE のインスタンスをスタンドアローンエージェントとして利用する場合には、直接VMware VMに対してはサービスアカウントを紐付けることができないため、作成したサービスアカウントに紐づく秘密鍵(JSON)を取得し、エージェントをインストールするインスタンスゲストOS内の /opt/bpagent/config/destinations/google_cloud ディレクトリに鍵ファイルをコピーしてください。

エージェントの構成

エージェントをインストールしたことによって、各構成ファイルのひな形となるサンプルのyamlファイルも合わせてインストールされているため、それらのひな形をベースとして構成ファイルを編集していきます。いずれも yaml ファイルですので、行頭の空白を変更してしまわないようご注意下さい。

まず最初に、スタンドアロンエージェントが vCenter Server に接続するための yaml ファイル `vmware_vcenter.yaml` をひな形からコピーする形で作成します。

ひな形からの vmware_vcenter.yaml ファイルの作成

cp /opt/bpagent/config/metrics/examples/vmware_vcenter.yaml /opt/bpagent/config/metrics/sources

vmware_vcenter.yaml ファイルを作成したら、個別に環境に合わせて修正が必要となる箇所(host, username, password)を適宜修正します。なお、host には vCenter Server のFQDN を、username に対してはソリューションユーザを指定し、password は設定したソリューションユーザに紐づくパスワードを設定してください。

vmware_vcenter.yaml の編集

host: VCENTER_FQDN (xxxxx.asia-northeast1.gve.goog)
username: SOLUTION_USER_ACCOUNT (solution-user-XX@gve.local)
password: SOLUTION_USER_PASSWORD

ソリューションユーザは5つ(solution-user-01 〜 05)用意されていますので、同じソリューションユーザアカウントを多用途に利用しないことをオススメします。

続いて、Cloud Monitoring と Cloud Logging に対するアクセス権を持つサービスアカウントの権限を利用するための構成を行います。こちらも vmware_vcenter.yaml と同様にひな形からコピーする形で `log_agent.yaml` を作成します。

ひな形からの log_agent.yaml ファイルの作成

cp /opt/bpagent/config/log_agent.example.yaml /opt/bpagent/config/log_agent.yaml

設定箇所は project_id: の行と、credentials_file: の行の2箇所です。project_id: については、指標およびログを出力するプロジェクトIDを設定します。

...
- id: my_project_destination
project_id: PROJECT_NAME
type: google_cloud_output
credentials_file: /opt/bpagent/config/destinations/google_cloud/JSON_KEY_FILE (xxxx.json)

プロジェクト名とプロジェクトID は異なる場合がありますので、ご注意下さい。

credentials_file: については、スタンドアロンエージェント用 VM を GCVE に作成した場合と GCE に作成した場合で必要な対応が異なります。

GCVE にスタンドアロンエージェント用のVMを構成した場合には、`log_agent.yaml` の credentials_file: の行に秘密鍵のJSONファイルへのパスを設定します。

GCE にスタンドアロンエージェント用のVMを構成した場合には、秘密鍵ではなくインスタンスに紐付けられているサービスアカウントの権限を使用しますので、credentials_file: の行をコメントアウトします。

vCetner Server の Syslog の構成とスタンドアロンエージェントサービスの再起動

構成作業の仕上げとして、vCenter Server の Syslog 設定を行います。この作業は、vCenter Server の Web UI ではなく、GCVE の Web Console から行います。こちらを参照し、スタンドアロンエージェント用VMのプライベートIPアドレスに向けて Syslog の転送を構成してください。なお、通信ポートは 5142/tcp になりますので注意して下さい。

GCVE Web Console を通じた vCenter Server に対する Syslog 転送の構成

最後に設定を反映させるためにスタンドアロンエージェントサービスを再起動します。

systemctl restart bpagent
systemctl status bpagent

Cloud Monitoring ダッシュボードの構成

Cloud Monitoring において GCVE の指標を参照するためのダッシュボードは、1から作成頂くことも可能ですが、以下の3つのサンプルダッシュボードがサンプルライブラリに用意されています(GitHubでも公開されています)。

  • GCVE Overview
  • GCVE Contention
  • GCVE Virtual Machine Performance
Cloud Monitoring のサンプルライブラリにある VMware サンプル

これらのダッシュボードを通じて、スタンドアロンエージェントが vCenter Server から取得した指標をグラフィカルに参照することが可能となります。

GCVE Overview ダッシュボード例
GCVE Contention ダッシュボード例
GCVE Contention ダッシュボード例
GCVE VM Instance Monitoring ダッシュボード例

Cloud Monitoring アラートの構成

スタンドアロンエージェントが取得し Cloud Monitoring に書き込んだ値を使用して、しきい値やインシデントベースでのアラートを構成することが可能です。たとえば、vSAN データストアの使用率が指定した割合を超えた場合や、新たに仮想マシンが作成された場合などをトリガーとしてアラートと通知を構成できます

vSAN データストアの使用率が 60% を上回ったらアラートメールを送信する通知ポリシーの設定例

GCVE に関連して取得可能な指標(メトリック)の一覧はガイドに掲載されていますので、適宜必要に応じて参照し、必要なアラートを構成して下さい。

2021/11時点のスタンドアロンエージェントでは、vCenter Server を通じて取得可能な指標とログのみが対象範囲となるため、GCVE を構成しているすべての要素に対して Cloud Monitoring による指標やログの取得が可能となるわけではありませんので、引き続き vCenter Server 及び NSX Manager による監視等の構成や、vRealize Operations などを利用している場合は併用ください。しかし、vCenter Server や NSX Manager にログインせずとも多くの指標を Google Cloud Console を通じて確認できる点や、GCVE 以外の Google Cloud の全てのサービスと同じ手法、方式で指標やログを取得し利用できる点は、スタンドアロンエージェントをご利用頂くことの大きなメリットです。

ぜひ Cloud Monitoring による GCVE の指標やログの収集と活用を始めてみて下さい!

--

--

Takao Setaka
google-cloud-jp

Customer Engineer (Infrastructure Modernization) @GoogleCloud. All of my opinions are my own.