Docker の可視性の設定

Docker 可視性のマシンエージェント設定

ファイルで Docker の可視性設定を設定できます。

注: このファイルを編集する前に、「」の「YML ファイルの編集:重要な注意事項」セクションを参照してください。
プロパティ 説明 デフォルト

cgroupEnabled

マシンエージェントは、cgroupdata を使用して Docker コンテナのメモリ、CPU およびプロセスのメトリックを収集できます。このメソッドは、Docker API(デフォルトの metric-collection メソッド)を使用するよりもはるかに高速です。Amazon Linux OS を除くすべてのプラットフォームで cgroupmetriccollection を有効にすることができます。[cgroupEnabled] フラグを [true] に設定すると、マシンエージェントはホストごとに最大 600 個のコンテナをモニターできます。cgroup が有効になっている場合は、Docker Metric Collector のプールサイズを更新する必要はありません。コンテナの最大数の制限は、これに依存しません。このモードはデフォルトで無効になっています。cgroupmetriccollection を有効にするには、次のコマンドラインオプションを [true] に設定してエージェントを実行します。

CODE
java -Dappdynamics.docker.container.collection.cgroup.enabled=true  -jar machineagent.jar
注: システムプロパティ appdynamics.docker.container.collection.cgroup.enabledを使用してマシンエージェントで cgroup モニタリングを有効にする場合は、マシンエージェントコンテナが --pid=host オプションで開始されていることを確認してください。これは、マシンエージェントがホストのプロセス名前空間にアクセスし、正確な cgroup メトリックを収集できるようにするために必要です。詳細については、以下を参照してください。

Docker Run — PID 設定

.
true

containerProcessSelectorRegex

マシンエージェントは、最大 150 個の実行コンテナをモニターできます(以下で説明するプールサイズの設定によって異なります)。エージェントは、コマンドラインが設定可能な正規表現と一致する 1 つ以上の実行中のプロセスでコンテナからメトリックを収集します。デフォルトでは、この正規表現の値は ".* であり、その中で実行されているプロセスに関係なく、すべてのコンテナに一致します。APM エージェントを再起動できない場合、または別のコマンドライン引数に基づいて APM エージェントをフィルタリングする場合は、この正規表現を編集してこの動作をオーバーライドできます。

(**デフォルト:** ``/`` )

".*"
criticalProcessSelectorRegex

一部のシナリオでは、リソースの消費やその他の除外基準に関係なく、特定の重要なプロセスを常にマシンエージェントでモニターすることが重要です。criticalProcessSelectorRegex

Examples:

1. 部分文字列の一致:criticalProcessSelectorRegex:"redis|postgres|nginx|mysql|apache2|httpd|java|python|node"

:この正規表現は、コマンドラインに指定されたキーワード(redis、postgres など)のいずれかが含まれているすべてのプロセスに一致します。

:コマンドラインでの部分一致に基づいてプロセスをモニターするには、この形式を使用します。

2. 単語全体の一致:criticalProcessSelectorRegex: "\b(redis|postgres|nginx|mysql|apache2|httpd|java|python|node)\b"

:この正規表現により、プロセス名の完全一致のみが重要と見なされます。

:部分一致を防ぎ、単語全体を一致させるには、この形式を活用します(例:redis、redis-server ではありません)。

注: 意図しない一致を避けるために、正規表現が正しい形式であることを確認してください。正規表現はデフォルトで大文字と小文字が区別されます。大文字と小文字を区別しない照合では、適切な正規表現フラグを使用します(<?i> など)。

docker .metric.collector.pool.size

エージェントがモニタできるコンテナの数に対するローカル制限を指定します。各エージェントの有効な制限値の下限は、次のとおりです。

  • コントローラ上の sim.docker.machine.container.limit(デフォルトの制限 = 15 個のコンテナ)、または
  • エージェント上にある Docker Metric Collector のプールサイズ(デフォルトのプールサイズは 3、または 90 個のコンテナ)。

この設定を変更して、最大 120 個のコンテナ(プールサイズ = 4)または 150 個のコンテナ(プールサイズ = 5)をモニタすることができます。トレードオフとは、プールサイズを大きくすると、エージェントホストでのリソース消費が高くなることを意味します。

プールサイズを変更するには、次のプロパティを設定します。

System Property

CODE
-Dappdynamics.docker.metric.collector.pool.size
Environment Variable
CODE
APPDYNAMICS_DOCKER_METRIC_COLLECTOR_POOL_SIZE

デフォルトの制限 = 15 コンテナ

デフォルトのプールサイズ = 3、または 90 コンテナ

dockerTagsEnabled マシンエージェントによってモニタされるコンテナからの Docker タグの収集を有効(デフォルト)または無効にします。
docker.use.container.name.selector

コンテナ名のみでコンテナを識別するには、マシンエージェントを使用します。

Docker モニタリングのデフォルトでは、マシンエージェントでコンテナのリストを取得します。マシンエージェントは、コンテナごとに、コンテナ内の実行中のすべてのプロセスを取得します。次に、マシンエージェントは、プロセスの完全なコマンドラインによってモニタされるコンテナと一致します。コンテナが多数あるため、選択プロセスは 1 分以上かかり、コンテナメトリックのレポートにギャップが生じます。

[Docker Use Container Name Selector] 設定オプションは、コンテナの名前を使用してモニタするコンテナを選択するための別の方法を提供します。このオプションを使用すると、マシンエージェントは各コンテナのすべてのプロセスを収集する必要がなくなるため、実行速度が大幅に向上します。

コンテナ名との照合を有効にするには、環境変数または JVM プロパティを使用できます。両方が定義されている場合は、環境変数が使用されます。

System Property

CODE
-Dappdynamics.docker.use.container.name.selector=false

Environment Variable

CODE
APPDYNAMICS_DOCKER_USE_CONTAINER_NAME_SELECTOR=false
containerNameSelectorRegex(コンテナ名と一致させる場合)。デフォルトでは、マシンエージェントがすべてのコンテナ名に一致します。正規表現は extensions/DockerMonitoring/conf/DockerMonitoring.yml ファイルの一部です。

コンテナをモニタリングから除外するには、環境変数または JVM プロパティを使用します。両方が定義されている場合は、環境変数が使用されます。

CODE
# default value
".*(machine-agent|machineagent).*"
# environment variable
export APPDYNAMICS_DOCKER_CONTAINER_NAME_SELECTOR_BLACKLIST_REGEX=".*(machine-agent|machineagent).*"
# JVM property
-Dappdynamics.docker.container.name.selector.blacklist.regex=".*(machine-agent|machineagent).*"
# default value
".*(machine-agent|machineagent).*"

networkMonitorConfig:

blacklistSelectorRegex

この正規表現と一致する名前のネットワークは除外されます。この設定は、無関係なメトリックをフィルタリングして除外する場合に役立ちます。

Solaris でプロセスメトリックを収集する場合、マシンエージェントは、各プロセス名と引数リストの最初の 80 文字だけを観測してキャプチャします。これは、エージェントがブロックリストを適用するときに、各プロセス文字列の最初の 80 文字のみを考慮することを意味します。

CODE
# blacklistSelectorRegex specifies the regular expression used to blacklist reported networks by name. A network   with the name matching the regex will never be reported
# For example if blacklistSelectorRegex is set as blacklistSelectorRegex: "^(eth1|eth3)$"
then it will blacklist networks whose name matches exactly with eth1 or eth3

processMonitorConfig

デフォルトでは、コンテナプロセスのモニタリングは有効になっています。コンテナダッシュボードでコンテナ名を右クリックし、[View Details] を選択します。詳細パネルには、コンテナ内で実行されているプロセスと、CPU 使用率、メモリ使用率などの関連するメトリックを一覧表示する [Processes] タブが含まれています。無効にするには、以下に設定します。

true

Docker 可視性のコントローラ設定

これらの設定の構成方法については、「マシンエージェント用コントローラの設定」を参照してください。

プロパティ 説明 デフォルト
sim.docker.apmNode.markHistorical.enabled アプリケーション エージェントが実行されているコンテナが停止したときに、APM ノードを履歴としてマークする設定を有効にします。 true

sim.docker.enabled

Docker モニタリング機能を有効にします。 true

sim.docker.machine.container.limit

各マシンエージェントがモニタできるコンテナの数に対するグローバル制限。各エージェントの有効な制限値の下限は、次のとおりです。

  • コントローラ上の sim.docker.machine.container.limit(デフォルトの制限 = 15 個のコンテナ)、または
  • エージェント上にある Docker Metric Collector のプールサイズ(デフォルトのプールサイズは 3、または 90 個のコンテナ)。

これは、管理コンソールでコントローラの設定(すべてのアカウント)として指定することも、個々のアカウントのアカウント設定として指定することもできます。指定できる制限値の上限は、150 です。

15

sim.machines.reuse.enabled

一時的な環境を処理するために、SIM マシンエンティティを再利用します。現在、サポートは Docker コンテナマシンに限定されています。

がfalseに設定されています。

true

sim.machines.tags.enabled

コントローラへの Docker タグのインポートを有効または無効にします。 true