17.2. metrics RHEL システムロールを使用して認証を使用する Performance Co-Pilot を設定する
Performance Co-Pilot (PCP) で認証を有効にすると、pmcd
サービスと Performance Metrics Domain Agent (PDMA) によって、監視ツールを実行しているユーザーにアクションの実行を許可するかどうかを決定できるようになります。認証されたユーザーは機密情報を含むメトリクスにアクセスできます。また、エージェントの中には認証が必要なものもあります。たとえば、bpftrace
エージェントは、認証を使用して、bpftrace
スクリプトをカーネルにロードしてメトリクスを生成することがユーザーに許可されているかどうかを確認します。
metrics
RHEL システムロールを使用すると、認証を使用する PCP を複数のホストにリモートで設定できます。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo
権限がある。
手順
機密性の高い変数を暗号化されたファイルに保存します。
vault を作成します。
$ ansible-vault create vault.yml New Vault password: <vault_password> Confirm New Vault password: <vault_password>
ansible-vault create
コマンドでエディターが開いたら、機密データを<key>: <value>
形式で入力します。metrics_usr: <username> metrics_pwd: <password>
- 変更を保存して、エディターを閉じます。Ansible は vault 内のデータを暗号化します。
次の内容を含む Playbook ファイル (例:
~/playbook.yml
) を作成します。--- - name: Monitoring performance metrics hosts: managed-node-01.example.com tasks: - name: Configure Performance Co-Pilot ansible.builtin.include_role: name: rhel-system-roles.metrics vars: metrics_retention_days: 14 metrics_manage_firewall: true metrics_manage_selinux: true metrics_username: "{{ metrics_usr }}" metrics_password: "{{ metrics_pwd }}"
サンプル Playbook で指定されている設定は次のとおりです。
metrics_retention_days: <number>
-
pmlogger_daily
systemd タイマーが古い PCP アーカイブを削除するまでの日数を設定します。 metrics_manage_firewall: <true|false>
-
firewalld
サービスで必要なポートをロールによって開くかどうかを定義します。管理対象ノード上の PCP にリモートでアクセスする場合は、この変数をtrue
に設定します。 metrics_username: <username>
-
このロールは、管理対象ノード上でこのユーザーをローカルに作成し、Simple Authentication and Security Layer (SASL) データベース
/etc/pcp/passwd.db
に認証情報を追加し、PCP に認証を設定します。さらに、Playbook でmetrics_from_bpftrace: true
を設定すると、PCP がこのアカウントを使用してbpftrace
スクリプトを登録します。
Playbook で使用されるすべての変数の詳細は、コントロールノードの
/usr/share/ansible/roles/rhel-system-roles.metrics/README.md
ファイルを参照してください。Playbook の構文を検証します。
$ ansible-playbook --ask-vault-pass --syntax-check ~/playbook.yml
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook --ask-vault-pass ~/playbook.yml
検証
pcp
パッケージがインストールされているホストで、認証を必要とするメトリクスをクエリーします。Playbook で使用した認証情報を使用してメトリクスをクエリーします。
# pminfo -fmdt -h pcp://managed-node-01.example.com?username=<user> proc.fd.count Password: <password> proc.fd.count inst [844 or "000844 /var/lib/pcp/pmdas/proc/pmdaproc"] value 5
コマンドが成功すると、
proc.fd.count
メトリクスの値が返されます。ユーザー名を省略してコマンドを再度実行し、認証されていないユーザーの場合はコマンドが失敗することを確認します。
# pminfo -fmdt -h pcp://managed-node-01.example.com proc.fd.count proc.fd.count Error: No permission to perform requested operation
次のステップ
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.metrics/README.md
ファイル -
/usr/share/doc/rhel-system-roles/metrics/
ディレクトリー - Ansible vault