第9章 RHOSO 上で実行されるクラスターの監視
Red Hat OpenStack Services on OpenShift (RHOSO) で実行されるクラスターの可観測性メトリクスを相関させることができます。両方の環境からメトリクスを収集することで、インフラストラクチャーレイヤーとアプリケーションレイヤー全体の問題を監視およびトラブルシューティングできます。
RHOSO 上で実行されるクラスターのメトリクス相関では、次の 2 つの方法がサポートされています。
- 外部の Prometheus インスタンスへの リモート書き込み
- OpenShift Container Platform フェデレーションエンドポイントから RHOSO 可観測性スタックへのデータの収集
9.1. 外部の Prometheus インスタンスへのリモート書き込み
Red Hat OpenStack Services on OpenShift (RHOSO) と OpenShift Container Platform の両方でリモート書き込みを使用して、それらのメトリクスを外部の Prometheus インスタンスにプッシュします。
前提条件
- 外部の Prometheus インスタンスにアクセスできる。
- RHOSO とクラスターへの管理アクセス権がある。
- mTLS を使用したセキュアな通信用の証明書がある。
- Prometheus インスタンスがクライアント TLS 証明書用に設定されており、リモート書き込みのレシーバーとしてセットアップされている。
- Cluster Observability Operator が RHOSO クラスターにインストールされている。
- RHOSO クラスターのモニタリングスタックが、対象のメトリクスを収集するように設定されている。
RHOSO 環境でテレメトリーが有効になっている。
注記テレメトリーサービスが正常に動作していることを確認するには、次のコマンドを入力します。
$ oc -n openstack get monitoringstacks metric-storage -o yaml
monitoringstacks
CRD は、テレメトリーが正しく有効化されているかどうかを示します。
手順
メトリクスを Prometheus に送信するように RHOSO 管理クラスターを設定します。
次のコマンドを入力して、Prometheus への認証用の HTTPS クライアント証明書が含まれている
openstack
namespace に、mtls-bundle
という名前のシークレットを作成します。$ oc --namespace openstack \ create secret generic mtls-bundle \ --from-file=./ca.crt \ --from-file=osp-client.crt \ --from-file=osp-client.key
次のコマンドを実行して、
controlplane
設定を編集用に開きます。$ oc -n openstack edit openstackcontrolplane/controlplane
設定を開いた状態で、
.spec.telemetry.template.metricStorage
セクションを置き換えて、RHOSO がメトリクスを Prometheus に送信するようにします。たとえば、以下のようになります。metricStorage: customMonitoringStack: alertmanagerConfig: disabled: false logLevel: info prometheusConfig: scrapeInterval: 30s remoteWrite: - url: https://external-prometheus.example.com/api/v1/write 1 tlsConfig: ca: secret: name: mtls-bundle key: ca.crt cert: secret: name: mtls-bundle key: ocp-client.crt keySecret: name: mtls-bundle key: ocp-client.key replicas: 2 resourceSelector: matchLabels: service: metricStorage resources: limits: cpu: 500m memory: 512Mi requests: cpu: 100m memory: 256Mi retention: 1d 2 dashboardsEnabled: false dataplaneNetwork: ctlplane enabled: true prometheusTls: {}
ワークロードが実行されているテナントクラスターを設定して、メトリクスを Prometheus に送信します。
クラスターモニタリングの config map を YAML ファイルとして作成します。この map には、リモート書き込み設定とクラスター識別子を含める必要があります。たとえば、以下のようになります。
apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | prometheusK8s: retention: 1d 1 remoteWrite: - url: "https://external-prometheus.example.com/api/v1/write" writeRelabelConfigs: - sourceLabels: - __tmp_openshift_cluster_id__ targetLabel: cluster_id action: replace tlsConfig: ca: secret: name: mtls-bundle key: ca.crt cert: secret: name: mtls-bundle key: ocp-client.crt keySecret: name: mtls-bundle key: ocp-client.key
- 1
- 保持期間を設定します。外部で収集するため、必要に応じてローカルメトリクスの保持期間を短縮できます。
-
config map を
cluster-monitoring-config.yaml
というファイルとして保存します。 次のコマンドを入力して、Prometheus への認証用の HTTPS クライアント証明書が含まれている
openshift-monitoring
namespace に、mtls-bundle
という名前のシークレットを作成します。$ oc --namespace openshift-monitoring \ create secret generic mtls-bundle \ --from-file=./ca.crt \ --from-file=ocp-client.crt \ --from-file=ocp-client.key
次のコマンドを実行して、クラスターモニタリング設定を適用します。
$ oc apply -f cluster-monitoring-config.yaml
変更が反映されたら、外部の Prometheus インスタンスで集計されたメトリクスを確認できます。