第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 の基本設定の作成」 を参照してください。
- API ヘルスモニターリングに関する詳細は、「Red Hat OpenStack Platform API のステータスおよびコンテナー化されたサービスの健全性」 を参照してください。
- RHOSP サービスモニターリングの詳細については、「Red Hat OpenStack Platform サービスのリソース使用状況」を参照してください。
- 仮想マシンビューダッシュボード
- 仮想マシンビューダッシュボードを使用してパネルを表示し、仮想マシンインフラストラクチャーの使用状況をモニターします。ダッシュボードの左上隅からクラウドとプロジェクトを選択します。このダッシュボードでイベントのアノテーションを有効にする場合は、イベントストレージを有効にする必要があります。詳細は、「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 デプロイメントのデフォルトデータソースの設定が作成されます。
手順
- Red Hat OpenShift Container Platform にログインします。
service-telemetrynamespace に切り替えます。$ oc project service-telemetry
Community-operators CatalogSource を使用して、Grafana Operator を購読します。
警告コミュニティーオペレーターは、Red Hat による精査または検証を受けていないオペレーターです。コミュニティーオペレーターは安定性が不明であるため、注意して使用する必要があります。Red Hat は、Community Operators のサポートを提供しません。
$ 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
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
Grafana インスタンスを起動するには、
ServiceTelemetryオブジェクトを作成または変更します。graphing.enabledおよびgraphing.grafana.ingressEnabledをtrueに設定します。オプションで、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'Grafana インスタンスがデプロイされたことを確認します。
$ oc get pod -l app=grafana NAME READY STATUS RESTARTS AGE grafana-deployment-7fc7848b56-sbkhv 1/1 Running 0 1m
Grafana のデータソースが正しくインストールされたことを確認します。
$ oc get grafanadatasources NAME AGE default-datasources 20h
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 イメージを上書きできます。
手順
Grafana のバージョンが正しいことを確認します。
$ oc get pod -l "app=grafana" -ojsonpath='{.items[0].spec.containers[0].image}' docker.io/grafana/grafana:7.3.10実行中のイメージが 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"}}}}'新しい Grafana Pod が存在し、
Runningの値がSTATUSであることを確認します。$ oc get pod -l "app=grafana" NAME READY STATUS RESTARTS AGE grafana-deployment-fb9799b58-j2hj2 1/1 Running 0 10s
新しいインスタンスが更新されたイメージを実行していることを確認します。
$ 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 で見ることができます。
手順
インフラストラクチャーダッシュボードをインポートします。
$ oc apply -f https://raw.githubusercontent.com/infrawatch/dashboards/master/deploy/stf-1/rhos-dashboard.yaml grafanadashboard.integreatly.org/rhos-dashboard-1 created
クラウドダッシュボードをインポートします。
警告stf-connectors.yamlファイルで、collectdvirtプラグインパラメーター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
クラウドイベントのダッシュボードをインポートします。
$ oc apply -f https://raw.githubusercontent.com/infrawatch/dashboards/master/deploy/stf-1/rhos-cloudevents-dashboard.yaml grafanadashboard.integreatly.org/rhos-cloudevents-dashboard created
仮想マシンダッシュボードをインポートします。
$ 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
memcached ダッシュボードをインポートします。
$ oc apply -f https://raw.githubusercontent.com/infrawatch/dashboards/master/deploy/stf-1/memcached-dashboard.yaml grafanadashboard.integreatly.org/memcached-dashboard-1 created
ダッシュボードが利用可能であることを確認します。
$ 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
Grafana のルートアドレスを取得します。
$ oc get route grafana-route -ojsonpath='{.spec.host}' grafana-route-service-telemetry.apps.infra.watch- Web ブラウザーで、https://<grafana_route_address> に移動します。<grafana_route_address> は、直前の手順で取得した値に置き換えます。
- ダッシュボードを表示するには、Dashboards および Manage をクリックします。
5.1.4. Grafana のログイン認証情報の取得および設定
Grafana が有効になっている場合、openshift 認証、または Grafana Operator によって設定されたデフォルトのユーザー名とパスワードを使用してログインできます。
ServiceTelemetry オブジェクトの認証情報をオーバーライドして、代わりに Service Telemetry Framework (STF) に Grafana のユーザー名とパスワードを設定させることができます。
手順
- Red Hat OpenShift Container Platform にログインします。
service-telemetrynamespace に切り替えます。$ oc project service-telemetry
STF オブジェクトから既存のユーザー名とパスワードを取得します。
$ oc get stf default -o jsonpath="{.spec.graphing.grafana['adminUser','adminPassword']}"ServiceTelemetry オブジェクトを介して Grafana 管理者のユーザー名およびパスワードのデフォルト値を変更するには、
graphing.grafana.adminUserおよびgraphing.grafana.adminPasswordパラメーターを使用します。$ oc edit stf default
新しい認証情報を設定して grafana Pod が再起動するまで待ちます。
$ oc get po -l app=grafana -w