2.3.17 Docker環境で収集できるデータ
- 〈この項の構成〉
(1) Docker環境の概要
Windows Server 2016で利用できるDocker環境(Windowsコンテナ機能)は,1つのWindowsシステム内で,ソフトウェア的に仮想化された複数のWindows環境を稼働できます。Dockerコンテナ(Windowsコンテナ)は,ホストOSとリソースを共有するため,仮想マシンと比べて,アプリケーション実行のオーバーヘッドが小さくて済みます。
(2) Docker環境の構造
Docker環境は,アプリケーション用のワークスペースを提供するSolarisのZoneと同じような構造をしています。
Docker環境は,Dockerコンテナ(Windowsコンテナ)環境とDockerコンテナを管理するホスト(Dockerホスト)環境から構成されます。
Windowsコンテナには次の2種類が存在します。
-
Windows Serverコンテナ
Windows Serverコンテナ上のプロセスは,ホストOS上のプロセスとして実行されるため,コンテナの起動が速い特徴があります。
-
Hyper-Vコンテナ
Hyper-Vコンテナ上のプロセスは,Hyper-V上のゲストOS内のプロセスとして実行されるため,隔離性が高い代わりに,コンテナの起動に時間が掛かります。
PFM - Agent for PlatformがサポートするDocker環境を次に示します。
- DockerホストのOSのバージョン
-
-
Windows Server 2016
-
(3) Dockerホスト環境でのプロセス監視
PFM - Agent for PlatformがDockerホスト環境上で動作する場合,Dockerコンテナ内のプロセス情報を収集できます。
- 重要
-
PFM - Agent for PlatformをDockerコンテナ環境にインストールすることはできません。
ALL Container Collection for Processプロパティの設定によって,Dockerコンテナ内のプロセス情報を収集するかどうかを選択できます。ALL Container Collection for Processプロパティの設定値を次に示します。
- Yes
-
Dockerホスト環境およびすべてのDockerコンテナ環境のプロセス情報※を収集する。
- 注※
-
Windows Serverコンテナのプロセス情報を収集できます。Hyper-Vコンテナのプロセス情報は収集できません。
- No
-
Dockerホスト環境のプロセス情報だけを収集する。
ALL Container Collection for Processプロパティのデフォルト値は「Yes」です。
Dockerホスト環境上でPFM - Agent for Platformが動作する場合に収集するプロセス情報を次の図に示します。
|
(4) プロパティの設定と取得情報との関係
ALL Container Collection for ProcessプロパティとVirtual Environment IDプロパティの設定内容と,取得情報の関係について説明します。
-
PDレコード
PDレコードで収集されるプロセス情報について,プロパティの設定と取得情報との関係を次の表に示します。
ALL Container Collection for Processプロパティの設定 |
取得情報 |
|
---|---|---|
収集データ範囲 |
Virtual Env IDフィールドの値 |
|
Yes |
Dockerホスト環境およびすべてのDockerコンテナ環境 |
それぞれのDockerコンテナのID※ |
No |
Dockerホスト環境 |
0 |
- 注※
-
仮想化環境のID(Virtual Env IDフィールドの値)は,Dockerホスト環境の場合は「0」,Dockerコンテナ環境の場合はDockerコンテナに割り振られているIDとなります。
-
PD_APPレコード
PD_APPレコードでは,収集するプロセスを特定の環境だけに限定できません。収集するプロセスを特定の環境だけに限定する場合は,PD_APP2レコードを使用してください。
なお,PFM - Agent for Platformが収集するデータの範囲は,ALL Container Collection for Processプロパティの設定値の影響を受けません。
PD_APPレコードで収集されるプロセス情報について,プロパティの設定と取得情報との関係を次の表に示します。
ALL Container Collection for Processプロパティの設定 |
収集データ範囲 |
---|---|
Yes |
Dockerホスト環境およびすべてのDockerコンテナ環境 |
No |
Dockerホスト環境およびすべてのDockerコンテナ環境 |
-
PD_APPDレコードおよびPD_APP2レコード
PD_APPDレコードおよびPD_APP2レコードで収集されるプロセス情報について,プロパティの設定と取得情報との関係を次の表に示します。
プロパティの設定 |
取得情報 |
||
---|---|---|---|
ALL Container Collection for Process |
Virtual Environment ID※1 |
収集データ範囲 |
Virtual Env IDフィールドの値※2 |
Yes |
空白 |
Dockerホスト環境およびすべてのDockerコンテナ環境 |
空白 |
Yes |
0 |
Dockerホスト環境 |
0 |
Yes |
存在するDockerコンテナのID |
指定したDockerコンテナ環境 |
指定したDockerコンテナのID |
Yes |
存在しないDockerコンテナのID |
− |
− |
No |
空白 |
Dockerホスト環境 |
空白 |
No |
0 |
Dockerホスト環境 |
0 |
No |
存在するDockerコンテナのID |
− |
− |
No |
存在しないDockerコンテナのID |
− |
− |
- (凡例)
-
−:収集されません。PD_APPDレコードの場合,Monitoring Countフィールドには0が表示されます。
- 注※1
-
PFM - Web Consoleの[サービス階層]画面でホスト名<Windows>(Agent Collectorサービス)を選択し,[Advanced application monitoring]−[Application monitoring setting]ツリーからアプリケーション名を選択したときに表示されるプロパティです。PFM - Web Consoleの[エージェント階層]画面から表示する[プロセス監視の設定 > アプリケーション定義の新規作成]画面または[プロセス監視の設定 > アプリケーション定義の編集]画面では,[仮想化環境の識別子]に当たります。
- 注※2
-
PD_APPDレコードには,Virtual Env IDフィールドはありません。
-
PD_APSIレコード
PD_APSIレコードで収集されるプロセス情報について,プロパティの設定と取得情報との関係を次の表に示します。
プロパティの設定 |
取得情報 |
||
---|---|---|---|
ALL Container Collection for Process |
Virtual Environment ID※1 |
収集データ範囲 |
Virtual Env IDフィールドの値 |
Yes |
空白 |
Dockerホスト環境およびすべてのDockerコンテナ環境 |
それぞれのDockerコンテナのID※2 |
Yes |
0 |
Dockerホスト環境 |
0 |
Yes |
存在するDockerコンテナのID |
指定したDockerコンテナ環境 |
指定したDockerコンテナのID |
Yes |
存在しないDockerコンテナのID |
−※3 |
− |
No |
空白 |
Dockerホスト環境 |
0 |
No |
0 |
Dockerホスト環境 |
0 |
No |
存在するDockerコンテナのID |
−※3 |
− |
No |
存在しないDockerコンテナのID |
−※3 |
− |
- (凡例)
-
−:収集されません。
- 注※1
-
PFM - Web Consoleの[サービス階層]画面でホスト名<Windows>(Agent Collectorサービス)を選択し,[Advanced application monitoring]−[Application monitoring setting]ツリーからアプリケーション名を選択したときに表示されるプロパティです。PFM - Web Consoleの[エージェント階層]画面から表示する[プロセス監視の設定 > アプリケーション定義の新規作成]画面または[プロセス監視の設定 > アプリケーション定義の編集]画面では,[仮想化環境の識別子]に当たります。
- 注※2
-
仮想化環境のID(Virtual Env IDフィールドの値)は,Dockerホスト環境の場合は「0」,Dockerコンテナ環境の場合はDockerコンテナに割り振られているIDとなります。
- 注※3
-
レポートに表示されません。
-
PD_APSレコード
PD_APSレコードで収集されるプロセス情報について,プロパティの設定と取得情報との関係を次の表に示します。
ALL Container Collection for Processプロパティの設定 |
取得情報 |
|
---|---|---|
収集データ範囲 |
Virtual Env IDフィールドの値 |
|
Yes |
Dockerホスト環境およびすべてのDockerコンテナ環境 |
それぞれのDockerコンテナのID※ |
No |
Dockerホスト環境 |
0 |
- 注※
-
仮想化環境のID(Virtual Env IDフィールドの値)は,Dockerホスト環境の場合は「0」,Dockerコンテナ環境の場合はDockerコンテナに割り振られているIDとなります。
(5) Dockerホスト環境での注意事項
PFM - Agent for PlatformをDockerホスト環境にインストールしてプロセスの情報を収集する場合の注意事項を,次に示します。
-
PFM - Agent for Platformは,Docker Engine APIを使用し,デフォルトの名前付きパイプの設定でDockerとの通信を行うため,Docker Engine APIの名前付きパイプの設定を変更しないでください。名前付きパイプをデフォルトから変更すると,Docker Engineとの通信に失敗し,PDレコード,PD_APSIレコード,PD_APSレコードで取得するすべてのプロセスのVirtual Env IDフィールドの値が「N/A」となります。
-
PFM - Agent for Platformのレコード情報収集時に,Docker Engineとの通信中にエラーが発生した場合,または,Docker Engineとの通信中にDockerコンテナの起動または停止が行われた場合,一部のプロセスについて,Dockerホスト上で動作しているのか,Dockerコンテナ上で動作しているのかが判断できないことがあります。この場合,動作環境を判断できなかったプロセスについて,PDレコード,PD_APSIレコード,およびPD_APSレコードのVirtual Env IDフィールドの値が「N/A」となります。
-
Docker環境で運用する場合の注意事項は,JP1のWebサイトで公開しているドキュメントの「JP1/Performance Management Docker環境での留意点」を参照してください。