18.3. 使用 metrics RHEL 系统角色设置 Grafana,以监控具有 Performance Co-Pilot 的多个主机
如果您已在多个主机上配置了 Performance Co-Pilot (PCP),您可以使用 Grafana 的一个实例来视觉化这些主机的指标。您可以显示实时数据,如果 PCP 数据存储在 Redis 数据库中,也可以显示过去的数据。
通过使用 metrics
RHEL 系统角色,您可以自动化设置 Grafana、PCP 插件、可选 Redis 数据库以及配置数据源的过程。
如果您使用 metrics
角色在主机上安装 Grafana,则角色也会在这个主机上安装 PCP。
先决条件
- 您已准备好控制节点和受管节点。
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户具有
sudo
权限。 - 为远程访问您要监控的主机配置了 PCP 。
- 您要安装 Grafana 的主机可以访问您要监控的 PCP 节点上的端口 44321。
流程
将您的敏感变量存储在一个加密文件中:
创建 vault :
$ ansible-vault create vault.yml New Vault password: <vault_password> Confirm New Vault password: <vault_password>
在
ansible-vault create
命令打开编辑器后,以<key>: <value>
格式输入敏感数据:grafana_admin_pwd: <password>
- 保存更改,并关闭编辑器。Ansible 加密 vault 中的数据。
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml
:--- - name: Monitoring performance metrics hosts: managed-node-01.example.com vars_files: - vault.yml tasks: - name: Set up Grafana to monitor multiple hosts ansible.builtin.include_role: name: rhel-system-roles.metrics vars: metrics_graph_service: true metrics_query_service: true metrics_monitored_hosts: - <pcp_host_1.example.com> - <pcp_host_2.example.com> metrics_manage_firewall: true metrics_manage_selinux: true - name: Set Grafana admin password ansible.builtin.shell: cmd: grafana-cli admin reset-admin-password "{{ grafana_admin_pwd }}"
示例 playbook 中指定的设置包括以下内容:
metrics_graph_service: true
-
安装 Grafana 和 PCP 插件。另外,该角色在 Grafana 中添加了
PCP Vector
、PCP Redis
和PCP bpftrace
数据源。 metrics_query_service: <true|false>
- 定义角色是否应该为集中式指标记录安装和配置 Redis 。如果启用了,从 PCP 客户端收集的数据存储在 Redis 中,因此您还可以显示历史数据,而不是只显示实时数据。
metrics_monitored_hosts: <list_of_hosts>
- 定义要监控的主机的列表。在 Grafana 中,您可以显示这些主机的数据,以及运行 Grafana 的主机。
metrics_manage_firewall: <true|false>
-
定义角色是否应该在
firewalld
服务中打开所需的端口。如果将此变量设置为true
,则您可以远程访问 Grafana。
有关 playbook 中使用的所有变量的详情,请查看控制节点上的
/usr/share/ansible/roles/rhel-system-roles.metrics/README.md
文件。验证 playbook 语法:
$ ansible-playbook --ask-vault-pass --syntax-check ~/playbook.yml
请注意,这个命令只验证语法,不会防止错误但有效的配置。
运行 playbook:
$ ansible-playbook --ask-vault-pass ~/playbook.yml
验证
-
在您的浏览器中打开
http://<grafana_server_IP_or_hostname>:3000
,并使用您在流程中设置的密码,以admin
用户身份登录。 显示监控数据:
要显示实时数据:
-
点
-
默认情况下,图形显示运行 Grafana 的主机的指标。要切换到其他主机,请在
hostspec
字段中输入主机名,然后按 Enter 键。
-
点
-
要显示存储在 Redis 数据库中的历史数据:创建一个带有 PCP Redis 数据源的面板。这要求您在 playbook 中设置
metrics_query_service: true
。
其他资源
-
/usr/share/ansible/roles/rhel-system-roles.metrics/README.md
文件 -
/usr/share/doc/rhel-system-roles/metrics/
目录 - Ansible vault