AppDynamics Linux based Private Synthetic Agent のインストール

はじめに

以前に本ブログ上で 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 ライセンス

https://docs.appdynamics.com/21.12/ja/end-user-monitoring/browser-monitoring/browser-synthetic-monitoring/private-synthetic-agent-linux-based-agent-in-kubernetes-container?

 

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 .

公式ドキュメント:

https://docs.appdynamics.com/21.5/ja/end-user-monitoring/browser-monitoring/browser-synthetic-monitoring/private-synthetic-agent-linux-based-agent-in-kubernetes-container/set-up-the-private-synthetic-agent-in-bare-metal-k8s

 

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/

後藤 智

セールスエンジニア

Cisco AppDynamics

2020年に Cisco 入社。

ビジネス・オブザーバビリティ(可観測性)・ソリューション AppDynamics の技術適合性検討,導入価値検証(Proof of Value)の技術的支援(プリセールス)を担当。