Azure AKS での PSA の設定

次のように、Azure AKS での Web モニタリング PSA と API モニタリング PSA を設定します。既存の Kubernetes クラスタで PSA を設定する場合は、「Kubernetes クラスタの作成」セクションをスキップします。

警告: このページには、Azure CLI のマニュアルへのリンクが含まれています。Azure CLI で自身のマニュアルを管理しているため、Splunk AppDynamics では Azure CLI のマニュアルの精度については一切保証しません。
注: PSA は、パブリッククラウドまたはプライベートクラウドの既存の Kubernetes クラスタに展開できます。自動化スクリプトでは、Kubernetes クラスタの作成はサポートされていません。
注:
  • 自動化スクリプトを使用する場合は、Kubernetes クラスタとノードを手動で設定し、PSA を展開する前にコンテナレジストリにログインする必要があります。
  • 別のレジストリを使用する場合は、PSA を展開する前に、自動化スクリプトでレジストリを指定します。
    1. install_psa ファイルを開き、push_images_to_docker_registry() 関数に移動します。

    2. この関数の下で、${DOCKER_REGISTRY_URL}/ の後に、sum-chrome-agentsum-api-monitoring-agent、および sum-heimdall のレジストリ名を指定します。
    3. generate_psa_k8s_deployment() 関数の下で、YAML 値のリポジトリ名を更新します。

  • Kubernetes クラスタノードと同じ OS タイプのホストでイメージをビルドする必要があります。

Kubernetes クラスタの作成

Azure AKS で Kubernetes クラスタを作成するには、次の手順を実行します。

  1. Azure CLI をインストールして認証します
  2. リソースグループを作成するには、次のように入力します。
    CODE
    RESOURCE_GROUP=heimdall-onprem
    az group create --name $RESOURCE_GROUP --location eastus
  3. コンテナレジストリを作成するには、次のように入力します。
    CODE
    ACR_NAME=heimdallonprem
    az acr create --resource-group $RESOURCE_GROUP --name $ACR_NAME --sku Basic
  4. クラスタを作成するには、次のように入力します。
    CODE
    CLUSTER_NAME=heimdall-onprem
    az aks create \
        --resource-group $RESOURCE_GROUP \
        --name $CLUSTER_NAME \
        --enable-managed-identity \
        --kubernetes-version 1.x.x \
        --node-count 4 \
        --node-vm-size Standard_D8s_v3 \
        --generate-ssh-keys \
        --attach-acr $ACR_NAME
    注: 上記のコードの を、サポートされているバージョンのいずれかに置き換えます。サポートされている Kubernetes のバージョンを参照してください。
    注: 上記のコードの と は、推奨される設定タイプに従って選択されます。異なるタイプとノード数で、任意の設定を指定できます。node-vm-size を参照してください。
    注: コマンドを実行するには、Azure サブスクリプションの所有者または管理者である必要があります。

クラスタへのアクセス

Kubernetes クラスタにアクセスするには、次の手順に従って、クラスタとの対話型ユーティリティである kubectl をインストールします。

クラスタが実行されていることを確認するには、次のように入力します。

CODE
kubectl get nodes

(オプション)プロキシサーバーの設定

プロキシサーバーを設定すると、すべてのドメインに適用されます。values.yaml ファイルにプロキシサーバーアドレスを指定して、プロキシサーバーを設定します。「キーと値のペアの設定」を参照してください。

プロキシサーバーからドメインをバイパスするには、次の手順を実行します。

注: バイパスリストの設定は、Web モニタリング PSA でのみサポートされています。
  1. values.yaml ファイルを開く。
  2. [browserMonitoringAgent] の [bypassList] フィールドにドメイン URL を追加します。
    CODE
    browserMonitoringAgent:
    enabled: true
    server: "<proxy server address>"
    bypassList: "<specify the domain URLs that you want to bypass separated by semicolon>"
    例:bypassList: "*abc.com;*xyz1.com;*xyz2.com" bypassList で指定するドメイン URL はプロキシサーバーにリダイレクトされません。bypassList に任意の数のドメインを追加できます。他のすべての指定されていないドメイン URL は、プロキシサーバーにリダイレクトされます。

Docker イメージのプル

DockerHub から sum-chrome-agent、sum-api-monitoring-agent、sum- heimdall の既成の Docker イメージをプルします。既成イメージには依存ライブラリが含まれているため、インターネットにアクセスできない場合でもこれらのイメージを使用できます。

次のコマンドを実行して、エージェントイメージをプルします。
CODE
docker pull appdynamics/heimdall-psa

docker pull appdynamics/chrome-agent-psa

docker pull appdynamics/api-monitoring-agent-psa

(オプション)カスタム Python ライブラリの追加

注: このセクションは、Web モニタリング PSA にのみ適用されます。

標準ライブラリセットに加えて、スクリプト測定用のカスタム Python ライブラリをエージェントに追加できます。カスタム Python ライブラリを追加するには、ダウンロードしたベースイメージを使用してイメージをビルドします。

  1. Dockerfile を作成し、Python pip を実行する ディレクティブを作成します。たとえば、 ライブラリをインストールするには、次のように Dockerfile を作成します。
    CODE
    # Use the sum-chrome-agent image you just loaded as the base image
    FROM appdynamics/chrome-agent-psa:<agent-tag>
    
    USER root
    RUN apk add py3-pip
    USER appdynamics
      
    # Install algorithm for python3 on top of that
    RUN python3 -m pip install algorithms==0.1.4 --break-system-packages
    注: 任意の数の ディレクティブを作成して、必要なライブラリをインストールできます。
  2. 新しいイメージをビルドするには、次のように入力します。
    CODE
    docker build -t sum-chrome-agent:<agent-tag> - < Dockerfile
    新しくビルドされたエージェントイメージには、必要なライブラリが含まれています。

イメージのタグ付けとレジストリへのプッシュ

クラスタがアクセスできるように、イメージにタグを付けてレジストリにプッシュする必要があります。クラスタの作成時に ACR_NAME 環境変数を使用する必要があります。

イメージにタグを付けるには、次のように入力します。

Web モニタリング PSA:

CODE
ACR_LOGIN_SERVER=$ACR_NAME.azurecr.io
docker tag appdynamics/heimdall-psa:<heimdall-tag> $ACR_LOGIN_SERVER/sum-heimdall:<heimdall-tag>
docker tag appdynamics/chrome-agent-psa:<agent-tag> $ACR_LOGIN_SERVER/sum-chrome-agent:<agent-tag>

API モニタリング PSA:

CODE
ACR_LOGIN_SERVER=$ACR_NAME.azurecr.io
docker tag appdynamics/heimdall-psa:<heimdall-tag> $ACR_LOGIN_SERVER/sum-heimdall:<heimdall-tag>
docker tag appdynamics/api-monitoring-agent-psa:<agent-tag> $ACR_LOGIN_SERVER/sum-api-monitoring-agent:<agent-tag>

イメージをプッシュするには、次のように入力します。

Web モニタリング PSA:

CODE
az acr login --name $ACR_NAME
docker push $ACR_LOGIN_SERVER/sum-heimdall:<heimdall-tag>
docker push $ACR_LOGIN_SERVER/sum-chrome-agent:<agent-tag>

API モニタリング PSA:

CODE
az acr login --name $ACR_NAME
docker push $ACR_LOGIN_SERVER/sum-heimdall:<heimdall-tag>
docker push $ACR_LOGIN_SERVER/sum-api-monitoring-agent:<agent-tag>

Web モニタリング PSA と API モニタリング PSA を展開します。

注: Web モニタリング PSA および API モニタリング PSA をインストールするときは、それぞれの該当する一連の手順に必ず従ってください。一部の手順は、両方で共通しています。

イメージがレジストリに登録されると、アプリケーションはクラスタに展開されます。Helm チャートを使用して、必要な順序ですべての Kubernetes リソースを展開および作成します。

  1. こちらの手順に従って、Helm をインストールします。
    1. Apache Ignite ポッドを実行するための新しい名前空間を作成します。
      警告: 最初に Apache Ignite のコマンドを実行してから、Heimdall のコマンドを実行してください。
      Ignite の新しい名前空間を作成するには、次のように入力します。
      CODE
      kubectl create namespace measurement
      Apache Ignite を展開する前に、いくつかの設定オプションを設定する必要があります。設定オプションを表示するには、すでにダウンロードした ignite-psa.tgz ファイルに移動し、次のように入力します。
      CODE
      helm show values ignite-psa.tgz > values-ignite.yaml
      注: 永続化を有効にする場合は、persistence > enabled を設定します。この設定は、オプションです。
  2. 上記の設定を使用して Helm チャートを展開するには、すでにダウンロードした ファイルに移動し、次のように入力します。
    CODE
    helm install synth ignite-psa.tgz --values values-ignite.yaml --namespace measurement
    すべての Kubernetes リソースがクラスタに作成され、Apache Ignite を使用できます。数秒後、Apache Ignite が初期化され、コントローラに表示されます。
  3. ポッドが実行されているかどうかを確認するには、次のように入力します。
    CODE
    kubectl get pods --namespace measurement
    Apache Ignite ポッドが正常に実行された後にのみ、次の手順に進みます。1 つのコマンドを使用して、展開の詳細を含む Helm チャートを展開できます。エージェントを展開するには、以前にダウンロードした zip ファイルの Helm チャート sum-psa-heimdall.tgz を使用します。Private Synthetic Agent を展開する前に、いくつかの設定オプションを設定する必要があります。設定オプションを表示するには、すでにダウンロードした sum-psa-heimdall.tgz ファイルに移動し、次のように入力します。
    CODE
    helm show values sum-psa-heimdall.tgz > values.yaml

    以下は、values.yaml ファイルで編集する必要がある設定キーと値のペアです。

    Web Monitoring PSA:
    設定キー
    heimdall > repository $ACR_LOGIN_SERVER/sum-heimdall
    heimdall > tag <heimdall-tag>
    heimdall > pullPolicy Always
    chromeAgent > repository $ACR_LOGIN_SERVER/sum-chrome-agent
    chromeAgent > tag <agent-tag>
    shepherd > url シェパード URL
    shepherd > credentials ログイン情報
    shepherd > location agent location
    API Monitoring PSA:
    設定キー
    heimdall > repository $ACR_LOGIN_SERVER/sum-heimdall
    heimdall > tag <heimdall-tag>
    heimdall > pullPolicy Always
    apiMonitoringAgent > repository $ACR_LOGIN_SERVER/sum-api-monitoring-agent
    apiMonitoringAgent > tag <agent-tag>
    shepherd > url シェパード URL
    shepherd > credentials ログイン情報
    shepherd > location agent location

    残りの値はデフォルトのままにすることも、要件に基づいて設定することもできます。シェパード URL、ログイン情報、場所、およびオプションのキーと値のペアの詳細については、「Web モニタリング PSA および API モニタリング PSA の設定」を参照してください。

    注:

    Kubernetes クラスタがロックダウンされていて、クラスタ全体の設定を行うことができない場合は、ポッドレベルの変更を行うことができます。

    たとえば、ポッドレベルの DNS サーバー設定を変更して、DNS 名の解決に内部ネームサーバーを使用する場合は、values.yaml ファイルで次の詳細を指定します。

    設定キー
    agentDNSConfig:
    enabled: true
    dnsConfig:
    nameservers: ["4.4.4.4"]
    searches: ["svc.cluster.local", "cluster.local"]
  4. 上記の設定を使用して Helm チャートを展開するには、すでにダウンロードした sum-psa-heimdall.tgz ファイルに移動し、次のように入力します。
    CODE
    helm install heimdall-onprem sum-psa-heimdall.tgz --values values.yaml --namespace measurement
    すべての Kubernetes リソースがクラスタに作成され、Heimdall を使用できます。数秒後、Heimdall が初期化され、コントローラに表示されます。
  5. ポッドが実行されているかどうかを確認するには、次のように入力します。
    CODE
    kubectl get pods --namespace measurement
    初期展開後に values.yaml に変更を加えるには、すでにダウンロードした sum-psa-heimdall.tgz ファイルに移動して、次のように入力します。
    CODE
    helm upgrade heimdall-onprem sum-psa-heimdall.tgz --values values.yaml --namespace measurement
    注:

    展開を削除するには、次のコマンドを実行します。

    CODE
    helm uninstall heimdall-onprem --namespace measurement

    これは、必要でない限り推奨されません。

自動化スクリプトを使用した AKS での PSA の展開

Splunk AppDynamicsPSA インストール zip ファイルを、Cisco AppDynamics ダウンロードセンターまたはベータアップロードツールからダウンロードします。このファイルには、sum-chrome-agent、sum-api-monitoring-agent、sum-heimdall、Helm チャート、および自動化スクリプトの Docker ファイルが含まれています。sum-chrome-agent、sum-api-monitoring-agent、および sum-heimdall のイメージをビルドする場合は、Docker がインストールされていることを確認します。インストールされていない場合は、ここから Docker をダウンロードしてインストールできます。

以下の手順を実行して、PSA をインストールします。

  1. PSA インストール zip ファイルを解凍します。
  2. 次のコマンドを実行して、AKS で PSA をインストールします。
    CODE
    ./install_psa -e kubernetes -l -v -u <Shepherd-URL> -a <EUM-account> -k <EUM-key> -c <location-code> -d <location-description> -t <location-name> -s <location-state> -o <location-country> -i <location-latitude> -g <location-longitude> -p <PSA-tag> -r <heimdall-replica-count> -z <agent-type> -m <chrome-agent_min/max-memory> -n <API-agent_min/max-memory> -x <chrome-agent_min/max-CPU> -y <API-agent_min/max-CPU> -b <heimdall_min/max-memory> -f <heimdall_min/max-CPU> -q <ignite-persistence> -w <heimdall_proxy_server>~<api_monitoring_proxy_server>~<web_monitoring_proxy_server> -B <"bypassURL1;bypassURL2;bypassURL3"> -C true
    サンプルのインストールコマンドを次に示します。
    CODE
    ./install_psa -e kubernetes -u <Shepherd-URL> -a <EUM-account> -k <EUM-key> -c DEL -d Delhi -t Delhi -s DEL -o India -i 28.70 -g 77.10 -p 23.5 -r 1 -z all -m 100Mi/500Mi -n 100Mi/100Mi -x 0.5/1.5 -y 0.1/0.1 -b 2Gi/2Gi -f 2/2 -q true -w 127.0.0.1:8887~127.0.0.1:8888~127.0.0.1:8889 -B "*abc.com;*xyz1.com;*xyz2.com" -C true
次の表では、コマンドでのフラグの使用について説明します。説明のアスタリスク(*)は、必須パラメータを示しています。
フラグ 説明
-e

*環境

たとえば、Docker、Minikube、または Kubernetes などです。

-l Minkube 環境にイメージをロードします。
-v デバッグモード
-u

*シェパード URL

たとえば、https://sum-shadow-master-shepherd.saas.appd-test.com/

シェパード URL のリストについては、「シェパード URL」を参照してください。

-a

*EUM アカウント

たとえば、ti-23-2-saas-nov2

-k

*EUM キー

たとえば、2d35df4f-92f0-41a8-8709-db54eff7e56c

-c

*ロケーションコード

たとえば、デリーの場合は DEL、ニューヨークの場合は NY

-d

*ロケーションの説明

たとえば、'Delhi, 100001'

-t

*ロケーションの都市

たとえば、Delhi

-s

*ロケーションの州

たとえば、カリフォルニアの場合は CA

-o

*ロケーションの国

たとえば、India、United States

-i

ロケーションの緯度

たとえば、デリーの場合は 28.70

-g

ロケーションの経度

たとえば、デリーの場合は 77.10

-p

*PSA リリースタグ

たとえば、23.5

-r *Heimdall レプリカ数
-z

*エージェントタイプ

たとえば、web、api、または all

-m

*sum-chrome-agent の最小/最大メモリ(Mi/Gi 単位)
-n *sum-api-monitoring-agent の最小/最大メモリ(Mi/Gi 単位)
-x *sum-chrome-agent の最小/最大 CPU
-y *sum-api-monitoring-agent の最小/最大 CPU
-b *sum-heimdall の最小/最大メモリ(Mi/Gi 単位)
-f *sum-heimdall の最小/最大 CPU
-q true または false を指定して、Ignite Persistence を有効または無効にします。
-w

Heimdall、API、および Web モニタリング用のプロキシ サーバーをチルダ(~)で区切って指定します。

プロキシサーバーを設定する必要がない場合は、空白のままにすることができます。

-B

プロキシサーバーからバイパスするドメイン URL を指定します。

例:"*abc.com;*xyz1.com;*xyz2.com".

-C Chrome ブラウザでのパフォーマンスログを有効にするには true を指定します。デフォルト値は false です。

Kubernetes クラスタのモニタリング

ダウンロードした zip 内の Helm チャート sum-psa-monitoring.tgz により、モニタリングスタックがインストールされます。この Helm チャートは、Private Simple Synthetic Agent をモニタするためのカスタム Grafana ダッシュボードとともに kube-prometheus-stack をインストールします。
注: この展開のモニタリングはオプションです。ただし、クラスタをモニターして正常性を定期的に確認することを強く推奨します。

モニタリングスタックのインストール

  1. 別のモニタリング名前空間を作成するには、以下のように入力します。
    CODE
    kubectl create namespace monitoring
    設定オプションを確認するには、次のように入力します。
    CODE
    helm show values sum-psa-monitoring.tgz > values-monitoring.yaml
    これにより、すべての設定オプションを含む values-monitoring .yaml ファイルが生成されます。Helm チャートのインストール中に生成された values-monitoring .yaml ファイルを変更して渡すには、次のように入力します。
    CODE
    helm install psa-monitoring sum-psa-monitoring.tgz --values values-monitoring.yaml --namespace monitoring
  2. モニタリングスタックをインストールした後、(クラスタ内で実行される)Grafana を起動してダッシュボードを表示できます。クラスタの外部から Grafana にアクセスするには、ポートフォワーディングを設定するか、Ingress を設定します。ローカルにアクセスするようにポートフォワーディングを設定するには、次のように入力します。
    CODE
    kubectl port-forward svc/psa-monitoring-grafana 3000:80 --namespace monitoring
  3. ブラウザから localhost:3000 を起動し、デフォルトのログイン情報(ユーザ名:admin、パスワード:prom-operator)を使用してログインします。Private Simple Synthetic Agent という名前のダッシュボードに、Kubernetes クラスタ、Apache Ignite、Heimdall、および実行中の測定に関する詳細が表示されます。

PSA のアンインストール

PSA をアンインストールするには、次のコマンドを実行します。

CODE
./uninstall_psa -e kubernetes -p

Azure AKS での PSA のアップグレード

Docker イメージのプル

DockerHub から sum-chrome-agent、sum-api-monitoring-agent、sum- heimdall の既成の Docker イメージをプルします。既成イメージには依存ライブラリが含まれているため、インターネットにアクセスできない場合でもこれらのイメージを使用できます。

次のコマンドを実行して、エージェントイメージをプルします。

CODE
docker pull appdynamics/heimdall-psa
docker pull appdynamics/chrome-agent-psa
docker pull appdynamics/api-monitoring-agent-psa

カスタム Python ライブラリの追加

この手順は任意です。使用可能な標準ライブラリセットに加えて、スクリプト測定で使用するカスタム Python ライブラリをエージェントに追加できます。ベースイメージとしてロードしたイメージに基づいて新しいイメージをビルドします。

  1. Dockerfile を作成してから、pythonpip を実行する RUN ディレクティブを作成します。たとえば、algorithms ライブラリをインストールするには、次のように Dockerfile を作成します。

    CODE
    # Use the sum-chrome-agent image you just loaded as the base image
    FROM appdynamics/chrome-agent-psa:<agent-tag>
    USER root
    RUN apk add py3-pip
    USER appdynamics
    # Install algorithm for python3 on top of that
    RUN python3 -m pip install algorithms==0.1.4 --break-system-packages
    注: 任意の数の ディレクティブを作成して、必要なライブラリをインストールできます。
  2. 新しいイメージを作成するには、次のコマンドを実行します。

    Web モニタリング PSA:

    CODE
    docker build -t sum-chrome-agent:<agent-tag> - < Dockerfile

    API モニタリング PSA:

    CODE
    docker build -f Dockerfile-PSA -t sum-api-monitoring-agent:<agent-tag> .

    Kubernetes クラスタノードと同じ OS タイプのホストでイメージをビルドする必要があります。たとえば、イメージを AWS にプッシュする場合は、次のコマンドを実行します。

    CODE
    docker buildx build -f Dockerfile-PSA --platform=linux/amd64 -t sum-api-monitoring-agent:<api-tag> .

    新しくビルドされたエージェントイメージには、必要なライブラリが含まれています。

イメージのタグ付けとレジストリへのプッシュ

注: EKS や AKS などのマネージド Kubernetes サービスは、イメージをプッシュできるコンテナレジストリを提供します。その他の設定は必要ありません。EKS または AKS 内の Kubernetes クラスタは、これらのイメージにアクセスできます。

クラスタがアクセスできるように、イメージにタグを付けてレジストリにプッシュする必要があります。クラスタの作成時に ACR_NAME 環境変数を使用する必要があります。

イメージにタグを付けるには、次のように入力します。

CODE
ACR_LOGIN_SERVER=$ACR_NAME.azurecr.io
docker tag sum-heimdall:<heimdall-tag> $ACR_LOGIN_SERVER/sum-heimdall:<heimdall-tag>
docker tag sum-chrome-agent:<agent-tag> $ACR_LOGIN_SERVER/sum-chrome-agent:<agent-tag>
docker tag sum-api-monitoring-agent:<agent-tag> $ACR_LOGIN_SERVER/sum-api-monitoring-agent:<agent-tag>

イメージをプッシュするには、次のように入力します。

CODE
az acr login --name $ACR_NAME
docker push $ACR_LOGIN_SERVER/sum-heimdall:<heimdall-tag>
docker push $ACR_LOGIN_SERVER/sum-chrome-agent:<agent-tag>
docker push $ACR_LOGIN_SERVER/sum-api-monitoring-agent:<agent-tag>

Helm チャートの更新

次の values.yaml 手順に従って、values.yaml ファイル内の設定キーと値のペアを更新します。

PSA のアップグレード

注: PSA 23.12 以降、Ignite と Heimdall を measurement という名前の単一の名前空間に展開する必要があります。
  1. 新しい Linux ディストリビューション フォルダに移動して、次のコマンドを実行します。

    CODE
    helm install synth ignite-psa.tgz --values values-ignite.yaml --namespace measurement
  2. Ignite ポッドのステータスが running に変わるまで待ちます。その後、次のコマンドを実行します。

    CODE
    helm upgrade heimdall-onprem sum-psa-heimdall.tgz --values values.yaml --namespace measurement
  3. 新しい Heimdall ポッドと Ignite ポッドのステータスが runningに変更されたら、古い Ignite 名前空間をアンインストールします。

    CODE
    helm uninstall synth -n ignite