4.26. OADP モニタリング
OpenShift Container Platform モニタリングスタックを使用すると、ユーザーと管理者は次のタスクを効果的に実行できます。
- クラスターを監視および管理する
- ユーザーアプリケーションのワークロードパフォーマンスを分析する
- クラスター上で実行されているサービスを監視する
- イベントが発生した場合にアラートを受信する
4.26.1. OADP モニタリングの設定
OADP Operator は、OpenShift モニタリングスタックによって提供される OpenShift ユーザーワークロードモニタリングを利用して、Velero サービスエンドポイントからメトリックを取得します。モニタリングスタックを使用すると、ユーザー定義のアラートルールを作成したり、OpenShift メトリッククエリーフロントエンドを使用してメトリックをクエリーしたりできます。
ユーザーワークロードモニタリングを有効にすると、Grafana などの Prometheus 互換のサードパーティー UI を設定して使用し、Velero メトリックを視覚化することができます。
メトリックをモニタリングするには、ユーザー定義プロジェクトのモニタリングを有効にし、openshift-adp
namespace に存在するすでに有効にな OADP サービスエンドポイントからそれらのメトリックを取得する ServiceMonitor
リソースを作成する必要があります。
前提条件
-
cluster-admin
パーミッションを持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできる。 - クラスター監視 config map が作成されました。
手順
openshift-monitoring
namespace でcluster-monitoring-config
ConfigMap
オブジェクトを編集します。oc edit configmap cluster-monitoring-config -n openshift-monitoring
Copy to clipboardCopied$ oc edit configmap cluster-monitoring-config -n openshift-monitoring
data
セクションのconfig.yaml
フィールドで、enableUserWorkload
オプションを追加または有効にします。apiVersion: v1 data: config.yaml: | enableUserWorkload: true 1 kind: ConfigMap metadata: # ...
Copy to clipboardCopiedapiVersion: v1 data: config.yaml: | enableUserWorkload: true 1 kind: ConfigMap metadata: # ...
- 1
- このオプションを追加するか、
true
に設定します
しばらく待って、
openshift-user-workload-monitoring
namespace で次のコンポーネントが稼働しているかどうかを確認して、ユーザーワークロードモニタリングのセットアップを検証します。oc get pods -n openshift-user-workload-monitoring
Copy to clipboardCopied$ oc get pods -n openshift-user-workload-monitoring
出力例
NAME READY STATUS RESTARTS AGE prometheus-operator-6844b4b99c-b57j9 2/2 Running 0 43s prometheus-user-workload-0 5/5 Running 0 32s prometheus-user-workload-1 5/5 Running 0 32s thanos-ruler-user-workload-0 3/3 Running 0 32s thanos-ruler-user-workload-1 3/3 Running 0 32s
Copy to clipboardCopiedNAME READY STATUS RESTARTS AGE prometheus-operator-6844b4b99c-b57j9 2/2 Running 0 43s prometheus-user-workload-0 5/5 Running 0 32s prometheus-user-workload-1 5/5 Running 0 32s thanos-ruler-user-workload-0 3/3 Running 0 32s thanos-ruler-user-workload-1 3/3 Running 0 32s
openshift-user-workload-monitoring
にuser-workload-monitoring-config
ConfigMap が存在することを確認します。存在する場合、この手順の残りの手順はスキップしてください。oc get configmap user-workload-monitoring-config -n openshift-user-workload-monitoring
Copy to clipboardCopied$ oc get configmap user-workload-monitoring-config -n openshift-user-workload-monitoring
出力例
Error from server (NotFound): configmaps "user-workload-monitoring-config" not found
Copy to clipboardCopiedError from server (NotFound): configmaps "user-workload-monitoring-config" not found
ユーザーワークロードモニタリングの
user-workload-monitoring-config
ConfigMap
オブジェクトを作成し、2_configure_user_workload_monitoring.yaml
ファイル名に保存します。出力例
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: |
Copy to clipboardCopiedapiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: |
2_configure_user_workload_monitoring.yaml
ファイルを適用します。oc apply -f 2_configure_user_workload_monitoring.yaml
Copy to clipboardCopied$ oc apply -f 2_configure_user_workload_monitoring.yaml configmap/user-workload-monitoring-config created
4.26.2. OADP サービスモニターの作成
OADP は、DPA の設定時に作成される openshift-adp-velero-metrics-svc
サービスを提供します。ユーザーのワークロード監視で使用されるサービスモニターは、定義されたサービスを指す必要があります。
次のコマンドを実行して、サービスの詳細を取得します。
手順
openshift-adp-velero-metrics-svc
サービスが存在することを確認します。これには、ServiceMonitor
オブジェクトのセレクターとして使用されるapp.kubernetes.io/name=velero
ラベルが含まれている必要があります。oc get svc -n openshift-adp -l app.kubernetes.io/name=velero
Copy to clipboardCopied$ oc get svc -n openshift-adp -l app.kubernetes.io/name=velero
出力例
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE openshift-adp-velero-metrics-svc ClusterIP 172.30.38.244 <none> 8085/TCP 1h
Copy to clipboardCopiedNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE openshift-adp-velero-metrics-svc ClusterIP 172.30.38.244 <none> 8085/TCP 1h
既存のサービスラベルと一致する
ServiceMonitor
YAML ファイルを作成し、そのファイルを3_create_oadp_service_monitor.yaml
として保存します。サービスモニターはopenshift-adp-velero-metrics-svc
サービスが存在するopenshift-adp
namespace に作成されます。ServiceMonitor
オブジェクトの例apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: app: oadp-service-monitor name: oadp-service-monitor namespace: openshift-adp spec: endpoints: - interval: 30s path: /metrics targetPort: 8085 scheme: http selector: matchLabels: app.kubernetes.io/name: "velero"
Copy to clipboardCopiedapiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: app: oadp-service-monitor name: oadp-service-monitor namespace: openshift-adp spec: endpoints: - interval: 30s path: /metrics targetPort: 8085 scheme: http selector: matchLabels: app.kubernetes.io/name: "velero"
3_create_oadp_service_monitor.yaml
ファイルを適用します。oc apply -f 3_create_oadp_service_monitor.yaml
Copy to clipboardCopied$ oc apply -f 3_create_oadp_service_monitor.yaml
出力例
servicemonitor.monitoring.coreos.com/oadp-service-monitor created
Copy to clipboardCopiedservicemonitor.monitoring.coreos.com/oadp-service-monitor created
検証
OpenShift Container Platform Web コンソールの Administrator パースペクティブを使用して、新しいサービスモニターが Up 状態であることを確認します。
-
Observe
Targets ページに移動します。 -
Filter が選択されていないこと、または User ソースが選択されていることを確認し、
Text
検索フィールドにopenshift-adp
と入力します。 サービスモニターの Status のステータスが Up であることを確認します。
図4.1 OADP メトリックのターゲット
-
Observe
4.26.3. アラートルールの作成
OpenShift Container Platform モニタリングスタックでは、アラートルールを使用して設定されたアラートを受信できます。OADP プロジェクトのアラートルールを作成するには、ユーザーワークロードの監視で収集されたメトリックの 1 つを使用します。
手順
サンプル
OADPBackupFailing
アラートを含むPrometheusRule
YAML ファイルを作成し、4_create_oadp_alert_rule.yaml
として保存します。OADPBackupFailing
アラートのサンプルapiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: name: sample-oadp-alert namespace: openshift-adp spec: groups: - name: sample-oadp-backup-alert rules: - alert: OADPBackupFailing annotations: description: 'OADP had {{$value | humanize}} backup failures over the last 2 hours.' summary: OADP has issues creating backups expr: | increase(velero_backup_failure_total{job="openshift-adp-velero-metrics-svc"}[2h]) > 0 for: 5m labels: severity: warning
Copy to clipboardCopiedapiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: name: sample-oadp-alert namespace: openshift-adp spec: groups: - name: sample-oadp-backup-alert rules: - alert: OADPBackupFailing annotations: description: 'OADP had {{$value | humanize}} backup failures over the last 2 hours.' summary: OADP has issues creating backups expr: | increase(velero_backup_failure_total{job="openshift-adp-velero-metrics-svc"}[2h]) > 0 for: 5m labels: severity: warning
このサンプルでは、アラートは次の条件で表示されます。
- 過去 2 時間に失敗した新しいバックアップの数が 0 より大きく増加しており、その状態が少なくとも 5 分間継続します。
-
最初の増加時間が 5 分未満の場合、アラートは
Pending
状態になり、その後、Firing
状態に変わります。
4_create_oadp_alert_rule.yaml
ファイルを適用して、openshift-adp
namespace にPrometheusRule
オブジェクトを作成します。oc apply -f 4_create_oadp_alert_rule.yaml
Copy to clipboardCopied$ oc apply -f 4_create_oadp_alert_rule.yaml
出力例
prometheusrule.monitoring.coreos.com/sample-oadp-alert created
Copy to clipboardCopiedprometheusrule.monitoring.coreos.com/sample-oadp-alert created
検証
アラートがトリガーされた後は、次の方法でアラートを表示できます。
- Developer パースペクティブで、Observe メニューを選択します。
Observe
Alerting メニューの下の Administrator パースペクティブで、Filter ボックスの User を選択します。それ以外の場合、デフォルトでは Platform アラートのみが表示されます。 図4.2 OADP バックアップ失敗アラート
関連情報
4.26.4. 利用可能なメトリックのリスト
これらは、OADP によって提供されるメトリックとその Type のリストです。
メトリクス名 | 説明 | 型 |
---|---|---|
| キャッシュから取得したバイト数 | カウンター |
| コンテンツがキャッシュから取得された回数 | カウンター |
| 不正なコンテンツがキャッシュから読み取られた回数 | カウンター |
| コンテンツがキャッシュ内で見つからずフェッチされた回数 | カウンター |
| 基盤となるストレージから取得したバイト数 | カウンター |
| 基盤となるストレージでコンテンツが見つからなかった回数 | カウンター |
| コンテンツをキャッシュに保存できなかった回数 | カウンター |
|
| カウンター |
|
| カウンター |
|
| カウンター |
|
| カウンター |
|
| カウンター |
|
| カウンター |
| 試行されたバックアップの合計数 | カウンター |
| 試行されたバックアップ削除の合計数 | カウンター |
| 失敗したバックアップ削除の合計数 | カウンター |
| 成功したバックアップ削除の合計数 | カウンター |
| バックアップの完了にかかる時間 (秒単位) | ヒストグラム |
| 失敗したバックアップの合計数 | カウンター |
| バックアップ中に発生したエラーの合計数 | ゲージ |
| バックアップされたアイテムの総数 | ゲージ |
| バックアップの最終ステータス。値 1 は成功、値 0 は成功です。 | ゲージ |
| 最後にバックアップが正常に実行された時刻、秒単位の Unix タイムスタンプ | ゲージ |
| 部分的に失敗したバックアップの合計数 | カウンター |
| 成功したバックアップの合計数 | カウンター |
| バックアップのサイズ (バイト単位) | ゲージ |
| 既存のバックアップの現在の数 | ゲージ |
| 検証に失敗したバックアップの合計数 | カウンター |
| 警告されたバックアップの総数 | カウンター |
| CSI が試行したボリュームスナップショットの合計数 | カウンター |
| CSI で失敗したボリュームスナップショットの総数 | カウンター |
| CSI が成功したボリュームスナップショットの総数 | カウンター |
| 試行された復元の合計数 | カウンター |
| 失敗したリストアの合計数 | カウンター |
| 部分的に失敗したリストアの合計数 | カウンター |
| 成功した復元の合計数 | カウンター |
| 現在の既存のリストアの数 | ゲージ |
| 検証に失敗したリストアの失敗の合計数 | カウンター |
| 試行されたボリュームスナップショットの総数 | カウンター |
| 失敗したボリュームスナップショットの総数 | カウンター |
| 成功したボリュームスナップショットの総数 | カウンター |
4.26.5. Observe UI を使用したメトリックの表示
OpenShift Container Platform Web コンソールのメトリックは、Administrator または Developer パースペクティブから表示できます。これらのパースペクティブには、openshift-adp
プロジェクトへのアクセス権が必要です。
手順
Observe
Metrics ページに移動します。 Developer パースペクティブを使用している場合は、次の手順に従います。
- Custom query を選択するか、Show PromQL リンクをクリックします。
- クエリーを入力し、Enter をクリックします。
Administrator パースペクティブを使用している場合は、テキストフィールドに式を入力し、Run Queries を選択します。
図4.3 OADP メトリッククエリー