第5章 Service Telemetry Framework の運用機能の使用

以下の操作機能を使用して、Service Telemetry Framework (STF) に追加機能を提供できます。

5.1. Service Telemetry Framework でのダッシュボード

サードパーティーアプリケーション Grafana を使用して、データコレクター collectd および Ceilometer が個々のホストノードごとに収集するシステムレベルのメトリックを視覚化します。

データコレクターの設定の詳細は、次を参照してください。「ディレクターを使用した Service Telemetry Framework 用の Red Hat OpenStack Platform オーバークラウドのデプロイ」

ダッシュボードを使用してクラウドをモニターできます。

インフラストラクチャーダッシュボード
インフラストラクチャーダッシュボードを使用して、1 つのノードのメトリクスを一度に表示します。ダッシュボードの左上からノードを選択します。
クラウドビューダッシュボード

クラウドビューダッシュボードを使用してパネルを表示し、サービスリソースの使用状況、API 統計、およびクラウドイベントを監視します。このダッシュボードのデータを提供するには、API ヘルスモニターリングとサービスモニターリングを有効にする必要があります。API ヘルスモニターリングは、STF ベース設定でデフォルトで有効にされます。詳細は、「STF の基本設定の作成」 を参照してください。

仮想マシンビューダッシュボード
仮想マシンビューダッシュボードを使用してパネルを表示し、仮想マシンインフラストラクチャーの使用状況をモニターします。ダッシュボードの左上隅からクラウドとプロジェクトを選択します。このダッシュボードでイベントのアノテーションを有効にする場合は、イベントストレージを有効にする必要があります。詳細は、「Red Hat OpenShift Container Platform での ServiceTelemetry オブジェクトの作成」 を参照してください。
Memcached ビューのダッシュボード
memcached ビューダッシュボードを使用してパネルを表示し、接続、可用性、システムメトリック、およびキャッシュパフォーマンスをモニターします。ダッシュボードの左上隅からクラウドを選択します。

5.1.1. ダッシュボードをホストするための Grafana の設定

Grafana はデフォルトの Service Telemetry Framework (STF) デプロイメントには含まれていないため、コミュニティーオペレーターの CatalogSource から Grafana Operator をデプロイする必要があります。Service Telemetry Operator を使用して Grafana をデプロイすると、Grafana インスタンスとローカル STF デプロイメントのデフォルトデータソースの設定が作成されます。

手順

  1. Red Hat OpenShift Container Platform にログインします。
  2. service-telemetry namespace に切り替えます。

    $ oc project service-telemetry
  3. Community-operators CatalogSource を使用して、Grafana Operator を購読します。

    警告

    コミュニティーオペレーターは、Red Hat による精査または検証を受けていないオペレーターです。コミュニティーオペレーターは安定性が不明であるため、注意して使用する必要があります。Red Hat は、Community Operators のサポートを提供しません。

    Red Hat のサードパーティーソフトウェアサポートポリシーの詳細については、こちらをご覧ください。

    $ oc apply -f - <<EOF
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: grafana-operator
      namespace: service-telemetry
    spec:
      channel: v4
      installPlanApproval: Automatic
      name: grafana-operator
      source: community-operators
      sourceNamespace: openshift-marketplace
    EOF
  4. Operator が正常に起動したことを確認します。コマンド出力で、PHASE 列の値が Succeeded の場合には、Operator は正常に起動されています。

    $ oc get csv --selector operators.coreos.com/grafana-operator.service-telemetry
    
    NAME                       DISPLAY            VERSION   REPLACES                   PHASE
    grafana-operator.v4.10.1   Grafana Operator   4.10.1    grafana-operator.v4.10.0   Succeeded
  5. Grafana インスタンスを起動するには、ServiceTelemetry オブジェクトを作成または変更します。graphing.enabled および graphing.grafana.ingressEnabledtrue に設定します。オプションで、graphing.grafana.baseImage の値を、デプロイされる Grafana ワークロードコンテナーイメージに設定します。

    $ oc edit stf default
    
    apiVersion: infra.watch/v1beta1
    kind: ServiceTelemetry
    ...
    spec:
      ...
      graphing:
        enabled: true
        grafana:
          ingressEnabled: true
          baseImage: 'registry.redhat.io/rhel8/grafana:7'
  6. Grafana インスタンスがデプロイされたことを確認します。

    $ oc get pod -l app=grafana
    
    NAME                                  READY   STATUS    RESTARTS   AGE
    grafana-deployment-7fc7848b56-sbkhv   1/1     Running   0          1m
  7. Grafana のデータソースが正しくインストールされたことを確認します。

    $ oc get grafanadatasources
    
    NAME                    AGE
    default-datasources     20h
  8. Grafana のルートが存在することを確認します。

    $ oc get route grafana-route
    
    NAME            HOST/PORT                                          PATH   SERVICES          PORT   TERMINATION   WILDCARD
    grafana-route   grafana-route-service-telemetry.apps.infra.watch          grafana-service   3000   edge          None

5.1.2. デフォルトの Grafana コンテナーイメージの上書き

Service Telemetry Framework (STF) のダッシュボードには、Grafana バージョン 8.1.0 以降でのみ利用できる機能が必要です。デフォルトで、Service Telemetry Operator は互換性のあるバージョンをインストールします。graphing.grafana.baseImage でイメージレジストリーへのイメージパスを指定して、ベース Grafana イメージを上書きできます。

手順

  1. Grafana のバージョンが正しいことを確認します。

    $ oc get pod -l "app=grafana" -ojsonpath='{.items[0].spec.containers[0].image}'
    docker.io/grafana/grafana:7.3.10
  2. 実行中のイメージが 8.1.0 よりも古い場合は、ServiceTelemetry オブジェクトにパッチを適用してイメージを更新します。Service Telemetry Operator は、Grafana デプロイメントを再起動する Grafana マニフェストを更新します。

    $ oc patch stf/default --type merge -p '{"spec":{"graphing":{"grafana":{"baseImage":"docker.io/grafana/grafana:8.1.5"}}}}'
  3. 新しい Grafana Pod が存在し、Running の値が STATUS であることを確認します。

    $ oc get pod -l "app=grafana"
    NAME                                 READY     STATUS    RESTARTS   AGE
    grafana-deployment-fb9799b58-j2hj2   1/1       Running   0          10s
  4. 新しいインスタンスが更新されたイメージを実行していることを確認します。

    $ oc get pod -l "app=grafana" -ojsonpath='{.items[0].spec.containers[0].image}'
    docker.io/grafana/grafana:8.1.0

5.1.3. ダッシュボードのインポート

Grafana Operator は、GrafanaDashboard オブジェクトを作成してダッシュボードをインポートおよび管理できます。ダッシュボードの例は、https://github.com/infrawatch/dashboards で見ることができます。

手順

  1. インフラストラクチャーダッシュボードをインポートします。

    $ oc apply -f https://raw.githubusercontent.com/infrawatch/dashboards/master/deploy/stf-1/rhos-dashboard.yaml
    
    grafanadashboard.integreatly.org/rhos-dashboard-1 created
  2. クラウドダッシュボードをインポートします。

    警告

    stf-connectors.yaml ファイルで、collectd virt プラグインパラメーター hostname_format の値を name uuid hostname に設定していることを確認してください。そうしないと、クラウドダッシュボードの一部のパネルに情報が表示されません。virt プラグインの詳細は、collectd plugins を参照してください。

    $ oc apply -f https://raw.githubusercontent.com/infrawatch/dashboards/master/deploy/stf-1/rhos-cloud-dashboard.yaml
    
    grafanadashboard.integreatly.org/rhos-cloud-dashboard-1 created
  3. クラウドイベントのダッシュボードをインポートします。

    $ oc apply -f https://raw.githubusercontent.com/infrawatch/dashboards/master/deploy/stf-1/rhos-cloudevents-dashboard.yaml
    
    grafanadashboard.integreatly.org/rhos-cloudevents-dashboard created
  4. 仮想マシンダッシュボードをインポートします。

    $ oc apply -f https://raw.githubusercontent.com/infrawatch/dashboards/master/deploy/stf-1/virtual-machine-view.yaml
    
    grafanadashboard.integreatly.org/virtual-machine-view-1 configured
  5. memcached ダッシュボードをインポートします。

    $ oc apply -f https://raw.githubusercontent.com/infrawatch/dashboards/master/deploy/stf-1/memcached-dashboard.yaml
    
    grafanadashboard.integreatly.org/memcached-dashboard-1 created
  6. ダッシュボードが利用可能であることを確認します。

    $ oc get grafanadashboards
    
    NAME                         AGE
    memcached-dashboard-1        7s
    rhos-cloud-dashboard-1       23s
    rhos-cloudevents-dashboard   18s
    rhos-dashboard-1             29s
    virtual-machine-view-1       13s
  7. Grafana のルートアドレスを取得します。

    $ oc get route grafana-route -ojsonpath='{.spec.host}'
    
    grafana-route-service-telemetry.apps.infra.watch
  8. Web ブラウザーで、https://<grafana_route_address> に移動します。<grafana_route_address> は、直前の手順で取得した値に置き換えます。
  9. ダッシュボードを表示するには、Dashboards および Manage をクリックします。

5.1.4. Grafana のログイン認証情報の取得および設定

Grafana が有効になっている場合、openshift 認証、または Grafana Operator によって設定されたデフォルトのユーザー名とパスワードを使用してログインできます。

ServiceTelemetry オブジェクトの認証情報をオーバーライドして、代わりに Service Telemetry Framework (STF) に Grafana のユーザー名とパスワードを設定させることができます。

手順

  1. Red Hat OpenShift Container Platform にログインします。
  2. service-telemetry namespace に切り替えます。

    $ oc project service-telemetry
  3. STF オブジェクトから既存のユーザー名とパスワードを取得します。

    $ oc get stf default -o jsonpath="{.spec.graphing.grafana['adminUser','adminPassword']}"
  4. ServiceTelemetry オブジェクトを介して Grafana 管理者のユーザー名およびパスワードのデフォルト値を変更するには、graphing.grafana.adminUser および graphing.grafana.adminPassword パラメーターを使用します。

    $ oc edit stf default
  5. 新しい認証情報を設定して grafana Pod が再起動するまで待ちます。

    $ oc get po -l app=grafana -w