5.11. 建立安全的 PCP 连接
您可以配置 PCP 收集器和监控组件,以参与安全的 PCP 协议交换。
5.11.1. 确保 PCP 连接安全
您可以在 Performance Co-Pilot (PCP)收集器和监控组件之间建立安全连接。PCP 收集器组件是 PCP 的一部分,它从不同的源收集和提取性能数据。PCP 监控组件是 PCP 的一部分,它显示从安装了 PCP 收集器组件的主机或存档中收集来的数据。在这些组件之间建立安全连接有助于防止未授权方访问或修改正在收集和监控的数据。
所有与性能指标收集器守护进程(pmcd
)的连接都是使用基于 TCP/IP 的 PCP 协议建立的。协议代理和 PCP REST API 由 pmproxy
守护进程提供 - REST API 可通过 HTTPS 访问,以确保安全连接。
pmcd
和 pmproxy
守护进程能够在单一端口上同时进行 TLS 和非 TLS 通信。pmcd
的默认端口是 44321 ,44322 用于 pmproxy
。这意味着您不必为您的 PCP 收集器系统在 TLS 或非 TLS 通信之间进行选择,您可以同时使用它们。
5.11.2. 为 PCP 收集器组件配置安全连接
所有 PCP 收集器系统必须有有效的证书,以便参与 PCP 协议交换。
从 TLS 的角度来看,pmproxy
守护进程同时作为客户端和服务器运行。
先决条件
- 已安装 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
文件中。如果您使用其他路径,请调整该流程的对应步骤。
步骤
更新收集器系统上的 PCP TLS 配置文件,以使用 CA 发布的证书来建立安全连接:
# 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 收集器基础架构:
# systemctl restart pmcd.service # systemctl restart pmproxy.service
验证
验证 TLS 配置:
在
pmcd
服务上:# grep 'Info:' /var/log/pcp/pmcd/pmcd.log [Tue Feb 07 11:47:33] pmcd(6558) Info: OpenSSL 3.0.7 setup
在
pmproxy
服务上:# 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 配置文件:
$ 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建立安全连接:
$ export PCP_SECURE_SOCKETS=enforce $ export PCP_TLSCONF_PATH=~/.pcp/tls.conf
验证
验证安全连接是否已配置:
$ 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