16.4. サービスを関しするための Cluster Observability Operator 設定
Cluster Observability Operator はテクノロジープレビュー機能としてのみ使用できます。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Cluster Observability Operator (COO) で管理されるモニタリングスタックを設定することで、サービスのメトリクスを監視できます。
サービスのモニタリングをテストするには、次の手順に従います。
- サービスエンドポイントを定義するサンプルサービスをデプロイします。
-
COO によるサービスのモニタリング方法を指定する
ServiceMonitor
オブジェクトを作成します。 -
ServiceMonitor
オブジェクトを検出するためのMonitoringStack
オブジェクトを作成します。
16.4.1. Cluster Observability Operator のサンプルサービスをデプロイする
この設定では、ユーザー定義の ns1-coo
プロジェクトに prometheus-coo-example-app
という名前のサンプルサービスをデプロイします。このサービスは、カスタム version
メトリクスを公開します。
前提条件
-
cluster-admin
クラスターロールを持つユーザーとして、または namespace の管理権限を持つユーザーとして、クラスターにアクセスできる。
手順
prometheus-coo-example-app.yaml
という名前の YAML ファイルを作成します。このファイルには、namespace、デプロイメント、およびサービスに関する次の設定の詳細が含まれます。apiVersion: v1 kind: Namespace metadata: name: ns1-coo --- apiVersion: apps/v1 kind: Deployment metadata: labels: app: prometheus-coo-example-app name: prometheus-coo-example-app namespace: ns1-coo spec: replicas: 1 selector: matchLabels: app: prometheus-coo-example-app template: metadata: labels: app: prometheus-coo-example-app spec: containers: - image: ghcr.io/rhobs/prometheus-example-app:0.4.2 imagePullPolicy: IfNotPresent name: prometheus-coo-example-app --- apiVersion: v1 kind: Service metadata: labels: app: prometheus-coo-example-app name: prometheus-coo-example-app namespace: ns1-coo spec: ports: - port: 8080 protocol: TCP targetPort: 8080 name: web selector: app: prometheus-coo-example-app type: ClusterIP
- ファイルを保存します。
次のコマンドを実行して、設定をクラスターに適用します。
$ oc apply -f prometheus-coo-example-app.yaml
次のコマンドを実行して出力を確認し、Pod が実行されていることを確認します。
$ oc -n -ns1-coo get pod
出力例
NAME READY STATUS RESTARTS AGE prometheus-coo-example-app-0927545cb7-anskj 1/1 Running 0 81m
16.4.2. Cluster Observability Operator によるサービスのモニタリング方法を指定する
「Cluster Observability Operator のサンプルサービスをデプロイする」セクションで作成したサンプルサービスが公開するメトリクスを使用するには、/metrics
エンドポイントからメトリクスを取得するようにモニタリングコンポーネントを設定する必要があります。
この設定は、サービスのモニタリング方法を指定する ServiceMonitor
オブジェクト、または Pod のモニタリング方法を指定する PodMonitor
オブジェクトを使用して作成できます。ServiceMonitor
オブジェクトには Service
オブジェクトが必要です。PodMonitor
オブジェクトには必要ないため、MonitoringStack
オブジェクトは Pod が公開するメトリクスエンドポイントから直接メトリクスを取得できます。
この手順は、ns1-coo
namespace に prometheus-coo-example-app
という名前のサンプルサービスの ServiceMonitor
オブジェクトを作成する方法を示しています。
前提条件
-
cluster-admin
クラスターロールを持つユーザーとして、または namespace の管理権限を持つユーザーとして、クラスターにアクセスできる。 - Cluster Observability Operator がインストールされている。
prometheus-coo-example-app
サンプルサービスをns1-coo
namespace にデプロイしている。注記prometheus-example-app
サンプルサービスは、TLS 認証をサポートしていません。
手順
次の
ServiceMonitor
オブジェクト設定の詳細を含む YAML ファイルを、example-coo-app-service-monitor.yaml
という名前で作成します。apiVersion: monitoring.rhobs/v1alpha1 kind: ServiceMonitor metadata: labels: k8s-app: prometheus-coo-example-monitor name: prometheus-coo-example-monitor namespace: ns1-coo spec: endpoints: - interval: 30s port: web scheme: http selector: matchLabels: app: prometheus-coo-example-app
この設定は、
prometheus-coo-example-app
サンプルサービスが公開するメトリクスデータを収集するためにMonitoringStack
オブジェクトが参照するServiceMonitor
オブジェクトを定義します。次のコマンドを実行して、設定をクラスターに適用します。
$ oc apply -f example-app-service-monitor.yaml
次のコマンドを実行して出力を観察し、
ServiceMonitor
リソースが作成されたことを確認します。$ oc -n ns1-coo get servicemonitor
出力例
NAME AGE prometheus-coo-example-monitor 81m
16.4.3. Cluster Observability Operator の MonitoringStack オブジェクトを作成する
ターゲット prometheus-coo-example-app
サービスが公開するメトリクスデータを収集するには、「Cluster Observability Operator でサービスを監視する方法を指定する」セクションで作成した ServiceMonitor
オブジェクトを参照する MonitoringStack
オブジェクトを作成します。この MonitoringStack
オブジェクトはサービスを検出し、そこから公開されているメトリクスデータを収集できます。
前提条件
-
cluster-admin
クラスターロールを持つユーザーとして、または namespace の管理権限を持つユーザーとして、クラスターにアクセスできる。 - Cluster Observability Operator がインストールされている。
-
prometheus-coo-example-app
サンプルサービスをns1-coo
namespace にデプロイしている。 -
ns1-coo
namespace に、prometheus-coo-example-monitor
という名前のServiceMonitor
オブジェクトを作成している。
手順
-
MonitoringStack
オブジェクト設定の YAML ファイルを作成します。この例では、ファイル名をexample-coo-monitoring-stack.yaml
にします。 以下の
MonitoringStack
オブジェクト設定の詳細を追加します。MonitoringStack
オブジェクトの例apiVersion: monitoring.rhobs/v1alpha1 kind: MonitoringStack metadata: name: example-coo-monitoring-stack namespace: ns1-coo spec: logLevel: debug retention: 1d resourceSelector: matchLabels: k8s-app: prometheus-coo-example-monitor
次のコマンドを実行して、
MonitoringStack
オブジェクトを適用します。$ oc apply -f example-coo-monitoring-stack.yaml
次のコマンドを実行し、出力で
MonitoringStack
オブジェクトが利用可能であることを確認します。$ oc -n ns1-coo get monitoringstack
出力例
NAME AGE example-coo-monitoring-stack 81m