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

このマニュアルには、AWS CLI のマニュアルへのリンクが記載されています。AWS CLI でそのマニュアルが管理されているため、AppDynamics は AWS CLI のマニュアルの正確さについては責任を負いません。

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

Docker イメージのビルドとカスタマイズ

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

プロキシサーバーを設定すると、すべてのドメインに適用されます。

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

docker イメージのビルド後に bypass_list に変更を加えた場合は、docker イメージを再ビルドする必要があります。


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

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

  1. sum-chrome-agent/agent ディレクトリに移動します。
  2. chrome.py ファイルを開きます。
  3. 次の文字列に移動します。

    if self._proxy_server: 
    chrome_options.add_argument('--proxy-server={}'.format(self._proxy_server))
    CODE
  4. 次の詳細を追加します。

    bypass_list = ["*abc.com", "*xyz1.com", "*xyz2.com"]
    chrome_options.add_argument('--proxy-bypass-list=%s' % ";".join(bypass_list))
    CODE

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


  5. Docker イメージをビルドします。

    docker イメージのビルド後に bypass_list に変更を加えた場合は、docker イメージを再ビルドする必要があります。

PSA Docker イメージのビルドとカスタマイズ

Simple Synth PSA のインストール用の zip ファイルは、Appdynamics ダウンロードポータルまたはベータアップロードツールからダウンロードできます。

このファイルには、エージェントのインストールとモニタリングの設定のための Dockerfile が含まれています。

  • Web Monitoring PSA:sum-chrome-agent、sum-heimdall、および Helm チャートの Dockerfile

sum-chrome-agent および sum-heimdall のイメージをビルドする場合は、Docker がインストールされていることを確認します。インストールされていない場合は、こちらから Docker をダウンロードしてインストールできます。 

sum-chrome-agent の場合:

  1. zip ファイルを解凍して、sum-chrome-agent ディレクトリにアクセスします。
  2. ディレクトリに移動して、次のコマンドを実行します。

    docker build -f Dockerfile-PSA-Openshift -t sum-chrome-agent:<agent-tag> .
    CODE

sum-heimdall の場合:

  1. zip ファイルを解凍して、sum-heimdall ディレクトリにアクセスします。 
  2. Openshift-PSA ディレクトリに移動して、次のコマンドを実行します。

    docker build -f Dockerfile-PSA-Openshift -t sum-heimdall:<heimdall-tag> .
    CODE

<heimdall-tag> および <agent-tag> には、任意の値を使用できます。ただし、以降の手順で同じ値を使用します。

M1 チップを搭載した macOS を使用している場合は、次のコマンドを使用します。

sum-chrome-agent

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

sum-heimdall

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

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

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

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

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

    # Use the sum-chrome-agent image we just loaded as the base image
    FROM sum-chrome-agent:<agent-tag>
      
    # Install algorithm for python3 on top of that
    RUN python3 -m pip install algorithms==0.1.4
      
      
    # We can add more RUN directives for installing more libraries
    # RUN python3 -m pip install ...
    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

<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

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

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

OpenShift での PSA の手動展開

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

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

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

    最初に Apache Ignite のコマンドを実行してから、Heimdall のコマンドを実行してください。

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

    kubectl create namespace ignite
    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 ignite
    CODE

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

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

    kubectl get pods --namespace ignite
    CODE

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

  5. Heimdall および測定ポッドを実行するための新しい measurement 名前空間を作成します。
    新しい measurement 名前空間を作成するには、次のように入力します。

    kubectl create namespace measurement
    CODE

    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

    残りの値はデフォルトのままにすることも、要件に基づいて設定することもできます。シェパード URL、ログイン情報、場所、およびオプションのキーと値のペアの詳細については、「Configure Web Monitoring PSA and API Monitoring 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 の展開

Prerequisites

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> -x <chrome-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>~<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 -x 0.5/1.5 -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.5

    -rHeimdall レプリカ数
    -z

    エージェント タイプ

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

    -m

    sum-chrome-agent の Mi/Gi の最小/最大メモリ
    -x   sum-chrome-agent の最小/最大 CPU
    -bsum-heimdall の Mi/Gi の最小/最大メモリ
    -f sum-heimdall の最小/最大 CPU
    -qtrue または false を指定して、Ignite Persistence を有効または無効にします。 
    -jAPI モニタリングエージェントの入力および出力帯域幅に単一の値を指定します。OpenShift のデフォルト値は 1024k です。AppDynamics では、OpenShift 展開での値以上の値を維持することをお勧めします。
    -w

    Heimdall および 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