linux-system-roles.metrics

指标

ansible-lint.yml ansible-test.yml markdownlint.yml shellcheck.yml subtree.yml tft.yml tft_citest_bad.yml woke.yml

这是一个 Ansible 角色,用于为被管理主机配置性能分析服务。可选地,它还包括将由被管理主机监视的远程系统列表。

要求

需要 Performance Co-Pilot (PCP) v5 及以上版本。所有软件包在 Fedora、CentOS 8 和 RHEL 8 的标准仓库中可用。在 RHEL 7 和 RHEL 6 上,您需要在被管理主机上启用可选的仓库/频道。

该角色可选地在 Fedora、CentOS 8、RHEL 8 及更高版本上使用 Grafana v6+(metrics_graph_service) 和 Redis v5+ (metrics_query_service)。

收集要求

如果将 metrics_manage_firewallmetrics_manage_selinux 设置为 true,则该角色需要来自 fedora.linux_system_roles 集合的 firewall 角色和 selinux 角色。(请参阅 角色变量 部分中的变量。)

如果 metrics 是来自 fedora.linux_system_roles 集合或 Fedora RPM 包的角色,则该要求已经满足。

该角色需要额外的集合以管理 rpm-ostree 系统。如果您需要管理 rpm-ostree 系统,请运行以下命令安装这些集合。

ansible-galaxy collection install -r meta/collection-requirements.yml

角色变量

metrics_monitored_hosts: []

要由被管理主机分析的远程主机列表。 这些主机会在被管理主机上记录性能指标,因此需要确保每个主机的 /var/log 下有足够的磁盘空间。

示例:

metrics_monitored_hosts: ["webserver.example.com", "database.example.com"]

metrics_webhook_endpoint: ''

需要发送自动检测到的性能问题通知的 Webhook 端点(URL)。默认情况下,这些事件仅记录到本地系统日志中。

metrics_retention_days: 14

保留历史性能数据的天数;超过此时间后将逐天移除。

metrics_graph_service: false

允许主机设置图形服务的布尔标志。启用此选项将启动 PCP 和 Grafana 服务器以可视化 PCP 指标。此选项需要在 Fedora、CentOS 8、RHEL 8 或更高版本上可用的 Grafana v6+。

metrics_query_service: false

允许主机设置时间序列查询服务的布尔标志。启用此选项将启动 PCP 和 Redis 服务器以查询记录的 PCP 指标。此选项需要在 Fedora、CentOS 8、RHEL 8 或更高版本上可用的 Redis v5+。

metrics_into_elasticsearch: false

允许将指标值导出到 Elasticsearch 的布尔标志。

metrics_from_elasticsearch: false

允许从 Elasticsearch 获取指标的布尔标志。

metrics_from_postfix: false

允许从 Postfix 获取指标的布尔标志。

metrics_from_mssql: false

允许从 SQL Server 获取指标的布尔标志。启用此标志需要与 SQL Server 进行“受信任”连接。

metrics_from_bpftrace: false

允许从 bpftrace 获取指标的布尔标志。

metrics_username: metrics

通过 PCP pmcd 守护进程建立对远程指标的认证访问的帐户。如需更多信息,请参见 https://pcp.readthedocs.io/en/latest/QG/AuthenticatedConnections.html

此外,如果配置了 bpftrace 指标,则该用户帐户将能够注册 bpftrace 脚本。

metrics_password: metrics

请勿使用明文 metrics_password。使用 Ansible Vault 加密密码。

执行动态 bpftrace 脚本时需要进行强制身份验证。

metrics_provider: pcp

用于提供指标的指标收集器。

当前仅支持 Performance Co-Pilot 作为指标提供者。使用 PCP 提供者时,将使用以下 TCP 端口 - 44321(pmcd,实时指标值采样),44322(pmproxy,使用 metrics_query_service 或 metrics_graph_service),6379(用于 metrics_query_service 的 redis-server)和 3000(用于 metrics_graph_service 的 grafana-server)。

metrics_manage_firewall: false

允许使用 firewall 角色配置防火墙的布尔标志。管理 pmcd 端口、pmproxy 端口、Grafana 端口和 Redis 端口,具体取决于配置参数。如果将此变量设置为 false,则 metrics role 不管理防火墙。

注意:metrics_manage_firewall 仅限于 添加 端口。不能用于 删除 端口。如果要删除端口,您需要直接使用防火墙系统角色。

注意:在 RHEL 6 上不支持防火墙管理。

metrics_manage_selinux: false

允许使用 selinux 角色配置 selinux 的布尔标志。根据配置参数分配 pmcd 端口、pmproxy 端口、Grafana 端口和 Redis 端口。如果将此变量设置为 false,则 metrics role 不管理 selinux。

请注意,pmcd 和 pmproxy 服务在“临时”范围内,无需特别设置,而 Grafana 端口是“未注册的”。Redis 端口由 redis_port_t SELinux 类型限制,并可能需要进一步配置,如果您需要直接访问(如果您是通过 metrics 角色工具如 Grafana 和 PCP 访问,则不需要)。使用 selinux 系统角色管理端口访问和 SELinux 上下文。

注意:metrics_manage_selinux 仅限于 添加 策略。不能用于 删除 策略。如果要删除策略,您需要直接使用 selinux 系统角色。

示例剧本

仅针对每个被管理主机的基本指标记录设置,保留一周的数据后清除。

---
- name: 管理指标服务
  hosts: all
  vars:
    metrics_retention_days: 7
  roles:
    - linux-system-roles.metrics

可扩展的指标记录、分析和可视化设置,为被管理主机提供 REST API 服务器,带有 OpenMetrics 端点、图形和可扩展查询。

---
- name: 管理带有图形和查询服务的指标
  hosts: all
  vars:
    metrics_graph_service: true
    metrics_query_service: true
  roles:
    - linux-system-roles.metrics

针对多台远程主机的集中指标记录设置,以及针对本地主机的可扩展指标记录、分析和可视化设置,提供带有 OpenMetrics 端点、图形和可扩展查询的 REST API 服务器。

---
- name: 管理集中式指标收集
  hosts: monitors
  vars:
    metrics_monitored_hosts: [app.example.com, db.example.com, nas.example.com]
    metrics_graph_service: true
    metrics_query_service: true
  roles:
    - linux-system-roles.metrics

rpm-ostree

请参见 README-ostree.md

许可证

MIT