Download PDF
Download page ベアメタル K8s での Web モニタリング PSA および API モニタリング PSA の設定.
ベアメタル K8s での Web モニタリング PSA および API モニタリング PSA の設定
次のように、ベアメタル K8s での Web モニタリング PSA と API モニタリング PSA を設定します。既存の Kubernetes クラスタで PSA を設定する場合は、「Kubernetes クラスタの作成」セクションをスキップします。
- Kubernetes クラスタを作成します。
- Docker イメージをビルドしてカスタマイズします。
- Minikube の Docker デーモンにイメージを保存します。
- Web モニタリング PSA と API モニタリング PSA を展開します。
- Kubernetes クラスタをモニタします。
ほとんどの手順は、Web モニタリング PSA と API モニタリング PSA の両方に共通です。該当する場合は、手順の違いが強調表示されています。
このマニュアルには、AWS CLI のマニュアルへのリンクが記載されています。AWS CLI でそのマニュアルが管理されているため、AppDynamics は AWS CLI のマニュアルの正確さについては責任を負いません。
Kubernetes クラスタの作成
kops を使用して、AWS で独自の管理型 Kubernetes クラスタを作成できます。別のクラウドまたは独自のデータセンターで自己管理型クラスタを作成する場合は、Kubeadm や Kubespray などの他のツールを使用することを検討してください。展開ツールを使用した Kubernetes のインストールを参照してください。
Bare Metal K8s で Kubernetes クラスタを作成するには、次の手順を実行します。
- AWS CLI をインストールして設定します。
IAM ロールを作成するには、次のように入力します。
aws iam create-group --group-name kops aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonEC2FullAccess --group-name kops aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonRoute53FullAccess --group-name kops aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess --group-name kops aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/IAMFullAccess --group-name kops aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonVPCFullAccess --group-name kops aws iam create-user --user-name kops aws iam add-user-to-group --user-name kops --group-name kops aws iam create-access-key --user-name kops
CODE- 前の手順で取得したアクセスキーと
aws configure
を使用して、AWS CLI ログイン情報を設定します。 プラットフォームに応じて、次の手順に従って kops をインストールします。
S3 バケットを作成するには、次のように入力してバージョン管理を有効にします。
bucket_name=heimdall-onprem-kops-state-store aws s3api create-bucket \ --bucket ${bucket_name} \ --create-bucket-configuration LocationConstraint=us-west-2 aws s3api put-bucket-versioning --bucket ${bucket_name} --versioning-configuration Status=Enabled
CODEクラスタを作成するには、次のように入力します。
export KOPS_CLUSTER_NAME=heimdall-onprem.k8s.local export KOPS_STATE_STORE=s3://${bucket_name} export KOPS_KUBERNETES_VERSION=1.x.x kops create cluster \ --node-count=4 \ --node-size=t3.2xlarge \ --zones=us-west-2a \ --kubernetes-version=${KOPS_KUBERNETES_VERSION} \ --name=${KOPS_CLUSTER_NAME} kops update cluster --name ${KOPS_CLUSTER_NAME} --yes
CODE互換性のあるバージョンのいずれかから
KOPS_KUBERNETES_VERSION
を指定します。上記のコードスニペットの
node-size
とnode-count
は、推奨される設定タイプに従って選択されます。異なるタイプとノード数で、任意の設定を指定できます。「EC2 インスタンスタイプ」を参照してください。クラスタが実行されているかどうかを確認するには(クラスタのセットアップと実行に時間がかかる場合があります)、次のように入力します。
kops validate cluster
CODE
クラスタへのアクセス
Kubernetes クラスタにアクセスするには、次の手順に従って、クラスタとの対話型ユーティリティである kubectl をインストールします。
クラスタが実行されていることを確認するには、次のように入力します。
kubectl get nodes
Docker イメージのビルドとカスタマイズ
Simple Synth PSA のインストール用の zip ファイルは、Appdynamics ダウンロードポータルまたはベータアップロードツールからダウンロードできます。
このファイルには、エージェントのインストールとモニタリングの設定のための Dockerfile が含まれています。
- Web Monitoring PSA::sum-chrome-agent、sum-heimdall、および Helm チャートの Dockerfile
- API Monitoring PSA: sum-api-monitoring-agent、sum-heimdall、および Helm チャートの Dockerfile
sum-chrome-agent、sum-api-monitoring-agent、および sum-heimdall のイメージをビルドする場合は、Docker がインストールされていることを確認します。インストールされていない場合は、ここから Docker をダウンロードしてインストールできます。
sum-chrome-agent の場合:
- zip ファイルを解凍して、sum-chrome-agent ディレクトリにアクセスします。
ディレクトリに移動して、次のコマンドを実行します。
docker build -f Dockerfile-PSA -t sum-chrome-agent:<agent-tag> .
CODE
sum-api-monitoring-agent の場合:
- zip ファイルを解凍して、sum-api-monitoring-agent ディレクトリにアクセスします。
ディレクトリに移動して、次のコマンドを実行します。
docker build -f Dockerfile-PSA -t sum-api-monitoring-agent:<agent-tag> .
CODE
sum-heimdall の場合:
- zip ファイルを解凍して、sum-heimdall ディレクトリにアクセスします。
このディレクトリに移動して、次のコマンドを実行します。
docker build -f Dockerfile-PSA -t sum-heimdall:<heimdall-tag> .
CODE
<heimdall-tag> および <agent-tag> には、任意の値を使用できます。ただし、以降の手順で同じ値を使用します。
(オプション)カスタム Python ライブラリの追加
このセクションは、Web モニタリング PSA にのみ適用されます。
使用可能な標準ライブラリセットに加えて、スクリプト測定で使用するカスタム Python ライブラリをエージェントに追加できます。ベースイメージとしてロードしたイメージに基づいて新しいイメージをビルドします。
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
ディレクティブを作成して、必要なライブラリをインストールできます。新しいイメージをビルドするには、次のように入力します。
docker build -t sum-chrome-agent:<agent-tag> - < Dockerfile
CODE新しくビルドされたエージェントイメージには、必要なライブラリが含まれています。
イメージのタグ付けとレジストリへのプッシュ
クラスタがアクセスできるように、イメージにタグを付けてレジストリにプッシュする必要があります。これは、以下の方法で実行できます。
EC2 を使用した Bare Metal K8S
Vanilla K8S は AWS インフラストラクチャで動作します。kops は適切なロールを作成してクラスタノードに割り当てるため、他の設定なしで 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>
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>
<aws_account_id>
と <region>
をアカウントとリージョンの値に置き換えます。
リポジトリを作成するには、次のように入力します。
Web Monitoring PSA:
aws ecr create-repository --repository-name sum/sum-heimdall
aws ecr create-repository --repository-name sum/sum-chrome-agent
API Monitoring PSA:
aws ecr create-repository --repository-name sum/sum-heimdall
aws ecr create-repository --repository-name sum/sum-api-monitoring-agent
イメージをプッシュするには、次のように入力します。
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>
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>
プライベートレジストリを使用した Bare Metal K8S
AWS 上にない独自の Kubernetes クラスタを管理している場合は、独自のレジストリサーバを展開する必要があります。「Deploy a registry server」を参照してください。
イメージにタグを付けるには、次のように入力します。
Web Monitoring PSA:
docker tag sum-heimdall:<heimdall-tag> <REGISTRY_HOST>:<REGISTRY_PORT>/sum-heimdall:<heimdall-tag>
docker tag sum-chrome-agent:<agent-tag> <REGISTRY_HOST>:<REGISTRY_PORT>/sum-chrome-agent:<agent-tag>
API Monitoring PSA:
docker tag sum-heimdall:<heimdall-tag> <REGISTRY_HOST>:<REGISTRY_PORT>/sum-heimdall:<heimdall-tag>
docker tag sum-api-monitoring-agent:<agent-tag> <REGISTRY_HOST>:<REGISTRY_PORT>/sum-api-monitoring-agent:<agent-tag>
<REGISTRY_HOST>
および <REGISTRY_PORT> をレジストリの展開時に設定した値に置き換えます。
イメージをプッシュするには、次のように入力します。
Web Monitoring PSA:
docker login <REGISTRY_HOST>:<REGISTRY_PORT>
docker push <REGISTRY_HOST>:<REGISTRY_PORT>/sum-heimdall:<heimdall-tag>
docker push <REGISTRY_HOST>:<REGISTRY_PORT>/sum-chrome-agent:<agent-tag>
API Monitoring PSA:
docker login <REGISTRY_HOST>:<REGISTRY_PORT>
docker push <REGISTRY_HOST>:<REGISTRY_PORT>/sum-heimdall:<heimdall-tag>
docker push <REGISTRY_HOST>:<REGISTRY_PORT>/sum-api-monitoring-agent:<agent-tag>
Web モニタリング PSA および API モニタリング PSA の展開
Web モニタリング PSA および API モニタリング PSA をインストールするときは、それぞれの該当する一連の手順に必ず従ってください。一部の手順は、両方で共通しています。
イメージがレジストリに登録されると、アプリケーションはクラスタに展開されます。Helm チャートを使用して、必要な順序ですべての Kubernetes リソースを展開および作成します。
次の手順に従って、Helm をインストールします。
- 次のいずれかを使用して PSA をインストールします。
- Postgres データベースを使用する Heimdall
または、 - インメモリデータベース(Ignite)を使用する Heimdall
- Heimdall、Postgres データベース、および測定ポッドを実行する新しい測定名前空間を作成します。
Postgres データベース、またはインメモリデータベースを使用する Heimdall は、一度にいずれかを使用できます。
新しい測定名前空間を作成するには、次のように入力します。
kubectl create namespace measurement
CODE1 つのコマンドを使用して、展開の詳細を含む Helm チャートを展開できます。エージェントを展開するには、以前にダウンロードした zip ファイルの Helm チャート
sum-psa-heimdall.tgz
を使用します。Private Synthetic Agent を展開する前に、いくつかの設定オプションを設定する必要があります。設定オプションを表示するには、すでにダウンロードしたsum-psa-heimdall.tgz
ファイルに移動し、次のように入力します。helm show values sum-psa-heimdall.tgz > values.yaml
CODE以下は、
values.yaml
ファイルで編集する必要がある設定キーと値のペアです。Web Monitoring PSA Using EC2:
設定キー
値
heimdall > repository
<aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-heimdall
heimdall > tag
<heimdall-tag>
heimdall > pullPolicy
Always
chromeAgent > repository
<aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-chrome-agent
chromeAgent > tag
<agent-tag>
shepherd > url
Shepherd URL
shepherd > credentials
credentials
shepherd > location
agent location
API Monitoring PSA Using EC2:
設定キー
値
heimdall > repository
<aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-heimdall
heimdall > tag
<heimdall-tag>
heimdall > pullPolicy
Always
apiMonitoringAgent > repository
<aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-api-monitoring-agent
apiMonitoringAgent > tag
<agent-tag>
shepherd > url
Shepherd URL
shepherd > credentials
credentials
shepherd > location
agent location
Web Monitoring PSA Using Private Registry:設定キー
値
設定キー
値
heimdall > repository
<REGISTRY_HOST>:<REGISTRY_PORT>/sum-heimdall heimdall > tag
<heimdall-tag>
heimdall > pullPolicy
Always
chromeAgent > repository
<REGISTRY_HOST>:<REGISTRY_PORT>/sum-chrome-agent
chromeAgent > tag
<agent-tag>
privateRegistry
true
shepherd > url
Shepherd URL
shepherd > credentials
credentials
shepherd > location
agent location
API Monitoring PSA Using Private Registry:設定キー
値
heimdall > repository
<REGISTRY_HOST>:<REGISTRY_PORT>/sum-heimdall heimdall > tag
<heimdall-tag>
heimdall > pullPolicy
Always
apiMonitoringAgent > repository
<REGISTRY_HOST>:<REGISTRY_PORT>/sum-api-monitoring-agent
apiMonitoringAgent > tag
<agent-tag>
privateRegistry
true
shepherd > url
Shepherd URL
shepherd > credentials
credentials
shepherd > location
agent location
プライベートレジストリを使用して設定した後
レジストリログイン情報を作成するには、次のように入力します。
kubectl create secret docker-registry regcred --docker-server=<REGISTRY_HOST>:<REGISTRY_PORT> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email> --namespace measurement
CODEregcred
レジストリログイン情報を使用するように、測定名前空間のデフォルト サービス アカウントにパッチを適用します。kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "regcred"}]}' --namespace measurement
CODE残りの値はデフォルトのままにすることも、要件に基づいて設定することもできます。シェパード URL、ログイン情報、場所、およびオプションのキーと値のペアの詳細については、「Web モニタリング PSA と API モニタリング PSA の設定」を参照してください。
<aws_account_id>
と<region>
をアカウントとリージョンの値に置き換える必要があります。 Ignite を使用するインメモリデータベースを用いる Heimdall、および測定ポッドを実行する新しい測定名前空間を作成します。
Postgres データベース、またはインメモリデータベースを使用する Heimdall は、一度にいずれかを使用できます。
新しい測定名前空間を作成するには、次のように入力します。
kubectl create namespace measurement
CODE1 つのコマンドを使用して、展開の詳細を含む Helm チャートを展開できます。エージェントを展開するには、以前にダウンロードした zip ファイルの Helm チャート
sum-psa-heimdall.tgz
を使用します。Private Synthetic Agent を展開する前に、いくつかの設定オプションを設定する必要があります。設定オプションを表示するには、すでにダウンロードしたsum-psa-heimdall.tgz
ファイルに移動し、次のように入力します。helm show values sum-psa-heimdall.tgz > values.yaml
CODE以下は、
values.yaml
ファイルで編集する必要がある設定キーと値のペアです。Web Monitoring PSA Using EC2:
設定キー
値
heimdall > repository
<aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-heimdall
heimdall > tag
<heimdall-tag>
heimdall > pullPolicy
always
heimdall > replicaCount
1
ignite > devmode
true
chromeAgent > repository
<aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-chrome-agent
chromeAgent > tag
<agent-tag>
shepherd > url
Shepherd URL
shepherd > credentials
credentials
shepherd > location
agent location
複数のコンテナを作成することはできません。
API Monitoring PSA Using EC2:
設定キー
値
heimdall > repository
<aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-heimdall
heimdall > tag
<heimdall-tag>
heimdall > pullPolicy
always
heimdall > replicaCount
1
ignite > devmode
true
apiMonitoringAgent > repository
<aws_account_id>.dkr.ecr.<region>.amazonaws.com/sum/sum-api-monitoring-agent
apiMonitoringAgent > tag
<agent-tag>
shepherd > url
Shepherd URL
shepherd > credentials
credentials
shepherd > location
agent location
複数のコンテナを作成することはできません。
Web Monitoring PSA Using Private Registry:
設定キー
値
heimdall > repository
<REGISTRY_HOST>:<REGISTRY_PORT>/sum-heimdall heimdall > tag
<heimdall-tag>
heimdall > pullPolicy
always
heimdall > replicaCount
1
ignite > devmode
true
chromeAgent > repository
<REGISTRY_HOST>:<REGISTRY_PORT>/sum-chrome-agent
chromeAgent > tag
<agent-tag>
privateRegistry
true
shepherd > url
Shepherd URL
shepherd > credentials
credentials
shepherd > location
agent location
複数のコンテナを作成することはできません。
API Monitoring PSA Using Private Registry:
設定キー
値
heimdall > repository
<REGISTRY_HOST>:<REGISTRY_PORT>/sum-heimdall heimdall > tag
<heimdall-tag>
heimdall > pullPolicy
always
heimdall > replicaCount
1
ignite > devmode
true
apiMonitoringAgent > repository
<REGISTRY_HOST>:<REGISTRY_PORT>/sum-api-monitoring-agent
apiMonitoringAgent > tag
<agent-tag>
privateRegistry
true
shepherd > url
Shepherd URL
shepherd > credentials
credentials
shepherd > location
agent location
複数のコンテナを作成することはできません。
プライベートレジストリを使用して設定した後
レジストリログイン情報を作成するには、次のように入力します。
kubectl create secret docker-registry regcred --docker-server=<REGISTRY_HOST>:<REGISTRY_PORT> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email> --namespace measurement
CODEregcred
レジストリログイン情報を使用するように、測定名前空間のデフォルト サービス アカウントにパッチを適用します。kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "regcred"}]}' --namespace measurement
CODE残りの値はデフォルトのままにすることも、要件に基づいて設定することもできます。シェパード URL、ログイン情報、場所、およびオプションのキーと値のペアの詳細については、「Web モニタリング PSA と API モニタリング PSA の設定」を参照してください。
<aws_account_id>
と<region>
をアカウントとリージョンの値に置き換える必要があります。
- Heimdall、Postgres データベース、および測定ポッドを実行する新しい測定名前空間を作成します。
- Postgres データベースを使用する Heimdall
上記の設定を使用して Helm チャートを展開するには、すでにダウンロードした
sum-psa-heimdall.tgz
ファイルに移動し、次のように入力します。helm install heimdall-onprem sum-psa-heimdall.tgz --values values.yaml --namespace measurement
CODEすべての Kubernetes リソースがクラスタに作成され、Heimdall を使用できます。数秒後、Heimdall が初期化され、コントローラに表示されます。
ポッドが実行されているかどうかを確認するには、次のように入力します。
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これは、必要でない限り推奨されません。
Kubernetes クラスタのモニタリング
ダウンロードした zip 内の Helm チャート sum-psa-monitoring.tgz
により、モニタリングスタックがインストールされます。この Helm チャートは、Private Simple Synthetic Agent をモニタするためのカスタム Grafana ダッシュボードとともに kube-prometheus-stack をインストールします。
この展開のモニタリングはオプションです。ただし、クラスタをモニタして正常性を定期的に確認することを強く推奨します。
モニタリングスタックのインストール
別の
monitoring
名前空間を作成するには、次のように入力します。kubectl create namespace monitoring
CODE設定オプションを確認するには、次のように入力します。
helm show values sum-psa-monitoring.tgz > values.yaml
CODEこれにより、すべての設定オプションを含む
values.yaml
ファイルが生成されます。Helm チャートのインストール中に生成されたvalues.yaml
ファイルを変更して渡すには、次のように入力します。helm install psa-monitoring sum-psa-monitoring.tgz --values values.yaml --namespace monitoring
CODEモニタリングスタックをインストールした後、(クラスタ内で実行される)Grafana を起動してダッシュボードを表示できます。クラスタの外部から Grafana にアクセスするには、ポートフォワーディングを設定するか、Ingress を設定します。ローカルにアクセスするようにポートフォワーディングを設定するには、次のように入力します。
kubectl port-forward svc/psa-monitoring-grafana 3000:80 --namespace monitoring
CODEブラウザから localhost:3000 を起動し、デフォルトのログイン情報(ユーザ名:
admin
、パスワード:prom-operator
)を使用して、ログインします。[Private Simple Synthetic Agent] という名前のダッシュボードに、Kubernetes クラスタ、Heimdall、インメモリデータベース(Ignite)を使用する Heimdall、Postgres、および実行中の測定に関する詳細が表示されます。