はじめに
以前に本ブログ上で Cisco AppDynamics の外形監視ソリューション, Synthetic Monitoring を紹介させていただきましたが,
https://gblogs.cisco.com/jp/2021/03/appdynamics-synthetic-script-with-katalon-recorder/
このブログ投稿では,パブリッククラウド上でホスティングされている Windows VM 上で稼働する Synthetic Agent が用いられています。
閉域内の Web アプリケーションの外形監視を行う場合には,ユーザが閉域内に配置した Windows VM 上で稼働させる Private Synthetic Agent を用いられていますが,この Windows Private Synthetic Agent は 2022-11-21 でサポートが終了することが告知されています。
Product deprecation: Windows Private Synthetic Agent
これにしたがい,今後は Kubernetes (K8s) 上で稼働する Linux based Private Synthetic Agent (Linux based PSA)を利用することになります。本ブログ投稿では Linux based PSA のインストール手順,基本的な利用方法について解説いたします。
Linux based Private Synthetic Agent の要件
Linux based Private Synthetic Agent (Linux based PSA) は Kubernetes 上で稼働しますが,以下の要件があります。
- Kubernetes Cluster 1.15 – 1.18
- Helm
- AppDynamics SaaS コントローラ
- Browser Synthetic Monitoring ライセンス
Docker イメージのビルド
AppDynamics ポータルの Downloads タブにおいて,Type: Synthetic Private Agent を選択,synthetic-agent-21.12.0.zip を ダウンロードします。
続いて synthetic-agent-21.12.0.zip を展開,Docker Engine が利用可能な環境で Docker イメージのビルドを行います。
今回は Docker イメージのタグは Linux based PSA のバージョン番号 (21.12) とします。
Heimdall(オーケストレータ)
cd sum-heimdall
docker build -f Dockerfile-PSA -t sum-heimdall:21.12 .
Chrome Agent
cd ../sum-chrome-agent
docker build -f Dockerfile-PSA -t sum-chrome-agent:21.12 .
公式ドキュメント:
Docker イメージへのタグ付けとレジストリへのプッシュ
今回は Docker Hub へ Public Docker イメージとしてプッシュします。
#!/bin/sh
VERSION=21.12
docker tag sum-heimdall:$VERSION gotosatoru/sum-heimdall:$VERSION
docker tag sum-chrome-agent:$VERSION gotosatoru/sum-chrome-agent:$VERSION
docker login
docker push gotosatoru/sum-heimdall:$VERSION
docker push gotosatoru/sum-chrome-agent:$VERSION
Linux based PSA のデプロイ
~/.kube/config や環境変数 KUBECONFIG を適切に設定し,kubectl コマンドで Kubernetes クラスタに接続できるようにします。
以下の helm コマンドで Linux based PSA の設定ファイルのテンプレートを取得します。
helm show values sum-psa-heimdall.tgz > values.yaml
values.yaml の変更箇所は以下のとおりです。
今回は VMware Fusion 上のメモリ 10GB/ 10 vCPU の VM上 で,Kubernetes クラスタを稼働させており,リソース上の制限がありますので,xxxxxxxResources の CPU/メモリリソース割当を最小にしてあり,Heimdall の replicaCount も 1 に設定してあります。
eumAccount / eumKey は AppDynamics SaaS コントローラの 右上,⚙ アイコン – License – Account Usage – User Experience から, EUM アカウント情報を取得,設定します。
heimdall:
replicaCount: 1
url: http://heimdall:8999
repository: gotosatoru/sum-heimdall
tag: 21.12
pullPolicy: Always
chromeAgent:
repository: gotosatoru/sum-chrome-agent
tag: 21.12
browserVersion: 86
heimdallResources:
min_cpu: "1"
max_cpu: "1"
min_mem: 1Gi
max_mem: 1Gi
chromeAgentResources:
min_cpu: "0.5"
max_cpu: "1.0"
min_mem: 1024Mi
max_mem: 2048Mi
apiMonitoringAgentResources:
min_cpu: "0.1"
max_cpu: "0.1"
min_mem: "100Mi"
max_mem: "250Mi"
ingressBandwidth: "256k"
egressBandwidth: "256k"
postgresResources:
min_cpu: "1"
max_cpu: "1"
min_mem: 2Gi
max_mem: 2Gi
shepherd:
url: https://syd-synthetic.eum-appdynamics.com
credentials:
eumAccount: AppdynamicsInc-a0ABC00000ABCDEFGHI
eumKey: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
location:
code: Osaka
name: Osaka
city: Osaka
state: Osaka
country: Japan
latitude: "34.6777192"
longitude: "135.4159976"
次に measurement 名前空間を作成,helm チャートにより Linux based PSA をデプロイします。
kubectl create ns measurement
helm install heimdall-onprem sum-psa-heimdall.tgz --values values.yaml --namespace measurement
正常にデプロイされた場合,以下のようなメッセージが表示されます。
NAME: heimdall-onprem
LAST DEPLOYED: Fri Jan 14 23:03:29 2022
NAMESPACE: measurement
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Heimdall Deployed. You'll be able to see the agent listed in the controller in a few moments.
Check the running pods by: kubectl get pods --namespace measurement
Check the pod logs by: kubectl logs --namespace measurement
measurement 名前空間の Pod を確認すると,以下のように Heimdall オーケストレータと PostgreSQL の Pod が稼働しています。
$ kubectl -n measurement get pod
NAME READY STATUS RESTARTS AGE
heimdall-5d8fc64769-2r8fz 1/1 Running 0 11m
postgres-5c55fdc6cd-l27pp 1/1 Running 0 11m
Synthetic Job の設定
Synthetic Job の設定ダイアログの 2. Select Agent Locations では,下図のように values.yaml で設定した Osaka のエージェントが選択できるようになっています。
実行されたジョブのセッション情報を確認しますと,正常に Osaka エージェントが実行されていることが確認できました。
まとめ
今回は 2021 年 5 月にリリースされた Linux Private Synthetic Agent のインストール方法,利用法に関して解説させて頂きました。
比較的簡単な手順で Kubernetes クラスタ上に Private Synthetic Agent がデプロイ可能なことがおわかり頂けたかと存じます。
関連ブログ投稿:
https://gblogs.cisco.com/jp/2021/03/synthetic-monitoring-kubernetes/