Hitachi

JP1 Version 12 JP1/Performance Management - Remote Monitor for Virtual Machine


2.5.4 Docker環境の場合

監視対象の仮想環境がDocker環境の場合,PFM - RM for Virtual Machineと仮想環境間の通信をSSL/TLSによって暗号化するため,次に示す証明書およびパスワードが必要です。

監視対象のDocker環境が動作する物理サーバの場合
  • 認証局のルート証明書

    物理サーバの証明書を発行する認証局のルート証明書が必要です。

  • Docker環境が動作している物理サーバの証明書

    発行先が物理サーバのホスト名となっている証明書が必要です。Docker環境が動作する物理サーバごとに証明書が必要です。

  • 物理サーバの証明書の秘密鍵

    物理サーバの証明書を発行するときに使用した秘密鍵が必要です。

PFM - RM for Virtual Machineが動作するWindowsサーバの場合
  • 認証局のルート証明書

    物理サーバの証明書を発行した認証局のルート証明書が必要です。

  • Docker環境に接続するためのクライアント証明書(Personal Information Exchange形式)

    物理サーバの証明書を発行した認証局でクライアント証明書を発行する必要があります。物理サーバの証明書と異なる発行者のクライアント証明書では監視できません。物理サーバの証明書をすべて同じ認証局で発行している場合は,1つのクライアント証明書で監視できます。物理サーバの証明書が異なる認証局で発行している場合は,それぞれの認証局で発行したクライアント証明書が必要です。

  • Personal Information Exchangeのパスワード

    Personal Information Exchange形式のクライアント証明書では,秘密鍵を保護するためのパスワードが設定されています。Windows証明書ストアに登録するときに必要となります。

    重要

    CA証明書を組み込んでいないときには,次の問題が生じることがあります。

    • パフォーマンスデータ収集時に,接続先Docker環境からの応答に時間が掛かる

    • パフォーマンスデータ収集時に,接続先Docker環境からの応答に時間が掛かることによって,収集間隔内でパフォーマンスデータ取得が完了しないで,収集失敗となることがある

    クライアント証明書を組み込んでいない場合は,Docker環境が接続を拒否するため,収集に失敗します。

各証明書は,次の図に示すように配置します。

図2‒6 証明書の配置

[図データ]

Docker環境は,ルート証明書,サーバ証明書およびサーバの秘密鍵のファイルをDocker Engine実行時の引数で指定します。

PFM - RM for Virtual Machineは,Windows証明書ストアに登録された証明書および秘密鍵を使用します。

〈この項の構成〉

(1) 監視対象の設定

Docker環境で証明書およびtcpを有効にし,物理サーバのファイアウォールの設定を変更します。

(a) 証明書を配置する

ルート証明書,サーバ証明書およびサーバの秘密鍵をDocker Engineの参照できる場所に配置します。

Docker環境(Linux)の場合
/etc/docker/certs.dに配置する例

ルート証明書:/etc/docker/certs.d/ca.pem

サーバ証明書:/etc/docker/certs.d/server-cert.pem

サーバの秘密鍵:/etc/docker/certs.d/server-key.pem

Docker環境(Windows)の場合
C:¥ProgramData¥docker¥certs.dに配置する例

ルート証明書:C:¥ProgramData¥docker¥certs.d¥ca.pem

サーバ証明書:C:¥ProgramData¥docker¥certs.d¥server-cert.pem

サーバの秘密鍵:C:¥ProgramData¥docker¥certs.d¥server-key.pem

(b) tcp接続およびSSL/TLSを有効にする

Docker環境にリモート接続できるようにtcpポート番号および暗号化通信に必要な証明書を設定します。

Docker環境(Linux)の場合

/etc/sysconfig/dockerファイルのOPTIONSの引数に-Hオプション,--tlsverify,--tlscacert,--tlscert,--tlskeyオプションを追加します。

証明書ファイルを/etc/docker/certs.dに配置し,ポート番号XXXXで待ち受ける場合の例
OPTIONS='--selinux-enabled --log-driver=journald
  --tlsverify --tlscacert=/etc/docker/certs.d/ca.pem
  --tlscert=/etc/docker/certs.d/server-cert.pem
  --tlskey=/etc/docker/certs.d/server-key.pem
  -H unix:///var/run/docker.sock -H tcp://0.0.0.0:XXXX'

変更を有効にするため,Docker Engineを再起動します。

再起動コマンドの例
systemctl restart docker
Docker環境(Windows)の場合

C:¥ProgramData¥Docker¥config¥daemon.jsonファイルに"hosts"オプション,"tlsverify","tlscacert","tlscert","tlskey"オプションを追加します。

証明書ファイルをC:¥ProgramData¥docker¥certs.dに配置し,ポート番号XXXXで待ち受ける場合の例
{
"hosts": ["tcp://0.0.0.0:XXXX", "npipe://"],
"tlsverify": true,
"tlscacert": "C:\\ProgramData\\docker\\certs.d\\ca.pem",
"tlscert": "C:\\ProgramData\\docker\\certs.d\\server-cert.pem",
"tlskey": "C:\\ProgramData\\docker\\certs.d\\server-key.pem"
}

変更を有効にするため,Docker Engineのサービスを再起動します。

再起動するDocker Engineのサービス

サービス名:Docker

表示名:Docker Engine

(c) ファイアウォールの設定を変更する

ファイアウォールが有効な場合,リモート接続できるようにファイアウォールの設定を変更します。

Docker環境(Linux)の場合
ポート番号XXXXで待ち受ける場合の例
firewall-cmd --permanent --zone=public --add-port=XXXX/tcp
firewall-cmd --reload
Docker環境(Windows)の場合
ポート番号XXXXで待ち受ける場合の例
netsh advfirewall firewall add rule name="Docker Engine"
protocol=TCP dir=in localport=XXXX action=allow

(2) PFM - RM for Virtual Machineの設定

PFM - RM for Virtual Machineの監視対象の設定で,次のパラメーターを設定します。

Docker環境と暗号化通信するための証明書を登録します。

(a) ルート証明書の登録

  1. Windowsの[スタート]−[ファイル名を指定して実行]を選択する。

    [ファイル名を指定して実行]ダイアログが表示されます。

    [図データ]

  2. [ファイル名を指定して実行]ダイアログに「mmc」と入力して[OK]ボタンをクリックする。

    Management Consoleが起動します。

    [図データ]

  3. [コンソール1]で[ファイル]−[スナップインの追加と削除]を選択する。

    [スナップインの追加と削除]ダイアログが表示されます。

    [図データ]

  4. 証明書を選択して,[追加]ボタンをクリックする。

    [証明書スナップイン]ダイアログが表示されます。

    [図データ]

  5. [コンピューター アカウント]を選択して,[次へ]ボタンをクリックする。

    [コンピューターの選択]ダイアログが表示されます。

    [図データ]

  6. [ローカルコンピューター]をチェックして,[完了]ボタンをクリックする。

    [図データ]

  7. [選択されたスナップイン]に[証明書(ローカルコンピューター)]が追加されたことを確認し,[OK]ボタンをクリックする。

  8. [証明書(ローカルコンピューター)]−[信頼されたルート証明機関]−[証明書]を右クリックして,表示された[すべてのタスク]−[インポート]メニューを選択する。

    [図データ]

    [証明書のインポート ウィザード]ダイアログが表示されます。

    [図データ]

  9. [次へ]ボタンをクリックする。

    [図データ]

  10. [ファイル名]テキストボックスに,証明書の保存ファイル名を入力して,[次へ]ボタンをクリックする。

    ここでは,例として「C:¥Certs¥ca.pem」と入力します。

    証明書ストアが[信頼されたルート証明機関]になっていることを確認します。

    [図データ]

  11. [証明書をすべて次のストアに配置する]を選択して,[次へ]ボタンをクリックする。

    [図データ]

  12. [完了]ボタンをクリックする。

    [図データ]

  13. [OK]ボタンをクリックして,正しくインポートされたことを確認する。

(b) クライアント証明書の登録

PFM - RMホストのユーザー(インスタンス環境の設定でHostUserIDに指定しているユーザー)でログオンします。

  1. Windowsの[スタート]−[ファイル名を指定して実行]を選択する。

    [ファイル名を指定して実行]ダイアログが表示されます。

    [図データ]

  2. [ファイル名を指定して実行]ダイアログに「mmc」と入力して[OK]ボタンをクリックする。

    Management Consoleが起動します。

    [図データ]

  3. [コンソール1]で[ファイル]−[スナップインの追加と削除]を選択する。

    [スナップインの追加と削除]ダイアログが表示されます。

    [図データ]

  4. 証明書を選択して,[追加]ボタンをクリックする。

    [証明書スナップイン]ダイアログが表示されます。

    [図データ]

  5. [ユーザー アカウント]を選択し,[完了]ボタンをクリックする。

    [図データ]

  6. [選択されたスナップイン]に[証明書]−[現在のユーザー]が追加されたことを確認して,[OK]ボタンをクリックする。

  7. [証明書 - 現在のユーザー]−[個人]を右クリックし,表示された[すべてのタスク]−[インポート]メニューを選択する。

    [図データ]

    [証明書のインポート ウィザード]ダイアログが表示されます。

    [図データ]

  8. [次へ]ボタンをクリックする。

    [図データ]

  9. [ファイル名]テキストボックスに,証明書の保存ファイル名を入力して,[次へ]ボタンをクリックする。

    ここでは,例として「C:¥Certs¥client.pfx」と入力します。

    [図データ]

  10. Personal Information Exchangeのパスワードを指定して,「次へ」をクリックする。

    証明書ストアが「個人」になっていることを確認します。

    [図データ]

  11. [証明書をすべて次のストアに配置する]を選択して,[次へ]ボタンをクリックする。

    [図データ]

  12. [完了]ボタンをクリックする。

    [図データ]

  13. [OK]ボタンをクリックして,正しくインポートされたことを確認する。