18.4. 使用 metrics RHEL 系统角色在 Performance Co-Pilot 中配置 web hook
Performance Co-Pilot (PCP)套件包含性能指标推理引擎(PMIE)服务。此服务实时评估性能规则。例如,您可以使用默认规则来检测过量的交换活动。
您可以将主机配置为一个从多个 PCP 节点收集监控数据的中央 PCP 管理站点。如果规则匹配,此中央主机会向 Web hook 发送一个通知,以通知其他服务。例如,web hook 可以触发事件驱动的 Ansible 在导致事件的主机上的 Ansible Automation Platform 模板或 playbook 上运行。
通过使用 metrics
RHEL 系统角色,您可以自动化配置通知 web hook 的中央 PCP 管理主机。
先决条件
- 您已准备好控制节点和受管节点。
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户具有
sudo
权限。 - 为远程访问您要监控的主机配置了 PCP 。
- 您要配置 PMIE 的主机可以访问您要监控的 PCP 节点上的端口 44321。
流程
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml
:--- - name: Monitoring performance metrics hosts: managed-node-01.example.com tasks: - name: Configure PMIE web hooks ansible.builtin.include_role: name: redhat.rhel_system_roles.metrics vars: metrics_manage_firewall: true metrics_retention_days: 7 metrics_monitored_hosts: - pcp-node-01.example.com - pcp-node-02.example.com metrics_webhook_endpoint: "https://<webserver>:<port>/<endpoint>"
示例 playbook 中指定的设置包括以下内容:
metrics_retention_days: <number>
-
设置多少天后
pmlogger_daily
systemd 计时器删除旧的 PCP 归档。 metrics_manage_firewall: <true|false>
-
定义角色是否应该在
firewalld
服务中打开所需的端口。如果要远程访问受管节点上的 PCP,请将此变量设置为true
。 metrics_monitored_hosts: <list_of_hosts>
- 指定要观察的主机。
metrics_webhook_endpoint: <URL>
- 设置性能指标推理引擎(PMIE)向其发送有关检测到的性能问题的通知的 web hook 端点。默认情况下,这些问题只记录到本地系统。
有关 playbook 中使用的所有变量的详情,请查看控制节点上的
/usr/share/ansible/roles/rhel-system-roles.metrics/README.md
文件。验证 playbook 语法:
$ ansible-playbook --syntax-check ~/playbook.yml
请注意,这个命令只验证语法,不会防止错误但有效的配置。
运行 playbook:
$ ansible-playbook ~/playbook.yml
验证
检查关于
managed-node-node-01.example.com
的配置概述:# ansible managed-node-01.example.com -m command -a 'pcp summary' Performance Co-Pilot configuration on managed-node-01.example.com: platform: Linux managed-node-node-01.example.com 5.14.0-427.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Feb 23 01:51:18 EST 2024 x86_64 hardware: 8 cpus, 1 disk, 1 node, 1773MB RAM timezone: CEST-2 services: pmcd pmproxy pmcd: Version 6.2.0-1, 12 agents, 6 clients pmda: root pmcd proc pmproxy xfs linux nfsclient mmv kvm jbd2 dm openmetrics pmlogger: primary logger: /var/log/pcp/pmlogger/managed-node-node-01.example.com/20240510.16.25 pcp-node-01.example.com: /var/log/pmlogger/pcp-node-01.example.com/20240510.16.25 pcp-node-02.example.com: /var/log/pmlogger/pcp-node-02.example.com/20240510.16.25 pmie: primary engine: /var/log/pcp/pmie/managed-node-node-01.example.com/pmie.log pcp-node-01.example.com: : /var/log/pcp/pmie/pcp-node-01.example.com/pmie.log pcp-node-02.example.com: : /var/log/pcp/pmie/pcp-node-02.example.com/pmie.log
最后三行确认是否 PMIE 被配置为监控三个系统。
其他资源
-
/usr/share/ansible/roles/rhel-system-roles.metrics/README.md
文件 -
/usr/share/doc/rhel-system-roles/metrics/
目录 - 使用事件驱动的 Ansible 自动化 Performance Co-Pilot 的性能管理 博客文章