第5章 Service Telemetry Framework の運用機能の使用
以下の操作機能を使用して、Service Telemetry Framework (STF) に追加機能を提供できます。
5.1. Service Telemetry Framework でのダッシュボード
サードパーティーのアプリケーション Grafana を使用して、collectd および Ceilometer が各ホストノードについて収集するシステムレベルのメトリクスを可視化します。
collectd の設定に関する詳細は、「Service Telemetry Framework 向けの Red Hat OpenStack Platform オーバークラウドのデプロイ」を参照してください。
クラウドの監視には、2 つのダッシュボードを使うことができます。
- インフラストラクチャーダッシュボード
- インフラストラクチャーダッシュボードを使用して、1 つのノードのメトリクスを一度に表示します。ダッシュボードの左上からノードを選択します。
- クラウドビューダッシュボード
クラウドビューダッシュボードを使用してパネルを表示し、サービスリソースの使用状況、API 統計、およびクラウドイベントを監視します。このダッシュボードのデータを提供するには、API ヘルスモニターリングとサービスモニターリングを有効にする必要があります。API ヘルスモニターリングは、STF ベース設定でデフォルトで有効にされます。詳細は、「STF の基本設定の作成」 を参照してください。
- API ヘルスモニターリングに関する詳細は、「Red Hat OpenStack Platform API のステータスおよびコンテナー化されたサービスの健全性」 を参照してください。
- RHOSP サービスモニターリングの詳細については、「Red Hat OpenStack Platform サービスのリソース使用状況」を参照してください。
5.1.1. ダッシュボードをホストするための Grafana の設定
Grafana はデフォルトの Service Telemetry Framework (STF) のデプロイメントに含まれていないため、Operator Hub.io から Grafana Operator をデプロイする必要があります。Service Telemetry Operator を使用して Grafana をデプロイすると、Grafana インスタンスとローカル STF デプロイメントのデフォルトデータソースの設定が作成されます。
手順
- Red Hat OpenShift Container Platform にログインします。
service-telemetry
namespace に切り替えます。$ oc project service-telemetry
Grafana オペレーターをデプロイします。
$ oc apply -f - <<EOF apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: grafana-operator namespace: service-telemetry spec: channel: alpha installPlanApproval: Automatic name: grafana-operator source: operatorhubio-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.v3.10.3 Grafana Operator 3.10.3 grafana-operator.v3.10.2 Succeeded
Grafana インスタンスを起動するには、
ServiceTelemetry
オブジェクトを作成または変更します。graphing.enabled
およびgraphing.grafana.ingressEnabled
をtrue
に設定します。$ oc edit stf default apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry ... spec: ... graphing: enabled: true grafana: ingressEnabled: true
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.3/rhos-dashboard.yaml grafanadashboard.integreatly.org/rhos-dashboard-1.3 created
クラウドダッシュボードをインポートします。
警告クラウドダッシュボードの一部のパネルについては、
stf-connectors.yaml
ファイルで collectdvirt
プラグインパラメーターhostname_format
の値をname uuid hostname
に設定する必要があります。このパラメーターを設定しない場合、影響を受けるダッシュボードは空のままです。virt
プラグインの詳細は、collectd プラグイン を参照してください。$ oc apply -f https://raw.githubusercontent.com/infrawatch/dashboards/master/deploy/stf-1.3/rhos-cloud-dashboard.yaml grafanadashboard.integreatly.org/rhos-cloud-dashboard-1.3 created
クラウドイベントのダッシュボードをインポートします。
$ oc apply -f https://raw.githubusercontent.com/infrawatch/dashboards/master/deploy/stf-1.3/rhos-cloudevents-dashboard.yaml grafanadashboard.integreatly.org/rhos-cloudevents-dashboard created
仮想マシンダッシュボードをインポートします。
$ oc apply -f https://raw.githubusercontent.com/infrawatch/dashboards/master/deploy/stf-1.3/virtual-machine-view.yaml grafanadashboard.integreatly.org/virtual-machine-view-1.3 configured
memcached ダッシュボードをインポートします。
$ oc apply -f https://raw.githubusercontent.com/infrawatch/dashboards/master/deploy/stf-1.3/memcached-dashboard.yaml grafanadashboard.integreatly.org/memcached-dashboard-1.3 created
ダッシュボードが利用可能であることを確認します。
$ oc get grafanadashboards NAME AGE memcached-dashboard-1.3 115s rhos-cloud-dashboard-1.3 2m12s rhos-cloudevents-dashboard 2m6s rhos-dashboard-1.3 2m17s virtual-machine-view-1.3 2m
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 のログイン認証情報の取得および設定
Service Telemetry Framework (STF) は、Grafana が有効な場合にデフォルトのログイン認証情報を設定します。ServiceTelemetry
オブジェクトで認証情報を上書きできます。
手順
- Red Hat OpenShift Container Platform にログインします。
service-telemetry
namespace に切り替えます。$ oc project service-telemetry
STF オブジェクトからデフォルトのユーザー名とパスワードを取得します。
$ oc get stf default -o jsonpath="{.spec.graphing.grafana['adminUser','adminPassword']}"
-
ServiceTelemetry オブジェクトを介して Grafana 管理者のユーザー名およびパスワードのデフォルト値を変更するには、
graphing.grafana.adminUser
およびgraphing.grafana.adminPassword
パラメーターを使用します。