0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VMware GemFire Management Consoleを触ってみる

Last updated at Posted at 2023-11-10

VMware GemFireにはVMware GemFire Management Console(以下GFMC)というGemFireの管理をGUIから一元管理する製品が提供されている。
これはGemFireのライセンスがあれば追加ライセンスなしで自由に使える製品となっている。
これがまた非常に便利なので、今回はKubernetes上に展開して使ってみる。

GFMCのインストール

v1.1でのインストール方法は、JAR、OVA、dockerの3種類が用意されているが、Kubernetes向けのものは用意されていない。

なので、dockerのインストール手順に載っているイメージを使ってKubernetes向けにインストールする。
まず、インストール先のNamespaceを作成する。

export GFMC_NS=gemfire-mc
kubectl create ns $GFMC_NS

Tanzu Network用の認証情報をSecretとして登録し、defaultのServiceAccountからも参照できるようにしておく。

export TANZUNET_USERNAME=xxx@yyy.zzz
export TANZUNET_PASSWORD=xxxxx
kubectl create secret docker-registry image-pull-secret --namespace=$GFMC_NS --docker-server=registry.tanzu.vmware.com --docker-username=$TANZUNET_USERNAME --docker-password=$TANZUNET_PASSWORD
kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "image-pull-secret"}]}' -n $GFMC_NS

Deploymentを作成する。

kubectl create deploy gemfire-management-console --image registry.tanzu.vmware.com/gemfire-management-console/gemfire-management-console:1.1.0 -r 1 -n $GFMC_NS

Serviceを公開する。ここではtype: LoadBalancerを利用する。

kubectl expose deploy gemfire-management-console --port 8080 --type LoadBalancer -n $GFMC_NS

以上でインストールは完了となる。

GFMCの利用

クラスタの登録

アクセスすると以下のような画面になる。現時点ではID Providerとの連携はしていないので、NONEのままENABLE DEVELOPER MODEをクリックする。
1699582863793.png
するとGFMCで管理対象とするGemFireクラスタを聞いてくるので入力する。
ここでは事前にkind: GemFireClusterでクラスタを作成していたので、このクラスタのLocatorのServiceを入力した。
1699583052562.png
無事接続できると、以下のようにクラスタが表示され、GemFireのVersionやLocator、Serverの数が確認できる。
1699583111170.png

クラスタの状態確認

Dashboardから登録したクラスタをクリックすると、以下のようにMember一覧と使用リソース、稼働時間などが確認できる。
1699583925614.png

また、Monitoringのタブをクリックすると、メトリクスが取得できる。
ただし、デフォルトではメトリクスの取得が有効化されていないため、Metrics Enabledをクリックして有効化する必要がある。
加えて、GemFire for KubernetesではなくStandalone版を使っている場合はメンバーの起動時に--classpathでJARを読み込ませる必要がある(こちら参照)。
今回はKubernetes版を利用したため、特に手を加えず以下のようなグラフが表示されるようになった。
1699584524994.png

なお、Monitoringでは以下のダッシュボードが用意されている。(誤りがあるかも)

  • get/putのスループット
  • get/putのレイテンシの平均値Latency
  • Cacheのヒット・ミス率
  • Function Executionのキューサイズと失敗の比率
  • ClientのputのRPS
  • 容量を超えたPERSISTENTのRegion
  • メッセージキューサイズ
  • クライアントのQPS
  • 平均クエリ時間
  • Regionの詳細
  • Serverが利用可能なメモリの割合、
  • ディスクの状態
  • CPU利用率
  • Serverへ接続しているConnection数
  • ServerのDuration時間
  • クラスタ内のメンバー間の通信の遅延
  • I0 wait
  • 廃棄した1秒あたりのRead数
  • CPUの待ち時間の割合
  • WAN構成でのGateway Receiverのスループット
  • WAN構成でのGateway Senderの1秒あたりのメッセージ数

なお、ダッシュボードのインフォメーションボタンをクリックすると、ダッシュボードの詳細説明が表示されるため、どういうものかはここの説明を参考にするとよい。
1699586073156.png

Regionの確認

Regionの状態はDashboardRegionから確認できる。
1699588557867.png

作成したRegionのType、エントリ数、メンバや、データの有効期限やEviction設定等細かな設定が確認できる。

gfshの実行

Dashboardgfshからgfshコマンドを叩くことも出来る。
1699588895019.png

特にKubernetes環境とかではgfshを叩くPodとかを用意するのは面倒だったりするので、ちょっとした作業には非常に便利。
また、よく使うコマンドはQuick Commandsの横のEDITから追加して、ワンクリックで実行することも出来る。
1699588874591.png

削除する際は、同じくEDITからプルダウンで登録したコマンドを選んでDELETEで削除する。

Logの確認

ログもGFMCから確認できる。
メンバーを選んでログ表示し、フィルタ出力させることも可能。
1699589180544.png

また、DOWNLOADからログをダウンロードできるが、この際開始・終了日やログレベルなども絞って出力させることが出来る。かなり便利。
1699589267490.png

データの確認

Region内のデータを直接見ることも出来る。
1699589324151.png

クエリも発行する事ができる。
1699589784813.png

クラスタ情報のImport・Export

登録したクラスタの情報はjson形式でExportすることが出来る。
試しに利用する。
左サイドバーのExport Connectionsをクリックし、対象クラスタを選択してEXPORTをクリックする。
1699583572615.png

すると、ブラウザ上でダウンロードが始まる。
ダウンロードが完了すると、exportConnection_YYYYMMDD.jsonという形式のjsonファイルを確認することが出来る。
これの中身は以下のようになっている。

[
  {
    "connectionNumber": 1,
    "clusterNickname": "test-gem-cluster",
    "clusterHost": "gemfire1-locator.gemfire-dev.svc",
    "clusterPort": 7070,
    "clusterSecurityType": "None"
  }
]

これを使ってクラスタの登録状況が元に戻せるかを確認する。
Dashboardからクラスタの左のハンバーガーをクリックし、Remove Connectionを選択する。
1699583734675.png

クラスタの一覧が空になった状態で、先程のjsonをImportする。
Import Connectionsで先程のjsonファイルを選択して、IMPORT CLUSTER CONNECTIONSを選択する。
1699583795968.png

Dashboardから先程削除したクラスタが見えるようになっていることが確認できた。
1699583846974.png

まとめ

VMware GemFire Management Consoleは、GemFire単品だと基本CLIであるが故に弱かった可視化のところを非常に助けてくれるかなり有用なツールだった。
GUIは他にもPulseがあるが、PulseはLocator上で動かすことが多く負荷が気になるのと、ここまでやれることは多くなかったので、Pulseの上位製品と考えて問題ない。
GemFire使う際は、まずはこれを入れて連携すると、CLIばっかりで挫けそうになった時に助けになると思われる。

おまけ:GFMCのデータ取得の挙動

Locatorのログを見ると、3分間隔で以下のコマンドを実行していることが分かる。

[info 2023/11/28 16:52:17.731 JST locator1 <qtp1148735023-205> tid=0xcd] Executing command: list members

[info 2023/11/28 16:52:17.919 JST locator1 <qtp1148735023-181> tid=0xb5] Executing command: describe member --name=server1

[info 2023/11/28 16:52:18.106 JST locator1 <qtp1148735023-173> tid=0xad] Executing command: describe config --member=server1

[info 2023/11/28 16:52:18.317 JST locator1 <qtp1148735023-173> tid=0xad] Executing command: describe member --name=locator1

[info 2023/11/28 16:52:18.504 JST locator1 <qtp1148735023-204> tid=0xcc] Executing command: describe config --member=locator1

[info 2023/11/28 16:52:18.695 JST locator1 <qtp1148735023-207> tid=0xcf] Executing command: describe member --name=server2

[info 2023/11/28 16:52:18.861 JST locator1 <qtp1148735023-173> tid=0xad] Executing command: describe config --member=server2

list membersを実行してメンバーの一覧取得後、取得したメンバーに対してdescribe memberdescribe configを実行して設定を取得している模様。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?