Download PDF
Download page クラスタエージェントの設定.
クラスタエージェントの設定
クラスタエージェントは、Linux 上で実行され、AppDynamics オペレータを使用して展開されるように設計されています。このページでは、クラスタエージェントのディレクトリと、次の方法について説明します。
- プロキシサポートの構成
クラスタサーバーデータを収集するためのクラスタエージェント YAML ファイルの構成
このページには、Kubernetes のマニュアルへのリンクが含まれています。Kubernetes で自身のマニュアルを管理しているため、AppDynamics では Kubernetes のマニュアルの精度については一切保証しません。
クラスタ エージェント ディレクトリ
解凍されたクラスタエージェントには、次のディレクトリ構造が含まれています。
cluster-agent
├── cluster-agent-operator.yaml
├── cluster-agent-operator-1.14-or-less.yaml
├── cluster-agent-operator-openshift-1.14-or-less.yaml
├── cluster-agent-operator-openshift.yaml
├── cluster-agent.yaml
├── README-alpine.md
└── docker
├── cluster-agent.zip
├── Dockerfile
├── LICENSE
└── start-appdynamics
└── helm-charts
├── Chart.yaml
├── README.md
├── crds
├── templates
└── values.yaml
cluster-agent
├── cluster-agent-operator.yaml
├── cluster-agent-operator-1.14-or-less.yaml
├── cluster-agent-operator-openshift-1.14-or-less.yaml
├── cluster-agent-operator-openshift.yaml
├── cluster-agent.yaml
├── README-rhel.md
└── docker
├── cluster-agent.zip
├── Dockerfile-rhel
├── LICENSE
└── start-appdynamics
└── helm-charts
├── Chart.yaml
├── README.md
├── crds
├── templates
└── values.yaml
クラスタエージェントのディレクトリの概要
次の表に、クラスタエージェントのディレクトリファイルの概要とその目的の説明を示します。
ファイル名 | 説明 |
---|---|
| クラスタエージェントの構成と展開に使用されるファイル。
|
| これらのファイルは、AppDynamics オペレータの展開に使用されます。 これらのファイルは、最小限の RBAC 権限を含む、Kubernetes、Amazon EKS、AKS のすべてのデフォルト値を設定します。 |
| これらのファイルは、Red Hat OpenShift での AppDynamics オペレータの展開に使用されます。 これらのファイルは、最小限の RBAC 権限を含む Red Hat OpenShift のデフォルト値を設定します。 |
| Docker ディレクトリには、クラスタ エージェント イメージを作成するために必要なすべてのファイルが含まれています |
| dockerfile :Alpine ベースのクラスタ エージェント イメージの作成に使用 |
Dockerfile-rhel | dockerfile :Rhel ベースのクラスタ エージェント イメージの作成に使用 |
LICENSE | クラスタ エージェント イメージに添付された最新の EULA ファイル |
| クラスタエージェントのバイナリと構成ファイルを含む zip アーカイブ。 |
helm-charts | Kubernetes で Helm を使用してクラスタエージェントを展開するためのチャートの作成に使用されるフォルダ |
| 優先オペレーティングシステムを使用してクラスタエージェントを起動する方法に関する指示が含まれています。 |
| Docker 内でクラスタエージェントを実行するために使用するスクリプト。 |
プロキシサポートの構成
cluster-agent.yaml
ファイルを見つけて編集します。cluster-agent.yaml
ファイルにproxyUrl
パラメータを追加します。proxyUrl: <protocol>://<host>:<port>
TEXT(オプション)プロキシサーバで認証が必要な場合は、次の手順を実行します。
proxyUser
を追加します。proxyUser: <user>
CODEproxy-password
を使用してsecret
を作成します。kubectl -n appdynamics create secret generic cluster-agent-proxy-secret --from-literal=proxy-password='<password>'
CODE
- (オプション)プロキシにのみ SSL を使用する場合は、次の手順を実行します。
.pem
証明書ファイルからsecret
を作成します(証明書ファイルの名前はproxy-ssl.pem)
にする必要があります)。kubectl -n appdynamics create secret generic ssl-cert --from-file=proxy-ssl.pem
TEXTcluster-agent.yaml
ファイルでシークレットファイル名を設定します。customSSLSecret: “ssl-cert”
TEXT
プロキシで SSL を使用し、コントローラで SSL を使用するには、「プロキシ証明書とオンプレミス証明書の組み合わせ」を参照してください。
オンプレミスのコントローラに SSL を使用するためのクラスタエージェントの構成
SaaS コントローラでは、クラスタエージェント SSL が自動的に処理されます。
パブリック証明書と自己署名証明書を持つコントローラ
パブリック証明書または自己署名証明書を使用して SSL を構成するために、kubectl
を使用してシークレットを生成します。次の kubectl
コマンドを入力して、パブリック証明書または自己署名証明書へのパスを含めます。
kubectl -n appdynamics create secret generic ssl-cert --from-file=<path-to-your-self-signed-certs>/custom-ssl.pem
証明書ファイルには、次の名前を付ける必要があります。custom-ssl.pem
秘密が作成されたら、前の手順で指定した秘密名を使用して customSSLSecret
プロパティを cluster-agent.yaml
ファイルに追加する必要があります。
customSSLSecret: “ssl-cert”
プロキシ証明書とオンプレミス証明書の組み合わせ
プロキシサーバーとオンプレミスコントローラに 2 つの異なる SSL 証明書がある場合は、これらの両方を次のように 1 つのシークレットにカプセル化できます。
kubectl -n appdynamics create secret generic ssl-cert --from-file=proxy-ssl.pem --from-file=<path-to-your-self-signed-certs>/custom-ssl.pem
クラスタエージェントは、customSSLSecret
属性で指定されたシークレットから各証明書をプルし、適切に使用します。
例
この例は、 customSSLSecret
属性が定義された cluster-agent.yaml
ファイルを示しています。
apiVersion: appdynamics.com/v1alpha1
kind: Clusteragent
metadata:
name: k8s-cluster-agent-manual
namespace: appdynamics
spec:
# init agent configuration
appName: "test-k8s-cluster-agent"
controllerUrl: "https://<controller-url>:443" # always schema and port
account: "<account-name>" # account
# agent related properties
# custom SSL secret name
customSSLSecret: "ssl-cert"
# logging properties
logLevel: INFO
logFileSizeMb: 7
logFileBackups: 6
# docker image info
image: "<image-url>"
クラスタエージェント YAML ファイルの構成
クラスタエージェントを構成するには、ダウンロードパッケージに含まれている cluster-agent.yaml
ファイルをテンプレートとして使用します。次のパラメータを変更できます。
パラメータ | 説明 | 例 | Default | 動的に構成可能 | タイプ(Type) | 要否 |
---|---|---|---|---|---|---|
| AppDynamics のアカウント名 | admin | 該当なし | いいえ | 文字列 | 必須 |
| クラスタの名前。クラスタ名としてコントローラ UI に表示されます。 | k8s-cluster | 該当なし | なし | 文字列 | 必須 |
| プロトコルおよびポートを含むフル AppDynamics コントローラ URL。 | HTTP: http://appd-controller.com:8090 HTTPS: https://appd-controller.com:443 | 該当なし | なし | 文字列 | 必須 |
| クラスタエージェントに自己署名証明書またはパブリック証明書を提供します。 | "ssl-cert" | 該当なし | なし | 文字列 | オプション |
| Kubernetes の警告および状態変更イベントがコントローラにアップロードされる頻度(秒単位)。「 クラスタイベントのモニター」を参照してください | 10 | 10 | × | 整数 | オプション |
| コントローラから応答を受信しなかった場合にサーバーコールが終了するまでの秒数。 | 30 | 30 | × | 整数 | オプション |
| クラスタ エージェント イメージ | your-docker-registry/appdynamics/cluster-agent:latest | 該当なし | なし | 文字列 | 必須 |
| プライベート Docker レジストリまたはリポジトリからイメージを取得する場合の認証に使用されるクレデンシャルファイル。Docker レジストリ構成に基づいて、クラスタエージェントのイメージをプルする場合に AppDynamics オペレータが使用するシークレットファイルの作成が必要になる場合があります。Kubernetes マニュアルの「Create a Secret by providing credentials on the command line」を参照してください | regcred | 該当なし | なし | 文字列 | オプション |
| ログの最大ファイルサイズ(MB 単位)。 | 5 | 5 | はい | 整数 | オプション |
| ログに保存するバックアップの最大数。最大バックアップ数に達すると、最初のログファイルの次に最も古いログファイルが削除されます。 | 3 | 3 | はい | 整数 | オプション |
| ログの詳細の数。INFO 、WARNING 、DEBUG, OR TRACE. | "INFO" |
| はい | 文字列 | オプション |
maxPodLogsTailLinesCount | ログの収集中に tail される行数。 このパラメータを使用するには、ログキャプチャ機能を有効にします。「ポッドログの管理」を参照してください | 500 | 500 | [はい(Yes)] に設定 | 整数 | オプション |
| クラスタエージェントポッドは、その labels プロパティ内に指定されたキーと値のペアを含むノードで実行されます。nodeSelector の機能の詳細については、「nodeSelector」を参照してください。 | nodeSelector: kubernetes.io/e2e-az-name: az1 | 該当なし | いいえ | map [string] [string] | オプション |
| クラスタ内でモニターされる名前空間。 | nsToMonitor: - "default" | default | いいえ | 文字列リスト(シーケンス) | オプション |
nsToMonitorRegex | クラスタでモニタする必要のある名前空間を選択するための正規表現。 このパラメータは、 このパラメータは、クラスタ エージェント バージョン 20.9 以降およびコントローラバージョン 20.10 以降で動作します。 詳細については、「名前空間の編集」を参照してください。 | nsToMonitoRegex: .* | N/A | Yes | 正規表現 | オプション |
nsToExcludeRegex |
このパラメータは、クラスタ エージェント バージョン 20.9 以降およびコントローラバージョン 20.10 以降で動作します。 このパラメータは、 | nsToExcludeRegex: ns.* | N/A | Yes | 正規表現 | オプション |
| 次に基づいたブロックリストまたは許可リストポッド
名前によるブロックリストまたは許可リストの登録は、ラベルによるブロックリストまたは許可リストの登録よりも優先されます。たとえば、 podFilter: blocklistedLabels: allowlistedNames: これにより、名前が「
| podFilter: | 該当なし | はい | 文字列 | オプション |
| プロキシのパブリックにアクセス可能なホスト名 | https://myproxy.example.com:8080 | 該当なし | なし | 文字列 | オプション |
| 基本認証クレデンシャルに関連付けられているユーザー名 | "user1" | 該当なし | なし | 文字列 | オプション |
resources | クラスタエージェントに対する CPU リソースとメモリリソースの要求と制限。 | resources: |
| ○ | 配列(Array) | オプション |
| デフォルトでは、クラスタエージェントはログディレクトリ内のログファイルに書き込みます。さらに、コンテナ | "true", "false" | true | はい | 文字列 | オプション |
| ポッドに必要な許容値の配列。許容値の詳細については、Kubernetes ドキュメントの「Taint and Tolerations」を参照してください。 | tolerations: key:type value:test - effect: NoExecute key:node.kubernetes.io/not-ready operator:Exists tolerationSeconds:600 | 該当なし | いいえ | 配列 | オプション |
自動インストゥルメンテーションには固有の構成があります。「サポートされるアプリケーションの自動インストゥルメンテーションの有効化」を参照してください。また、.yaml
ファイルには、自動インストゥルメンテーションのための権限が含まれています。これは、デフォルトで有効になっています。自動インストゥルメンテーションを使用しない場合は、.yaml
ファイルから次のテキストを削除します。
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: appdynamics-cluster-agent-instrumentation
subjects:
- kind: ServiceAccount
name: appdynamics-cluster-agent
namespace: appdynamics
roleRef:
kind: ClusterRole
name: appdynamics-cluster-agent-instrumentation
apiGroup: rbac.authorization.k8s.io
クラスタ エージェント ファイルの例
次に、cluster-agent.yaml
構成ファイルの例を示します。
apiVersion: appdynamics.com/v1alpha1
kind: Clusteragent
metadata:
name: k8s-cluster-agent
namespace: appdynamics
spec:
appName: "<app-name>"
controllerUrl: "<protocol>://<appdynamics-controller-host>:8080"
account: "<account-name>"
# docker image info
image: "<your-docker-registry>/appdynamics/cluster-agent:tag"
nsToMonitor:
- "default"
eventUploadInterval: 10
containerRegistrationInterval: 120
httpClientTimeout: 30
customSSLSecret: "<secret-name>"
proxyUrl: "<protocol>://<domain>:<port>"
proxyUser: "<proxy-user>"
metricsSyncInterval: 30
clusterMetricsSyncInterval: 60
metadataSyncInterval: 60
containerBatchSize: 25
containerParallelRequestLimit: 3
podBatchSize: 30
metricUploadRetryCount: 3
metricUploadRetryIntervalMilliSeconds: 5
podFilter:
# blocklistedLabels:
# - label1: value1
# allowlistedLabels:
# - label1: value1
# - label2: value2
# allowlistedNames:
# - name1
# blocklistedNames:
# - name2
logLevel: "INFO"
logFileSizeMb: 5
logFileBackups: 3
stdoutLogging: "true"
resources:
limits:
cpu: 300m
memory: "200Mi"
requests:
cpu: 200m
memory: "100Mi"
AppDynamics オペレータを使用したクラスタエージェントの動的な構成
クラスタ エージェント コンテナを再起動せずに、クラスタエージェントの属性の一部を動的に更新できます。「クラスタエージェント YAML ファイルの構成」を参照してください
cluster-agent.yaml
仕様内のこれらのプロパティを変更して、次を適用できます。
kubectl -n appdynamics apply -f cluster-agent.yaml
ファイルを動的に更新するには、次の手順を実行します。
- コマンドプロンプトを開き、
cluster-agent.yaml
ファイルに移動します。 - [Save ] をクリックして、
cluster-agent.yaml
構成ファイルを保存します。 - 構成を適用するために、コマンドラインから次のように入力します。
kubectl apply -f cluster-agent.yaml
クラスタエージェントの構成の確認
クラスタエージェントは、1 分に 1 回構成の変更を確認します。構成が適用されていることを確認し、クラスタエージェントが新しい値を使用していることを確認するには、次の場所を確認します。
- AppDynamics オペレータ
- クラスタエージェントのログ
AppDynamics オペレータが構成の変更を処理したことを確認するには、コマンドプロンプトを開き、次のように入力します。
kubectl -n appdynamics describe cm cluster-agent-mon cluster-agent-log
クラスタエージェントが構成の変更を処理したことを確認するには、「クラスタエージェントのログの表示」を参照してください。
クラスタエージェントのログの表示
stdout
ロギングが有効になっている場合は、コマンドプロンプトを開き、次のように入力します。
kubectl -n appdynamics logs <pod-name>
stdout
ロギングが有効になっていない場合、コンテナにアクセスするには、コマンドラインプロンプトを開き、次のように入力します。
kubectl -n appdynamics exec -it <pod-name> -- <shell-type>
予想される出力:
$ kubectl -n appdynamics exec -it k8s-cluster-agent-77f99774bc-pd2vr -- /bin/bash
appdynamics@k8s-cluster-agent-77f99774bc-pd2vr:/opt/appdynamics/cluster-agent$
クラスタエージェントのディレクトリの内容:
appdynamics@k8s-cluster-agent-77f99774bc-pd2vr:/opt/appdynamics/cluster-agent$ ll
total 49296
drwxr-xr-x 1 appdynamics appdynamics 4096 Dec 4 14:04 ./
drwxr-xr-x 1 appdynamics appdynamics 4096 Dec 4 14:04 ../
-rwxr-xr-x 1 appdynamics appdynamics 50443680 Dec 4 14:03 cluster-agent*
-rw-r--r-- 1 appdynamics appdynamics 198 Dec 4 14:03 cluster-agent.asc
drwxr-xr-x 1 appdynamics appdynamics 4096 Dec 10 18:15 config/
drwxrwxr-- 1 appdynamics appdynamics 4096 Dec 10 18:15 logs/
-rwxr--r-- 1 appdynamics appdynamics 2624 Dec 4 14:04 start-appdynamics*
コンテナに移動したら、logs
ディレクトリに対して cd
を実行し、cluster-agent.log
ファイルを表示します。
appdynamics@k8s-cluster-agent-77f99774bc-pd2vr:/opt/appdynamics/cluster-agent$ cd logs/
appdynamics@k8s-cluster-agent-77f99774bc-pd2vr:/opt/appdynamics/cluster-agent/logs$ ll
total 480
drwxrwxr-- 1 appdynamics appdynamics 4096 Dec 10 18:15 ./
drwxr-xr-x 1 appdynamics appdynamics 4096 Dec 4 14:04 ../
-rw-r--r-- 1 appdynamics appdynamics 471339 Dec 11 21:46 cluster-agent.log