17.3. Performance Co-Pilot で複数のホストを監視するために metrics RHEL システムロールを使用して Grafana を設定する
複数のホストに Performance Co-Pilot (PCP) をすでに設定している場合は、Grafana のインスタンスを使用して、これらのホストのメトリクスを視覚化できます。ライブデータを表示できます。PCP データが Redis データベースに保存されている場合は、過去のデータも表示できます。
metrics
RHEL システムロールを使用すると、Grafana、PCP プラグイン、オプションの Redis データベース、およびデータソースの設定のセットアッププロセスを自動化できます。
metrics
ロールを使用してホストに Grafana をインストールすると、ロールによってこのホストに PCP も自動的にインストールされます。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo
権限がある。 - 監視対象ホストへのリモートアクセス用に PCP が設定されている。
- Grafana をインストールするホストが、監視する予定の PCP ノードのポート 44321 にアクセスできる。
手順
機密性の高い変数を暗号化されたファイルに保存します。
vault を作成します。
$ ansible-vault create vault.yml New Vault password: <vault_password> Confirm New Vault password: <vault_password>
ansible-vault create
コマンドでエディターが開いたら、機密データを<key>: <value>
形式で入力します。grafana_admin_pwd: <password>
- 変更を保存して、エディターを閉じます。Ansible は vault 内のデータを暗号化します。
次の内容を含む Playbook ファイル (例:
~/playbook.yml
) を作成します。--- - name: Monitoring performance metrics hosts: managed-node-01.example.com vars_files: - vault.yml tasks: - name: Set up Grafana to monitor multiple hosts ansible.builtin.include_role: name: rhel-system-roles.metrics vars: metrics_graph_service: true metrics_query_service: true metrics_monitored_hosts: - <pcp_host_1.example.com> - <pcp_host_2.example.com> metrics_manage_firewall: true metrics_manage_selinux: true - name: Set Grafana admin password ansible.builtin.shell: cmd: grafana-cli admin reset-admin-password "{{ grafana_admin_pwd }}"
サンプル Playbook で指定されている設定は次のとおりです。
metrics_graph_service: true
-
Grafana と PCP プラグインをインストールします。さらに、
PCP Vector
、PCP Redis
、およびPCP bpftrace
データソースが Grafana に追加されます。 metrics_query_service: <true|false>
- ロールによって、一元的なメトリクス記録用に Redis をインストールして設定する必要があるかどうかを定義します。有効にすると、PCP クライアントから収集されたデータが Redis に保存され、ライブデータだけでなく履歴データも表示できるようになります。
metrics_monitored_hosts: <list_of_hosts>
- 監視するホストのリストを定義します。定義すると、Grafana で、これらのホストのデータに加えて、Grafana を実行しているホストのデータを表示できます。
metrics_manage_firewall: <true|false>
-
firewalld
サービスで必要なポートをロールによって開くかどうかを定義します。この変数をtrue
に設定すると、たとえば Grafana にリモートでアクセスできるようになります。
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
検証
-
ブラウザーで
http://<grafana_server_IP_or_hostname>:3000
を開き、上記手順で設定したパスワードを使用してadmin
ユーザーとしてログインします。 監視データを表示します。
ライブデータを表示するには、次の手順を実行します。
-
左側のナビゲーションバーにある
Performance Co-Pilot
アイコンをクリックし、PCP Vector Checklist
を選択します。 -
デフォルトでは、Grafana を実行しているホストからのメトリクスがグラフに表示されます。別のホストに切り替えるには、
hostspec
フィールドにホスト名を入力して Enter キー を押します。
-
左側のナビゲーションバーにある
-
Redis データベースに保存されている履歴データを表示するには、PCP Redis データソースを使用してパネルを作成 します。そのためには、Playbook で
metrics_query_service: true
を設定する必要があります。
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.metrics/README.md
ファイル -
/usr/share/doc/rhel-system-roles/metrics/
ディレクトリー - Ansible vault