第8章 Red Hat Ceph Storage Dashboard のオーバークラウドデプロイメントへの追加

Red Hat Ceph Storage Dashboard はデフォルトで無効になっていますが、Red Hat OpenStack Platform director を使用してオーバークラウドで有効にすることができます。Ceph Dashboard は組み込みの Web ベースの Ceph 管理および監視アプリケーションであり、クラスター内のさまざまな側面およびオブジェクトを管理します。Red Hat Ceph Storage Dashboard は、以下のコンポーネントで構成されています。

  • Ceph Dashboard Manager モジュール: ユーザーインターフェースを提供し、プラットフォームフロントエンド Grafana が組み込まれています。
  • Prometheus: モニタリングプラグイン
  • Alertmanager: アラートを Dashboard に送信します。
  • Node Exporters: クラスターデータを Dashboard にエクスポートします。
注記
この機能は、Ceph Storage 4.1 以降でサポートされます。システムにインストールされている Ceph Storage のバージョンを確認する方法についての詳細は、「What are the Red Hat Ceph Storage releases and corresponding Ceph package versions?」を参照してください。
注記
Red Hat Ceph Storage Dashboard は、常に他の Ceph Manager コンポーネントと同じノード上に配置されます。
注記
オーバークラウドの初回のデプロイメント時に Ceph Dashboard を追加する場合は、本章の手順を実施してから、「オーバークラウドデプロイメントの開始」で初期オーバークラウドをデプロイします。

以下の図は、Red Hat OpenStack Platform 上の Ceph Dashboard のアーキテクチャーを示しています。

Ceph Dashboard on Red Hat OpenStack Platform

Dashboard およびその機能と制限についての詳細は、『Red Hat Ceph Storage Dashboard Guide』「Dashboard features」を参照してください。

Ceph Dashboard における TLS everywhere

Dashboard フロントエンドは、TLS everywhere フレームワークと完全に統合されています。必要な環境ファイルがあり、そのファイルが overcloud deploy コマンドに含まれている場合は、TLS everywhere を有効にすることができます。これにより、Grafana と Ceph Dashboard の両方の証明書要求がトリガーされ、生成された証明書とキーファイルがオーバークラウドのデプロイメント時に ceph-ansible に渡されます。Dashboard およびその他の openstack サービス向けに TLS を有効にする方法についての説明および詳細は、『オーバークラウドの高度なカスタマイズ』ガイドの以下の章を参照してください。

8.1. Ceph Dashboard に必要なコンテナーの追加

Ceph Dashboard テンプレートをオーバークラウドに追加する前に、containers-prepare-parameter.yaml ファイルを使用して必要なコンテナーを追加する必要があります。コンテナーイメージを準備するために containers-prepare-parameter.yaml ファイルを生成するには、以下の手順を実行します。

手順

  1. アンダークラウドホストに stack ユーザーとしてログインします。
  2. デフォルトのコンテナーイメージ準備ファイルを生成します。

    $ openstack tripleo container image prepare default \
      --local-push-destination \
      --output-env-file containers-prepare-parameter.yaml
  3. containers-prepare-parameter.yaml ファイルを編集し、要件に合わせて変更を加えます。以下の containers-prepare-parameter.yaml ファイルのサンプルには、Grafana、Prometheus、Alertmanager、および Node Exporter などの Dashboard サービスに関連するイメージの場所およびタグが含まれます。特定のシナリオに応じて値を編集します。

    parameter_defaults:
        ContainerImagePrepare:
        - push_destination: true
            set:
                ceph_alertmanager_image: ose-prometheus-alertmanager
                ceph_alertmanager_namespace: registry.redhat.io/openshift4
                ceph_alertmanager_tag: v4.1
                ceph_grafana_image: rhceph-4-dashboard-rhel8
                ceph_grafana_namespace: registry.redhat.io/rhceph
                ceph_grafana_tag: 4
                ceph_image: rhceph-4-rhel8
                ceph_namespace: registry.redhat.io/rhceph
                ceph_node_exporter_image: ose-prometheus-node-exporter
                ceph_node_exporter_namespace: registry.redhat.io/openshift4
                ceph_node_exporter_tag: v4.1
                ceph_prometheus_image: ose-prometheus
                ceph_prometheus_namespace: registry.redhat.io/openshift4
                ceph_prometheus_tag: v4.1
                ceph_tag: latest

containers-prepare-parameter.yaml ファイルを使用したレジストリーおよびイメージ設定についての詳細は、『Transitioning to Containerized Services』ガイドの「Container image preparation parameters」を参照してください。

8.2. Ceph Dashboard のデプロイ

注記
コンポーザブルネットワークを使用して Ceph Dashboard をデプロイする場合は、「コンポーザブルネットワークを使用した Ceph Dashboard のデプロイ」を参照してください。
注記
Ceph Dashboard の管理ユーザーロールは、デフォルトで読み取り専用モードに設定されています。Ceph Dashboard のデフォルトの管理モードを変更するには、「デフォルト権限の変更」を参照してください。

手順

  1. アンダークラウドノードに stack ユーザーとしてログインします。
  2. openstack overcloud deploy コマンドに、デプロイメントに含まれるすべての環境ファイルと共に以下の環境ファイルを追加します。

    $ openstack overcloud deploy \
     --templates \
     -e <overcloud_environment_files> \
     -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
     -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-dashboard.yaml

    <overcloud_environment_files> をデプロイメントに含まれる環境ファイルの一覧に置き換えます。

    結果
    これにより、デプロイメントは grafana、prometheus、alertmanager、および node-exporter コンテナーが含まれる外部スタックを構成します。Ceph Dashboard Manager モジュールは、このスタックのバックエンドで、grafana レイアウトを組み込むことで、Ceph クラスター固有のメトリックをエンドユーザーに提供します。

8.3. コンポーザブルネットワークを使用した Ceph Dashboard のデプロイ

デフォルトのプロビジョニングネットワークではなく、コンポーザブルネットワークに Ceph Dashboard をデプロイすることができます。これにより、プロビジョニングネットワークに Ceph Dashboard サービスを公開する必要がなくなります。Dashboard をコンポーザブルネットワークにデプロイする際に、別個の承認プロファイルを実装することもできます。

最初にオーバークラウドをデプロイする場合にのみ Dashboard を新規ネットワークに適用することができるので、デプロイ前に使用するネットワークを選択する必要があります。Dashboard を既存の外部ネットワークに適用することや、プロビジョニングネットワーク以外の既存のネットワークのいずれかを再利用することはできません。デプロイ前にコンポーザブルネットワークを選択するには、以下の手順を使用します。

手順

  1. アンダークラウドに stack ユーザーとしてログインします。
  2. Controller 固有のロールを生成して、Dashboard コンポーザブルネットワークを追加します。

    $ openstack overcloud roles generate -o /home/stack/roles_data_dashboard.yaml ControllerStorageDashboard Compute BlockStorage ObjectStorage CephStorage
    結果
    • 新しい ControllerStorageDashboard ロールは、コマンドの出力として定義される roles_data.yaml 内に生成されます。overcloud deploy コマンドを使用する場合には、このファイルをテンプレート一覧に含める必要があります。

      注記: ControllerStorageDashboard ロールには CephNFSnetwork_date_dashboard.yaml は含まれません。

    • director は、コンポーザブルネットワークを定義するネットワーク環境ファイルを提供します。このファイルのデフォルトの場所は /usr/share/openstack-tripleo-heat-templates/network_data_dashboard.yaml です。overcloud deploy コマンドを使用する場合には、このファイルをオーバークラウドのテンプレート一覧に含める必要があります。
  3. openstack overcloud deploy コマンドに、デプロイメントに含まれるすべての環境ファイルと共に以下の環境ファイルを追加します。

    $ openstack overcloud deploy \
      --templates \
      -r /home/stack/roles_data.yaml \
      -n /usr/share/openstack-tripleo-heat-templates/network_data_dashboard.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/environments/network-environment.yaml \
      -e <overcloud_environment_files> \
      -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-dashboard.yaml

    <overcloud_environment_files> をデプロイメントに含まれる環境ファイルの一覧に置き換えます。

    結果
    これにより、デプロイメントは grafana、prometheus、alertmanager、および node-exporter コンテナーが含まれる外部スタックを構成します。Ceph Dashboard Manager モジュールは、このスタックのバックエンドで、grafana レイアウトを組み込むことで、Ceph クラスター固有のメトリックをエンドユーザーに提供します。

8.4. デフォルト権限の変更

Ceph クラスターの安全な監視用に、Ceph Dashboard の管理ユーザーロールはデフォルトで読み取り専用モードに設定されます。管理ユーザーが Dashboard を使用して Ceph クラスターの要素を変更できるよう管理者権限を昇格させるには、CephDashboardAdminRO パラメーターを使用してデフォルトの管理者権限を変更します。

警告
完全な権限を持つユーザーは、director が設定するクラスターの要素を変更する可能性があります。これは、スタックの更新の実行時に、director が設定したオプションと競合する可能性があります。この問題を回避するには、Ceph Dashboard で director の設定オプション (Ceph OSP プール属性など) を変更しないでください。

手順

  1. アンダークラウドに stack ユーザーとしてログインします。
  2. 以下の ceph_dashboard_admin.yaml 環境ファイルを作成します。

      parameter_defaults:
         CephDashboardAdminRO: false
  3. overcloud deploy コマンドを実行して、既存のスタックを更新し、既存のデプロイメントに含まれるその他すべての環境ファイルと共に作成した環境ファイルを追加します。

    $ openstack overcloud deploy \
    --templates \
    -e <existing_overcloud_environment_files> \
    -e ceph_dashboard_admin.yml

    <existing_overcloud_environment_files> を既存のデプロイメントに含まれる環境ファイルの一覧に置き換えます。

8.5. Ceph Dashboard へのアクセス

Ceph Dashboard が正常に実行されていることを確認するには、以下の検証手順を実施してアクセスし、Ceph クラスターから表示されるデータが正しいことを確認します。

手順

  1. アンダークラウドノードに stack ユーザーとしてログインします。
  2. Dashboard の管理ログイン認証情報を取得します。

    [stack@undercloud ~]$ grep dashboard_admin_password /var/lib/mistral/overcloud/ceph-ansible/group_vars/all.yml
  3. Ceph Dashboard にアクセスするための仮想 IP アドレスを取得します。

    [stack@undercloud-0 ~]$ grep dashboard_frontend_vip /var/lib/mistral/overcloud/ceph-ansible/group_vars/all.yml
  4. Web ブラウザーを使用してフロントエンドの仮想 IP をポイントし、Dashboard にアクセスします。director はプロビジョニングネットワーク上で Dashboard を設定して公開するので、手順 2 で取得した仮想 IP を使用して、TCP ポート 8444 の Dashboard に直接アクセスできます。以下の条件を満たしていることを確認します。

    • Web クライアントホストは、プロビジョニングネットワークに接続されたレイヤー 2 です。
    • プロビジョニングネットワークは適切にルーティングまたはプロキシーされ、Web クライアントホストからアクセスできます。これらの条件が満たされていない場合は、SSH トンネルを開いて、オーバークラウド上の Dashboard の仮想 IP に到達することができます。

      client_host$ ssh -L 8444:<dashboard vip>:8444 stack@<your undercloud>

      <dashboard vip> を手順 3 で取得したコントロールプレーンの仮想 IP の IP アドレスに置き換えます。

  5. Web ブラウザーを http://localhost:8444 にポイントして Dashboard にアクセスします。ceph-ansible が作成するデフォルトのユーザーは管理ユーザーです。/var/lib/mistral/overcloud/ceph-ansible/group_vars/all.yml でパスワードを取得できます。

    結果
    • Ceph Dashboard にアクセスできます。
    • Dashboard に表示される数字およびグラフには、CLI コマンドの ceph -s が返すのと同じクラスターステータスが反映されます。

Red Hat Ceph Storage Dashboard に関する詳細は、『Red Hat Ceph Storage Dashboard Guide』を参照してください。