linux-system-roles.metrics
метрики
Ansible-роль, которая настраивает службы анализа производительности для управляемого хоста. Это (по желанию) включает список удаленных систем, которые будут мониториться управляемым хостом.
Требования
Performance Co-Pilot (PCP) версии 5 и выше. Все пакеты доступны из стандартных репозиториев на Fedora, CentOS 8 и RHEL 8. На RHEL 7 и RHEL 6 вам нужно будет активировать дополнительный репозиторий/канал на управляемом хосте.
Роль может по желанию использовать Grafana версии 6+ (metrics_graph_service
) и Redis версии 5+ (metrics_query_service
) на Fedora, CentOS 8, RHEL 8 и более поздних версиях этих платформ.
Требования для коллекции
Роль требует наличие роли firewall
и роли selinux
из коллекции fedora.linux_system_roles
, если metrics_manage_firewall
и metrics_manage_selinux
установлены в true соответственно. (Пожалуйста, смотрите также переменные в разделе Переменные роли
).
Если metrics
— это роль из коллекции fedora.linux_system_roles
или из пакета RPM Fedora, требование уже выполнено.
Роль требует дополнительные коллекции для управления системами 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: ''
URL вебхука, на который будут отправляться уведомления о любых автоматически обнаруженных проблемах с производительностью. По умолчанию эти события записываются только в локальном системном журнале.
metrics_retention_days: 14
Сохранять исторические данные о производительности в течение указанного количества дней; после этого времени они будут удалены (по одному за день).
metrics_graph_service: false
Булева переменная, позволяющая настраивать хост с графическими службами. Включение этой опции запускает серверы PCP и Grafana для визуализации метрик PCP. Эта опция требует Grafana версии 6 и выше, которая доступна на Fedora, CentOS 8, RHEL 8 или более поздних версиях этих платформ.
metrics_query_service: false
Булева переменная, позволяющая настраивать хост с сервисами запросов временных рядов. Включение этой опции запускает серверы PCP и Redis для запроса записанных метрик PCP. Эта опция требует Redis версии 5 и выше, которая доступна на Fedora, CentOS 8, RHEL 8 или более поздних версиях этих платформ.
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 (redis-server для metrics_query_service) и 3000 (grafana-server для metrics_graph_service).
metrics_manage_firewall: false
Булева переменная, позволяющая настраивать брандмауэр с использованием роли брандмауэра. Управляйте портами pmcd, pmproxy, Grafana и Redis в зависимости от параметров конфигурации. Если переменная установлена в false, роль metrics
не управляет брандмауэром.
ПРИМЕЧАНИЕ: metrics_manage_firewall
ограничена добавлением портов. Она не может быть использована для удаления портов. Если вы хотите удалить порты, вам нужно будет использовать систему управления брандмауэром напрямую.
ПРИМЕЧАНИЕ: управление брандмауэром не поддерживается на RHEL 6.
metrics_manage_selinux: false
Булева переменная, позволяющая настраивать SELinux с использованием роли selinux. Назначьте порт pmcd, порт pmproxy, порт Grafana и порт Redis в зависимости от параметров конфигурации. Если переменная установлена в false, роль metrics
не управляет SELinux.
Обратите внимание, что сервисы pmcd и pmproxy находятся в "эпхемерном" диапазоне и не требуют специальной настройки, а порт Grafana "незарегистрирован". Порт Redis ограничен типом SELinux redis_port_t и может потребовать дальнейшей настройки, если вам нужен прямой доступ (это не потребуется, если вы получаете доступ через инструменты роли 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
Централизованная настройка записи метрик для нескольких удаленных хостов и масштабируемая настройка записи, анализа и визуализации метрик для локального хоста, предоставляющая сервер REST API с конечной точкой OpenMetrics, графики и масштабируемые запросы.
---
- 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
Linux system role for metric collection
ansible-galaxy install linux-system-roles.metrics