订阅 RSS 源

在本文中,您将了解 Performance Co-Pilot(PCP)工具,以及我们如何利用它为红帽 Ansible 自动化平台实施系统和应用监控。

什么是 Performance Co-Pilot(PCP)

PCP 是由红帽开发的开源性能监控和分析框架。该框架提供了一套工具、库和服务,用于监控、检索和分析来自不同系统、服务和应用的性能指标。PCP 的设计具有可扩展性,能够实时监控从单个服务器到大型分布式计算机网络的任何内容。

PCP 的主要特点:

  1. 可扩展性:PCP 可用于监控单个系统和分布式环境
  2. 多源数据收集:它可以从多个来源收集数据,包括操作系统(OS)、数据库、网络接口和自定义应用
  3. 可扩展性:可以通过开发自定义代理或扩展来添加新指标
  4. 存储和检索:PCP 可以存储性能数据以进行历史分析,并支持实时数据检索
  5. 实时监控:它提供实时指标,能够实现实时性能分析
  6. 图形和命令行界面:PCP 包含图形工具(如 pmchart)和命令行工具(如 pminfo、pmval 和 pmlogsummary),用于监控和性能数据分析

典型组件:

  • 性能指标收集器守护进程(PMCD):用于从代理收集指标的中央守护进程
  • 性能指标命名空间(PMNS):用于组织性能指标的分层命名空间
  • 性能指标推理引擎(PMIE):根据实时指标阈值生成警报或操作的工具
  • PMLogger:用于记录性能指标以供日后分析
  • PMProxy:充当代理协议,可使 PCP 监控客户端通过 PMProxy 连接到一个或多个 PMCD 实例

用例:

  • 系统性能分析:PCP 可以监控 CPU、内存、磁盘 I/O、网络使用情况和其他系统指标
  • 应用监控:PCP 可以监控特定的应用或服务,以了解它们的资源消耗情况和性能趋势
  • 历史数据分析:它可以存储一段时间内的性能数据,用于进行历史趋势分析或系统故障后的取证分析

为什么要使用 PCP 监控 Ansible 自动化平台?

使用 PCP 监控 Ansible 自动化平台至关重要,原因如下:

  1. 性能智能分析:PCP 提供有关 Ansible 自动化平台性能的详细指标和分析见解。这有助于识别瓶颈并优化资源使用
  2. 主动问题检测:通过持续监控性能指标,您可以在潜在问题升级为重大问题之前检测到这些问题,从而实现主动故障排除
  3. 资源管理:了解资源利用率(CPU、内存、磁盘 I/O)有助于进行有效的容量规划,并确保自动化环境平稳运行,而不会出现资源争用
  4. 可扩展性:随着自动化需求的不断增长,监控有助于评估何时以及如何扩展 Ansible 自动化平台基础架构,确保它能够在不降低性能的情况下处理增加的工作负载
  5. 合规性和审计:监控工具可以提供有关自动化活动和资源使用情况的清晰审计跟踪,确保符合内部和外部法规要求
  6. 与其他工具集成:PCP 可以与其他监控和警报系统集成,提供基础架构的全面视图并优化事件响应
  7. 用户体验:对于依赖 Ansible 自动化平台进行部署和配置管理的团队而言,确保高效运行自动化任务,有助于改善整体用户体验
  8. 历史数据分析:PCP 会保留历史性能数据,使您能够分析一段时间内的变化趋势,这对于就未来基础架构更改或优化做出明智决策至关重要

总而言之,使用 PCP 监控 Ansible 自动化平台可以提高性能、可靠性和效率,从而确保自动化实践有效支撑企业组织目标。

使用 PCP 在 Ansible 自动化平台上设置监控

目前,Ansible 自动化平台中的监控设置支持虚拟机(VM)环境下的传统安装和容器化安装。要启用监控,您必须在 [all:vars] 部分下的设置清单文件中,将 setup_monitoring 布尔值指定为 True。例如:

[all:vars]
setup_monitoring = True 

运行安装程序时,它将执行监控角色,以在 Ansible 自动化平台集群上配置 PCP。此角色将安装并激活必要的服务,包括 pcp、pmcdpmproxy。在基于 RPM 的传统部署中,PCP 通过 DNF 安装,并通过 systemd 运行。在容器化安装中,它将与所有其他 Ansible 自动化平台组件一同在容器中运行。此外,安装程序还设置了性能指标域代理(PMDA),这是作为 pmcd 的守护进程运行的插件,用于监控 Ansible 自动化平台主机上的 nginx、redis、postgresopenmetrics 等关键组件。

另外,在传统安装中,安装程序将网关节点指定中央枢纽,从 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 自动化平台这一操作,对于该平台所支持的服务的可靠性、性能和安全性至关重要。它有助于实时检测和解决响应时间缓慢、服务器错误和安全漏洞等问题,最大限度地减少停机时间和对用户的潜在干扰。通过持续跟踪流量、使用量和资源消耗量等关键指标,监控可使平台以最佳效率运行。

后续步骤

product trial

红帽 Ansible 自动化平台 | 产品试用

无代理的自动化平台。

关于作者

Nikhil Jain is a Principal Software Engineer with Red Hat’s Performance and Scale Engineering team who focuses on the testing, analysis and improvement of Red Hat Ansible Automation Platform products and services.
Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

按频道浏览

automation icon

自动化

有关技术、团队和环境 IT 自动化的最新信息

AI icon

人工智能

平台更新使客户可以在任何地方运行人工智能工作负载

open hybrid cloud icon

开放混合云

了解我们如何利用混合云构建更灵活的未来

security icon

安全防护

有关我们如何跨环境和技术减少风险的最新信息

edge icon

边缘计算

简化边缘运维的平台更新

Infrastructure icon

基础架构

全球领先企业 Linux 平台的最新动态

application development icon

应用领域

我们针对最严峻的应用挑战的解决方案

Virtualization icon

虚拟化

适用于您的本地或跨云工作负载的企业虚拟化的未来