18.3. 使用 metrics RHEL 系统角色设置 Grafana,以监控具有 Performance Co-Pilot 的多个主机


如果您已在多个主机上配置了 Performance Co-Pilot (PCP),您可以使用 Grafana 的一个实例来视觉化这些主机的指标。您可以显示实时数据,如果 PCP 数据存储在 Redis 数据库中,也可以显示过去的数据。

通过使用 metrics RHEL 系统角色,您可以自动化设置 Grafana、PCP 插件、可选 Redis 数据库以及配置数据源的过程。

注意

如果您使用 metrics 角色在主机上安装 Grafana,则角色也会在这个主机上安装 PCP。

先决条件

流程

  1. 将您的敏感变量存储在一个加密文件中:

    1. 创建 vault :

      $ ansible-vault create vault.yml
      New Vault password: <vault_password>
      Confirm New Vault password: <vault_password>
    2. ansible-vault create 命令打开编辑器后,以 <key>: <value> 格式输入敏感数据:

      grafana_admin_pwd: <password>
    3. 保存更改,并关闭编辑器。Ansible 加密 vault 中的数据。
  2. 创建一个包含以下内容的 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 VectorPCP RedisPCP 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 文件。

  3. 验证 playbook 语法:

    $ ansible-playbook --ask-vault-pass --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  4. 运行 playbook:

    $ ansible-playbook --ask-vault-pass ~/playbook.yml

验证

  1. 在您的浏览器中打开 http://<grafana_server_IP_or_hostname>:3000,并使用您在流程中设置的密码,以 admin 用户身份登录。
  2. 显示监控数据:

    • 要显示实时数据:

      1. Menu Apps Performance Co-Pilot PCP Vector Checklist
      2. 默认情况下,图形显示运行 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
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.