次のように、Amazon Elastic Kubernetes Service(Amazon EKS)での Web モニタリング PSA および API モニタリング PSA を設定します。既存の Kubernetes クラスタで PSA を設定する場合は、「Kubernetes クラスタの作成」セクションをスキップします。

  1. Kubernetes クラスタを作成します
  2. EKS での PSA の展開
  3. Kubernetes クラスタをモニタします。

このマニュアルには、AWS CLI のマニュアルへのリンクが記載されています。AWS CLI でそのマニュアルが管理されているため、AppDynamics は AWS 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 クラスタの作成

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

  1. AWS CLI をインストールして設定します。

  2. プラットフォームに応じて、ここの手順に従って eksctl をインストールします。

  3. Kubernetes クラスタを作成するには、次のように入力します。

    EKSCTL_CLUSTER_NAME=eks-heimdall-onprem-cluster
    EKSCTL_NODEGROUP_NAME=eks-heimdall-onprem-worker-nodes
    EKSCTL_KUBERNETES_VERSION=1.x.x
     
     
    eksctl create cluster \
    --name ${EKSCTL_CLUSTER_NAME} \
    --version ${EKSCTL_KUBERNETES_VERSION} \
    --region us-west-2 \
    --zones us-west-2a,us-west-2b,us-west-2c \
    --nodegroup-name ${EKSCTL_NODEGROUP_NAME} \
    --node-type t3.2xlarge \
    --nodes 4 \
    --nodes-min 2 \
    --nodes-max 6 \
    --ssh-access \
    --ssh-public-key ~/.ssh/id_rsa.pub \
    --managed \
    --vpc-nat-mode Disable
    CODE

    EKSCTL_KUBERNETES_VERSIONEKS Kubernetes のいずれかのバージョンに置き換えます。 

    コードスニペットの node-type、nodes、nodes-min、および nodes-max は、推奨される設定タイプに基づいて選択されます。異なるタイプとノード数で、任意の設定を指定できます。「EC2 インスタンスタイプ」を参照してください。

クラスタへのアクセス

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

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

kubectl get nodes
CODE

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

プロキシサーバーの設定は、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. values.yaml ファイルでプロキシサーバーのアドレスを指定します。「キーと値のペアの設定」を参照してください。

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

EKS での PSA の展開

PSA インストール zip ファイルを、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. 次のコマンドを実行して、EKS で PSA をインストールします。

    ./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>
    CODE

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

    ./install_psa -e kubernetes -u https://sum-shadow-master-shepherd.saas.appd-test.com/ -a ati-master-saas-nov3 -k abbf9f9f-4e62-48fb-bea1-79deb24243b3 -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
    CODE

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

フラグ説明
-e

環境

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

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

*シェパード URL

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

-a

*EUM アカウント

たとえば、 Ati-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

-rHeimdall レプリカ数
-z

エージェント タイプ

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

-m

sum-chrome-agent の Mi/Gi の最小/最大メモリ
-nsum-api-monitoring-agent の Mi/Gi の最小/最大メモリ
-x   sum-chrome-agent の最小/最大 CPU
-y  sum-api-monitoring-agent の最小/最大 CPU
-bsum-heimdall の Mi/Gi の最小/最大メモリ
-f sum-heimdall の最小/最大 CPU
-qtrue または false を指定して、Ignite Persistence を有効または無効にします。 

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 ファイルを変更して渡すには、次のように入力します。

    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 kubernetes -m
CODE