以前に本ブログ上で 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 PSA) は Kubernetes 上で稼働しますが,以下の要件があります。
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) とします。
cd sum-heimdall
docker build -f Dockerfile-PSA -t sum-heimdall:21.12 .
cd ../sum-chrome-agent
docker build -f Dockerfile-PSA -t sum-chrome-agent:21.12 .
公式ドキュメント:
今回は 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
~/.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 の設定ダイアログの 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/