5.11. セキュアな PCP 接続の確立
セキュアな PCP プロトコルエクスチェンジに参加するように、PCP コレクターとモニタリングコンポーネントを設定できます。
5.11.1. セキュアな PCP 接続
Performance Co-Pilot (PCP) コレクターとモニタリングコンポーネントの間にセキュアな接続を確立できます。PCP コレクターコンポーネントは、さまざまなソースからパフォーマンスデータを収集および抽出する PCP の構成要素です。PCP モニターコンポーネントは、PCP コレクターコンポーネントがインストールされているホストまたはアーカイブから収集されたデータを表示する PCP の構成要素です。これらのコンポーネント間にセキュアな接続を確立すると、収集および監視対象のデータへの、権限のない第三者によるアクセスや変更を防ぐことができます。
Performance Metrics Collector Daemon (pmcd
) との接続は、すべて TCP/IP ベースの PCP プロトコルを使用して行われます。プロトコルプロキシーと PCP REST API は pmproxy
デーモンによって提供されます。REST API は HTTPS 経由でアクセスできるため、セキュアな接続が確保されます。
pmcd
デーモンと pmproxy
デーモンはどちらも、単一ポート上で TLS 通信と TLS 以外の通信を同時に実行できます。pmcd
のデフォルトポートは 44321 で、pmproxy
のデフォルトポートは 44322 です。これは、PCP コレクターシステムで TLS 通信と TLS 以外の通信のどちらかを選択する必要がなく、両方を同時に使用できることを意味します。
5.11.2. PCP コレクターコンポーネントのセキュアな接続の設定
セキュアな PCP プロトコルエクスチェンジに参加するには、すべての PCP コレクターシステムに有効な証明書が必要です。
pmproxy
デーモンは、TLS の観点からはクライアントとサーバーの両方として動作します。
前提条件
- PCP がインストールされている。詳細は PCP のインストールおよび有効化 を参照してください。
クライアントの秘密鍵が
/etc/pcp/tls/client.key
ファイルに保存されている。別のパスを使用する場合は、この手順の該当するステップを調整してください。秘密鍵および証明書署名要求 (CSR) を作成する方法と、認証局 (CA) からの証明書を要求する方法は、CA のドキュメントを参照してください。
-
TLS クライアント証明書が
/etc/pcp/tls/client.crt
ファイルに保存されている。別のパスを使用する場合は、この手順の該当するステップを調整してください。 -
CA 証明書が
/etc/pcp/tls/ca.crt
ファイルに保存されている。別のパスを使用する場合は、この手順の該当するステップを調整してください。さらに、pmproxy
デーモンの場合、次の条件を満たす必要があります。 -
サーバーの秘密鍵が
/etc/pcp/tls/server.key
ファイルに保存されている。別のパスを使用する場合は、この手順の該当するステップを調整してください。 -
TLS サーバー証明書が
/etc/pcp/tls/server.crt
ファイルに保存されている。別のパスを使用する場合は、この手順の該当するステップを調整してください。
手順
CA 発行の証明書を使用してセキュアな接続を確立するために、コレクターシステム上の PCP TLS 設定ファイルを更新します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cat > /etc/pcp/tls.conf << END tls-ca-cert-file = /etc/pcp/tls/ca.crt tls-key-file = /etc/pcp/tls/server.key tls-cert-file = /etc/pcp/tls/server.crt tls-client-key-file = /etc/pcp/tls/client.key tls-client-cert-file = /etc/pcp/tls/client.crt END
# cat > /etc/pcp/tls.conf << END tls-ca-cert-file = /etc/pcp/tls/ca.crt tls-key-file = /etc/pcp/tls/server.key tls-cert-file = /etc/pcp/tls/server.crt tls-client-key-file = /etc/pcp/tls/client.key tls-client-cert-file = /etc/pcp/tls/client.crt END
PCP コレクターインフラストラクチャーを再起動します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart pmcd.service systemctl restart pmproxy.service
# systemctl restart pmcd.service # systemctl restart pmproxy.service
検証
TLS 設定を確認します。
pmcd
サービスの場合:Copy to Clipboard Copied! Toggle word wrap Toggle overflow grep 'Info:' /var/log/pcp/pmcd/pmcd.log
# grep 'Info:' /var/log/pcp/pmcd/pmcd.log [Tue Feb 07 11:47:33] pmcd(6558) Info: OpenSSL 3.0.7 setup
pmproxy
サービスの場合:Copy to Clipboard Copied! Toggle word wrap Toggle overflow grep 'Info:' /var/log/pcp/pmproxy/pmproxy.log
# grep 'Info:' /var/log/pcp/pmproxy/pmproxy.log [Tue Feb 07 11:44:13] pmproxy(6014) Info: OpenSSL 3.0.7 setup
5.11.3. PCP モニタリングコンポーネントのセキュアな接続の設定
セキュアな PCP プロトコルエクスチェンジに参加するように、PCP モニタリングコンポーネントを設定します。
前提条件
- PCP がインストールされている。詳細は PCP のインストールおよび有効化 を参照してください。
クライアントの秘密鍵が
~/.pcp/tls/client.key
ファイルに保存されている。別のパスを使用する場合は、この手順の該当するステップを調整してください。秘密鍵および証明書署名要求 (CSR) を作成する方法と、認証局 (CA) からの証明書を要求する方法は、CA のドキュメントを参照してください。
-
TLS クライアント証明書が
~/.pcp/tls/client.crt
ファイルに保存されている。別のパスを使用する場合は、この手順の該当するステップを調整してください。 -
CA 証明書が
/etc/pcp/tls/ca.crt
ファイルに保存されている。別のパスを使用する場合は、この手順の該当するステップを調整してください。
手順
次の情報を使用して TLS 設定ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow home=echo ~ cat > ~/.pcp/tls.conf << END
$ home=echo ~ $ cat > ~/.pcp/tls.conf << END tls-ca-cert-file = /etc/pcp/tls/ca.crt tls-key-file = $home/.pcp/tls/client.key tls-cert-file = $home/.pcp/tls/client.crt END
セキュアな接続を確立します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow export PCP_SECURE_SOCKETS=enforce export PCP_TLSCONF_PATH=~/.pcp/tls.conf
$ export PCP_SECURE_SOCKETS=enforce $ export PCP_TLSCONF_PATH=~/.pcp/tls.conf
検証
セキュアな接続が設定されていることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pminfo --fetch --host pcps://localhost kernel.all.load
$ pminfo --fetch --host pcps://localhost kernel.all.load kernel.all.load inst [1 or "1 minute"] value 1.26 inst [5 or "5 minute"] value 1.29 inst [15 or "15 minute"] value 1.28