在本文中,您将了解 Performance Co-Pilot(PCP)工具,以及我们如何利用它为红帽 Ansible 自动化平台实施系统和应用监控。
什么是 Performance Co-Pilot(PCP)
PCP 是由红帽开发的开源性能监控和分析框架。该框架提供了一套工具、库和服务,用于监控、检索和分析来自不同系统、服务和应用的性能指标。PCP 的设计具有可扩展性,能够实时监控从单个服务器到大型分布式计算机网络的任何内容。
PCP 的主要特点:
- 可扩展性:PCP 可用于监控单个系统和分布式环境
- 多源数据收集:它可以从多个来源收集数据,包括操作系统(OS)、数据库、网络接口和自定义应用
- 可扩展性:可以通过开发自定义代理或扩展来添加新指标
- 存储和检索:PCP 可以存储性能数据以进行历史分析,并支持实时数据检索
- 实时监控:它提供实时指标,能够实现实时性能分析
- 图形和命令行界面:PCP 包含图形工具(如
pmchart
)和命令行工具(如pminfo、pmval 和 pmlogsummary
),用于监控和性能数据分析
典型组件:
- 性能指标收集器守护进程(PMCD):用于从代理收集指标的中央守护进程
- 性能指标命名空间(PMNS):用于组织性能指标的分层命名空间
- 性能指标推理引擎(PMIE):根据实时指标阈值生成警报或操作的工具
- PMLogger:用于记录性能指标以供日后分析
- PMProxy:充当代理协议,可使 PCP 监控客户端通过 PMProxy 连接到一个或多个 PMCD 实例
用例:
- 系统性能分析:PCP 可以监控 CPU、内存、磁盘 I/O、网络使用情况和其他系统指标
- 应用监控:PCP 可以监控特定的应用或服务,以了解它们的资源消耗情况和性能趋势
- 历史数据分析:它可以存储一段时间内的性能数据,用于进行历史趋势分析或系统故障后的取证分析
为什么要使用 PCP 监控 Ansible 自动化平台?
使用 PCP 监控 Ansible 自动化平台至关重要,原因如下:
- 性能智能分析:PCP 提供有关 Ansible 自动化平台性能的详细指标和分析见解。这有助于识别瓶颈并优化资源使用
- 主动问题检测:通过持续监控性能指标,您可以在潜在问题升级为重大问题之前检测到这些问题,从而实现主动故障排除
- 资源管理:了解资源利用率(CPU、内存、磁盘 I/O)有助于进行有效的容量规划,并确保自动化环境平稳运行,而不会出现资源争用
- 可扩展性:随着自动化需求的不断增长,监控有助于评估何时以及如何扩展 Ansible 自动化平台基础架构,确保它能够在不降低性能的情况下处理增加的工作负载
- 合规性和审计:监控工具可以提供有关自动化活动和资源使用情况的清晰审计跟踪,确保符合内部和外部法规要求
- 与其他工具集成:PCP 可以与其他监控和警报系统集成,提供基础架构的全面视图并优化事件响应
- 用户体验:对于依赖 Ansible 自动化平台进行部署和配置管理的团队而言,确保高效运行自动化任务,有助于改善整体用户体验
- 历史数据分析:PCP 会保留历史性能数据,使您能够分析一段时间内的变化趋势,这对于就未来基础架构更改或优化做出明智决策至关重要
总而言之,使用 PCP 监控 Ansible 自动化平台可以提高性能、可靠性和效率,从而确保自动化实践有效支撑企业组织目标。
使用 PCP 在 Ansible 自动化平台上设置监控
目前,Ansible 自动化平台中的监控设置支持虚拟机(VM)环境下的传统安装和容器化安装。要启用监控,您必须在 [all:vars
] 部分下的设置清单文件中,将 setup_monitoring
布尔值指定为 True
。例如:
[all:vars] setup_monitoring = True
运行安装程序时,它将执行监控角色,以在 Ansible 自动化平台集群上配置 PCP。此角色将安装并激活必要的服务,包括 pcp、pmcd
和 pmproxy
。在基于 RPM 的传统部署中,PCP 通过 DNF 安装,并通过 systemd 运行。在容器化安装中,它将与所有其他 Ansible 自动化平台组件一同在容器中运行。此外,安装程序还设置了性能指标域代理(PMDA),这是作为 pmcd
的守护进程运行的插件,用于监控 Ansible 自动化平台主机上的 nginx、redis、postgres
和 openmetrics
等关键组件。
另外,在传统安装中,安装程序将网关节点指定中央枢纽,从 Ansible 自动化平台集群中的所有节点收集 PCP 指标,以有效归档指标。
PCP 使用端口 44322 来公开指标。请确保在您的安全组中开放端口 44322(如适用)。如果该端口未开放,则这些指标仍可以在主机上使用 PCP 命令行工具进行本地分析,但任何外部工具都无法进行指标聚合。
设置完成后,您可以通过 ssh 登录到任何一个网关节点,然后运行以下命令来查看 PCP 正在收集的所有指标。
检索存档的指标
您可以使用 PCP CLI 工具从存档文件中检索指标。在传统安装中,存档可能位于 /var/log/pcp/pmlogger/
例如:
/var/log/pcp/pmlogger/controller.example.com/20241004.00.10
在容器化安装中,存档可能位于 /home/ansible/aap/pcp_archives
例如:
/home/ansible/aap/pcp_archives/controller.example.com/20241004.00.10
示例
要列出存档文件创建时启用的所有指标,请输入以下命令:
# pminfo --archive <ARCHIVE_FILE_LOCATION>
要查看存档文件涵盖的主机和时间段,请输入以下命令:
# pmdumplog -l <ARCHIVE_FILE_LOCATION>
要列出存档文件涵盖的时间段内每个分区的磁盘写入情况,请输入以下命令:
# pmval --archive <ARCHIVE_FILE_LOCATION> \ -f 1 disk.partitions.write
要以 2 秒为间隔,列出从 14:00 到 14:15 这一时间段内每个分区的磁盘写入操作,请输入以下命令:
# pmval --archive <ARCHIVE_FILE_LOCATION> \ -d -t 2sec \ -f 3 disk.partitions.write \ -S @14:00 -T @14:15
要列出 14:00 到 14:30 期间所有性能指标的平均值(包括最小值/最大值的时间和具体值),并将值以表格形式呈现:
# pmlogsummary <ARCHIVE_FILE_LOCATION> \ -HlfiImM \ -S @14:00 \ -T @14:30 \ disk.partitions.write \ mem.freemem
要从 14:00 开始,以类似于
top
工具的交互方式显示存储在归档文件中的系统指标:# pcp --archive <ARCHIVE_FILE_LOCATION> \ -S @14:00 \ atop
要点
监控 Ansible 自动化平台这一操作,对于该平台所支持的服务的可靠性、性能和安全性至关重要。它有助于实时检测和解决响应时间缓慢、服务器错误和安全漏洞等问题,最大限度地减少停机时间和对用户的潜在干扰。通过持续跟踪流量、使用量和资源消耗量等关键指标,监控可使平台以最佳效率运行。
后续步骤
- 有关详细信息,请参阅 Ansible 自动化平台文档
- 要下载并安装最新版本,请访问 Ansible 自动化平台安装指南
- 对发行说明感兴趣?访问 Ansible 自动化平台发行说明
- 如需进一步了解相关信息,请查看我们的电子书