linux-system-roles.metrics

Métricas

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

Un rol de ansible que configura servicios de análisis de rendimiento para el host gestionado. Esto incluye opcionalmente una lista de sistemas remotos que serán monitoreados por el host gestionado.

Requisitos

Performance Co-Pilot (PCP) v5+. Todos los paquetes están disponibles en los repositorios estándar de Fedora, CentOS 8 y RHEL 8. En RHEL 7 y RHEL 6, necesitarás habilitar el repositorio/canal opcional en el host gestionado.

El rol puede usar opcionalmente Grafana v6+ (metrics_graph_service) y Redis v5+ (metrics_query_service) en Fedora, CentOS 8, RHEL 8 y versiones posteriores.

Requisitos de colecciones

El rol requiere el rol firewall y el rol selinux de la colección fedora.linux_system_roles, si metrics_manage_firewall y metrics_manage_selinux están configurados como verdaderos, respectivamente. (Por favor revisa también las variables en la sección de Variables del rol).

Si metrics es un rol de la colección fedora.linux_system_roles o del paquete RPM de Fedora, el requisito ya está satisfecho.

El rol requiere colecciones adicionales para gestionar sistemas rpm-ostree. Si necesitas gestionar sistemas rpm-ostree, ejecuta el siguiente comando para instalar las colecciones.

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

Variables del rol

metrics_monitored_hosts: []

Lista de hosts remotos a ser analizados por el host gestionado. Estos hosts tendrán métricas registradas en el host gestionado, así que se debe tener cuidado de asegurar que haya suficiente espacio en disco bajo /var/log para cada host.

Ejemplo:

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

metrics_webhook_endpoint: ''

Punto final de webhook (URL) donde se enviarán notificaciones sobre cualquier problema de rendimiento detectado automáticamente. Por defecto, estos eventos se registran solo en el registro del sistema local.

metrics_retention_days: 14

Mantener datos de rendimiento históricos por el número especificado de días; después de este tiempo se eliminarán (día a día).

metrics_graph_service: false

Bandera booleana que permite configurar el host con servicios de gráficos. Activar esto inicia servidores PCP y Grafana para visualizar métricas de PCP. Esta opción requiere Grafana v6+, que está disponible en Fedora, CentOS 8, RHEL 8 o versiones posteriores de estas plataformas.

metrics_query_service: false

Bandera booleana que permite configurar el host con servicios de consulta de series de tiempo. Activar esto inicia servidores PCP y Redis para consultar métricas de PCP registradas. Esta opción requiere Redis v5+, que está disponible en Fedora, CentOS 8, RHEL 8 o versiones posteriores de estas plataformas.

metrics_into_elasticsearch: false

Bandera booleana que permite que los valores de métricas sean exportados a Elasticsearch.

metrics_from_elasticsearch: false

Bandera booleana que permite que las métricas de Elasticsearch estén disponibles.

metrics_from_postfix: false

Bandera booleana que permite que las métricas de Postfix estén disponibles.

metrics_from_mssql: false

Bandera booleana que permite que las métricas de SQL Server estén disponibles. Activar esta bandera requiere una conexión 'confiable' a SQL Server.

metrics_from_bpftrace: false

Bandera booleana que permite que las métricas de bpftrace estén disponibles.

metrics_username: metrics

Una cuenta para establecer acceso autenticado a métricas remotas a través del demonio PCP pmcd. Para más información, ver https://pcp.readthedocs.io/en/latest/QG/AuthenticatedConnections.html.

Además, si las métricas de bpftrace están configuradas, esta cuenta de usuario podrá registrar scripts de bpftrace.

metrics_password: metrics

No uses una metrics_password en texto claro. Usa Ansible Vault para encriptar la contraseña.

Autenticación obligatoria para ejecutar scripts dinámicos de bpftrace.

metrics_provider: pcp

El colector de métricas a usar para proporcionar métricas.

Actualmente, Performance Co-Pilot es el único proveedor de métricas soportado. Al usar el proveedor PCP, se utilizarán estos puertos TCP: 44321 (pmcd, muestreo de valores de métricas en vivo), 44322 (pmproxy, con metrics_query_service o metrics_graph_service), 6379 (redis-server para metrics_query_service) y 3000 (grafana-server para metrics_graph_service).

metrics_manage_firewall: false

Bandera booleana que permite configurar el firewall usando el rol de firewall. Gestiona el puerto pmcd, el puerto pmproxy, el puerto de Grafana y el puerto de Redis según los parámetros de configuración. Si la variable está configurada como falsa, el rol metrics no gestiona el firewall.

NOTA: metrics_manage_firewall está limitado a agregar puertos. No puede ser usado para eliminar puertos. Si deseas eliminar puertos, necesitarás usar el rol de sistema de firewall directamente.

NOTA: la gestión del firewall no es soportada en RHEL 6.

metrics_manage_selinux: false

Bandera booleana que permite configurar selinux usando el rol de selinux. Asigna el puerto pmcd, el puerto pmproxy, el puerto de Grafana y el puerto de Redis según los parámetros de configuración. Si la variable está configurada como falsa, el rol metrics no gestiona el selinux.

Ten en cuenta que los servicios pmcd y pmproxy están en el rango "ephemeral", sin requerir configuración especial, y el puerto de Grafana está "no registrado". El puerto de Redis está restringido por el tipo SELinux redis_port_t y puede necesitar más configuración si requieres acceso directo (no es necesario si estás accediendo desde herramientas del rol de métricas como Grafana y PCP). Usa el rol de sistema selinux para gestionar el acceso a puertos, según los contextos de SELinux.

NOTA: metrics_manage_selinux está limitado a agregar políticas. No puede ser usado para eliminar políticas. Si deseas eliminar políticas, necesitarás usar el rol de sistema de selinux directamente.

Ejemplo de Playbook

Configuración básica de registro de métricas para cada host gestionado, con una semana de datos retenidos antes de eliminar.

---
- name: Gestionar servicio de métricas
  hosts: all
  vars:
    metrics_retention_days: 7
  roles:
    - linux-system-roles.metrics

Configuración escalable de registro de métricas, análisis y visualización para los hosts gestionados, proporcionando un servidor REST API con un punto final OpenMetrics, gráficos y consulta escalable.

---
- name: Gestionar métricas con servicios de gráficos y consultas
  hosts: all
  vars:
    metrics_graph_service: true
    metrics_query_service: true
  roles:
    - linux-system-roles.metrics

Configuración centralizada de registro de métricas para varios hosts remotos y configuración escalable de registro de métricas, análisis y visualización para el host local, proporcionando un servidor REST API con un punto final OpenMetrics, gráficos y consulta escalable.

---
- name: Gestionar recopilación centralizada de métricas
  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

Consulta README-ostree.md

Licencia

MIT