4.4. metrics RHEL システムロールを使用して Performance Co-Pilot に Web フックを設定する
Performance Co-Pilot (PCP) スイートには、Performance Metrics Inference Engine (PMIE) サービスが含まれています。このサービスは、パフォーマンスルールをリアルタイムで評価します。たとえば、デフォルトのルールを使用すると、過剰なスワップアクティビティーを検出できます。
1 台のホストを、複数の PCP ノードから監視データを収集する中央 PCP 管理サイトとして設定できます。ルールが一致すると、この中央ホストは Web フックに通知を送信して他のサービスに通知します。たとえば、Web フックによって、イベントを引き起こしたホスト上の Ansible Automation Platform テンプレートまたは Playbook に対して Event-Driven Ansible を実行するようにトリガーできます。
metrics
RHEL システムロールを使用すると、Web フックに通知する中央 PCP 管理ホストの設定を自動化できます。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo
権限がある。 - 監視対象ホストへのリモートアクセス用に PCP が設定されている。
- PMIE を設定するホストが、監視する予定の PCP ノードのポート 44321 にアクセスできる。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml
) を作成します。--- - name: Monitoring performance metrics hosts: managed-node-01.example.com tasks: - name: Configure PMIE web hooks ansible.builtin.include_role: name: redhat.rhel_system_roles.metrics vars: metrics_manage_firewall: true metrics_retention_days: 7 metrics_monitored_hosts: - pcp-node-01.example.com - pcp-node-02.example.com metrics_webhook_endpoint: "https://<webserver>:<port>/<endpoint>"
サンプル Playbook で指定されている設定は次のとおりです。
metrics_retention_days: <number>
-
pmlogger_daily
systemd タイマーが古い PCP アーカイブを削除するまでの日数を設定します。 metrics_manage_firewall: <true|false>
-
firewalld
サービスで必要なポートをロールによって開くかどうかを定義します。管理対象ノード上の PCP にリモートでアクセスする場合は、この変数をtrue
に設定します。 metrics_monitored_hosts: <list_of_hosts>
- 監視するホストを指定します。
metrics_webhook_endpoint: <URL>
- Performance Metrics Inference Engine (PMIE) がパフォーマンスに関して検出された問題に関する通知を送信する Web フックエンドポイントを設定します。デフォルトでは、この問題はローカルシステムにのみ記録されます。
Playbook で使用されるすべての変数の詳細は、コントロールノードの
/usr/share/ansible/roles/rhel-system-roles.metrics/README.md
ファイルを参照してください。Playbook の構文を検証します。
$ ansible-playbook --syntax-check ~/playbook.yml
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook ~/playbook.yml
検証
managed-node-node-01.example.com
の設定概要を確認します。# ansible managed-node-01.example.com -m command -a 'pcp summary' Performance Co-Pilot configuration on managed-node-01.example.com: platform: Linux managed-node-node-01.example.com 5.14.0-427.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Feb 23 01:51:18 EST 2024 x86_64 hardware: 8 cpus, 1 disk, 1 node, 1773MB RAM timezone: CEST-2 services: pmcd pmproxy pmcd: Version 6.2.0-1, 12 agents, 6 clients pmda: root pmcd proc pmproxy xfs linux nfsclient mmv kvm jbd2 dm openmetrics pmlogger: primary logger: /var/log/pcp/pmlogger/managed-node-node-01.example.com/20240510.16.25 pcp-node-01.example.com: /var/log/pmlogger/pcp-node-01.example.com/20240510.16.25 pcp-node-02.example.com: /var/log/pmlogger/pcp-node-02.example.com/20240510.16.25 pmie: primary engine: /var/log/pcp/pmie/managed-node-node-01.example.com/pmie.log pcp-node-01.example.com: : /var/log/pcp/pmie/pcp-node-01.example.com/pmie.log pcp-node-02.example.com: : /var/log/pcp/pmie/pcp-node-02.example.com/pmie.log
最後の 3 行から、PMIE が 3 つのシステムを監視するように設定されていることを確認できます。
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.metrics/README.md
ファイル -
/usr/share/doc/rhel-system-roles/metrics/
ディレクトリー - ブログ記事 Automate performance management with Performance Co-Pilot using Event-Driven Ansible