OpenShift で Web モニタリング PSA および API モニタリング PSA を展開するには、Amazon EKS または Azure AKS で OpenShift クラスタを作成する必要があります。次のいずれかの方法で PSA を設定できます。

このページには、AWS CLI のマニュアルへのリンクが含まれています。AWS CLI で自身のマニュアルを管理しているため、Splunk AppDynamics では AWS CLI のマニュアルの精度については一切保証しません。

自動化スクリプトを使用する場合は、OpenShift クラスタとノードを手動で設定し、PSA を展開する前にコンテナレジストリにログインする必要があります。

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

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

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

バイパスリストの設定は、Web モニタリング PSA でのみサポートされています。

  1. values.yaml ファイルを開きます。

  2. browserMonitoringAgent: の下の bypassList フィールドにドメイン URL を追加します

    browserMonitoringAgent:
      enabled: true
      server: "<proxy server address>"
      bypassList: "<specify the domain URLs that you want to bypass separated by semicolon>"
    CODE

    たとえば、 bypassList: "*abc.com;*xyz1.com;*xyz2.com"

    bypassList で指定したドメイン URL は、プロキシサーバーにリダイレクトされません。bypassList に任意の数のドメインを追加できます。他のすべての指定されていないドメイン URL は、プロキシサーバーにリダイレクトされます。

Docker イメージのプル

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

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

docker pull appdynamics/heimdall-psa

docker pull appdynamics/chrome-agent-psa

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

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

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

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

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

    # 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
    CODE

    任意の数の RUN ディレクティブを作成して、必要なライブラリをインストールできます。

  2. 新しいイメージをビルドするには、次のように入力します。

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

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

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

クラスタがアクセスできるように、イメージにタグを付けてレジストリにプッシュする必要があります。Amazon EKS クラスタは、AWS が提供するマネージドレジストリである Elastic Container Registry(ECR)からイメージをプルします。 

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

Web Monitoring PSA:

docker tag sum-heimdall:<heimdall-tag> <aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-heimdall:<heimdall-tag>
docker tag sum-chrome-agent:<agent-tag> <aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-chrome-agent:<agent-tag>
CODE

API Monitoring PSA:

docker tag sum-heimdall:<heimdall-tag> <aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-heimdall:<heimdall-tag>
docker tag sum-api-monitoring-agent:<agent-tag> <aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-api-monitoring-agent:<agent-tag>
CODE

<aws_account_id><region> をアカウント ID とリージョンの値に置き換える必要があります。 

リポジトリを作成するには、次のように入力します。

Web Monitoring PSA:

aws ecr create-repository --repository-name sum/sum-heimdall
aws ecr create-repository --repository-name sum/sum-chrome-agent
CODE

API Monitoring PSA:

aws ecr create-repository --repository-name sum/sum-heimdall
aws ecr create-repository --repository-name sum/sum-api-monitoring-agent
CODE

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


Web Monitoring PSA:

aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin <aws_account_id>.dkr.ecr.<region>.amazonaws.com
docker push <aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-heimdall:<heimdall-tag>
docker push <aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-chrome-agent:<agent-tag>
CODE

API Monitoring PSA:

aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin <aws_account_id>.dkr.ecr.<region>.amazonaws.com
docker push <aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-heimdall:<heimdall-tag>
docker push <aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-api-monitoring-agent:<agent-tag>
CODE

OpenShift での PSA の手動展開

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

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

  1. 次の手順に従って、Helm をインストールします。

  2. Apache Ignite ポッドを実行するための新しい measurement 名前空間を作成します。

    • 最初に Apache Ignite のコマンドを実行してから、Heimdall のコマンドを実行してください。
    • PSA 23.12 以降、Ignite と Heimdall を「measurement」という名前の単一の名前空間に展開する必要があります。

    新しい measurement 名前空間を作成するには、次のように入力します。

    kubectl create namespace measurement
    CODE

    Apache Ignite を展開する前に、いくつかの設定オプションを設定する必要があります。設定オプションを表示するには、すでにダウンロードした ignite-psa.tgz ファイルに移動し、次のように入力します。

    helm show values ignite-psa.tgz &gt; values-ignite.yaml
    CODE

    永続化を有効にする場合は、persistence > enabled を設定します。この設定は、オプションです。

  3. 上記の設定を使用して Helm チャートを展開するには、すでにダウンロードした ignite-psa.tgz ファイルに移動し、次のように入力します。

    helm install synth ignite-psa.tgz --values values-ignite.yaml --namespace measurement
    CODE

    すべての Kubernetes リソースがクラスタに作成され、Apache Ignite を使用できます。数秒後、Apache Ignite が初期化され、コントローラに表示されます。

  4. ポッドが実行されているかどうかを確認するには、次のように入力します。

    kubectl get pods --namespace measurement
    CODE

    Apache Ignite ポッドが正常に実行された後にのみ、次の手順に進みます。

  5. 1 つのコマンドを使用して、展開の詳細を含む Helm チャートを展開できます。エージェントを展開するには、以前にダウンロードした zip ファイルの Helm チャート sum-psa-heimdall.tgz を使用します。Private Synthetic Agent を展開する前に、いくつかの設定オプションを設定する必要があります。設定オプションを表示するには、すでにダウンロードした sum-psa-heimdall.tgz ファイルに移動し、次のように入力します。

    helm show values sum-psa-heimdall.tgz &gt; values.yaml
    CODE

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

    Web Monitoring PSA:

    設定キー

    heimdall > repository<aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-heimdall
    heimdall > tag<heimdall-tag>
    heimdall > pullPolicyAlways
    chromeAgent > repository<aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-chrome-agent
    chromeAgent > tag<agent-tag>
    shepherd > urlShepherd URL
    shepherd > credentialscredentials
    shepherd > locationagent location

    API Monitoring PSA:

    設定キー

    heimdall > repository<aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-heimdall
    heimdall > tag<heimdall-tag>
    heimdall > pullPolicyAlways
    apiMonitoringAgent > repository

    <aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-api-monitoring-agent

    apiMonitoringAgent > tag<agent-tag>

    ingressBandwidth

    1024k 以上(要件に応じて)。
    egressBandwidth1024k 以上(要件に応じて)。
    shepherd > urlShepherd URL
    shepherd > credentialscredentials
    shepherd > locationagent location

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

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

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

    agentDNSConfig:  
     enabled: true  
     dnsPolicy: "None"  
     dnsConfig:    
      nameservers: ["4.4.4.4"]    
      searches: ["svc.cluster.local", "cluster.local"]
    CODE

    複数のネームサーバーを追加する必要がある場合は、次の手順を実行します。

    1. values.yaml ファイルで dnsPolicy"None" に設定します。

      agentDNSConfig:  
       enabled: true  
       dnsPolicy: "None"  
       dnsConfig:    
        nameservers: ["1.1.1.1", "2.2.2.2", "3.3.3.3"]    
        searches: ["measurement.svc.cluster.local", "svc.cluster.local", "cluster.local"]
      CODE

      nameservers で指定された最初のネームサーバーが cluster-default ネームサーバーであることを確認します。

    2. アップストリーム coredns ポリシーを sequential. に設定します。詳細については、coredns を参照してください。
  6. 上記の設定を使用して Helm チャートを展開するには、すでにダウンロードした sum-psa-heimdall.tgz ファイルに移動し、次のように入力します。

    helm install heimdall-onprem sum-psa-heimdall.tgz --values values.yaml --namespace measurement
    CODE

    すべての Kubernetes リソースがクラスタに作成され、Heimdall を使用できます。数秒後、Heimdall が初期化され、コントローラに表示されます。

  7. ポッドが実行されているかどうかを確認するには、次のように入力します。

    kubectl get pods --namespace measurement
    CODE

    初期導入後に values.yaml に変更を加えるには、すでにダウンロードした sum-psa-heimdall.tgz ファイルに移動して、次のように入力します。

    helm upgrade heimdall-onprem sum-psa-heimdall.tgz --values values.yaml --namespace measurement
    CODE

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

    helm uninstall heimdall-onprem --namespace measurement
    CODE

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

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

Prerequisite

PSA インストールスクリプトを実行する前に、次の手順を実行します。

  • OpenShift クラスタを作成し、Kubeconfig でクラスタ を設定します。
  • イメージレジストリにログインします。
  • pyyaml パッケージ v6.01 をダウンロードします。

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

  1. PSA インストール zip ファイルを解凍します。
  2. 以下のコマンドを実行して、PSA をインストールします。

    ./install_psa -e openshift -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> -j <ingress_and_egress_bandwidth> -w <heimdall_proxy_server>~<api_monitoring_proxy_server>~<web_monitoring_proxy_server>
    CODE

    サンプルのインストールコマンドを次に示します。

    ./install_psa -e openshift -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 -j 2048k -w 127.0.0.1:8887~127.0.0.1:8888~127.0.0.1:8889
    CODE

    次の表では、コマンドでのフラグの使用について説明します。説明のアスタリスク(*)は、必須パラメータを示しています。

    フラグ説明
    -e

    *環境

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

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

    *シェパード URL

    -a

    *EUM アカウント

    -k

    *EUM キー

    -c

    *ロケーションコード

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

    -d

    *ロケーションの説明

    たとえば、 'Delhi, 100001'

    -t

    *ロケーションの都市

    たとえば、Delhi

    -s

    *ロケーションの州

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

    -o

    *ロケーションの国

    たとえば、India、United States

    -i

    ロケーションの緯度

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

    -g

    ロケーションの経度

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

    -p

    *PSA リリースタグ

    たとえば、 23.12

    -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
    -qtrue または false を指定して、Ignite Persistence を有効または無効にします。 
    -j

    API モニタリングエージェントの入力および出力帯域幅に単一の値を指定します。OpenShift のデフォルト値は 1024k です。Splunk AppDynamics では、OpenShift 展開での値以上の値を維持することをお勧めします。

    -w

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

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

  3. プロンプトが表示されたら、Docker レジストリ URL を指定します。

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

ダウンロードした zip 内の Helm チャート sum-psa-monitoring.tgz により、モニタリングスタックがインストールされます。この Helm チャートは、Private Simple Synthetic Agent をモニタするためのカスタム Grafana ダッシュボードとともに kube-prometheus-stack をインストールします。

この展開のモニタリングはオプションです。ただし、クラスタをモニターして正常性を定期的に確認することを強く推奨します。  

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

  1. 別の monitoring 名前空間を作成するには、次のように入力します。

    kubectl create namespace monitoring
    CODE

    設定オプションを確認するには、次のように入力します。

    helm show values sum-psa-monitoring.tgz &gt; values-monitoring.yaml
    CODE

    これにより、すべての設定オプションを含む values-monitoring.yaml ファイルが生成されます。Helm チャートのインストール中に生成された values-monitoring.yaml ファイルを変更して渡すには、次のように入力します。

    oc adm policy add-scc-to-group anyuid system:authenticated
    CODE
    helm install psa-monitoring sum-psa-monitoring.tgz --values values-monitoring.yaml --namespace monitoring
    CODE
  2. モニタリングスタックをインストールした後、(クラスタ内で実行される)Grafana を起動してダッシュボードを表示できます。クラスタ外から Grafana にアクセスするには、ポートフォワーディングを設定するか、Ingress を設定します。ローカルにアクセスするようにポートフォワーディングを設定するには、次のように入力します。

    kubectl port-forward svc/psa-monitoring-grafana 3000:80 --namespace monitoring
    CODE
  3. ブラウザから localhost:3000 を起動し、デフォルトのログイン情報(ユーザー名:admin、パスワード:prom-operator.)を使用して、ログインします。Private Simple Synthetic Agent という名前のダッシュボードに、Kubernetes クラスタ、Apache Ignite、Heimdall、および実行中の測定に関する詳細が表示されます。

PSA のアンインストール

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

./uninstall_psa -e openshift -p
CODE