2.12. クラスター ID ラベルのメトリックへの追加
複数の OpenShift Container Platform クラスターを管理し、リモート書き込み機能を使用してメトリックデータをこれらのクラスターから外部ストレージの場所に送信する場合、クラスター ID ラベルを追加して、異なるクラスターから送られるメトリックデータを特定できます。次に、これらのラベルをクエリーし、メトリックのソースクラスターを特定し、そのデータを他のクラスターによって送信される同様のメトリックデータと区別することができます。
これにより、複数の顧客に対して多数のクラスターを管理し、メトリックデータを単一の集中ストレージシステムに送信する場合、クラスター ID ラベルを使用して特定のクラスターまたはお客様のメトリックをクエリーできます。
クラスター ID ラベルの作成および使用には、以下の 3 つの一般的な手順が必要です。
- リモート書き込みストレージの書き込みラベルの設定。
- クラスター ID ラベルをメトリックに追加します。
- これらのラベルをクエリーし、メトリックのソースクラスターまたはカスタマーを特定します。
2.12.1. メトリックのクラスター ID ラベルの作成
デフォルトプラットフォームのモニタリングおよびユーザーワークロードモニタリングのメトリクスのクラスター ID ラベルを作成できます。
デフォルトのプラットフォームモニタリングの場合、openshift-monitoring
namespace の cluster-monitoring-config
config map でリモート書き込みストレージの write_relabel
設定でメトリクスのクラスター ID ラベルを追加します。
ユーザーワークロードモニタリングの場合、openshift-user-workload-monitoring
namespace の user-workload-monitoring-config
config map の設定を編集します。
Prometheus が namespace
ラベルを公開するユーザーワークロードターゲットをスクレイプすると、システムはこのラベルを exported_namespace
として保存します。この動作により、最終的な namespace ラベル値がターゲット Pod の namespace と等しくなります。このデフォルトは、PodMonitor
または ServiceMonitor
オブジェクトの honorLabels
フィールドの値を true
に設定してオーバーライドすることはできません。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 - リモート書き込みストレージを設定している。
デフォルトのプラットフォームモニタリングコンポーネントを設定する場合は、以下を実行します。
-
cluster-admin
クラスターロールを持つユーザーとしてクラスターにアクセスできます。 -
cluster-monitoring-config
ConfigMap
オブジェクトを作成している。
-
ユーザー定義のプロジェクトをモニターするコンポーネントを設定する場合:
-
cluster-admin
クラスターロールを持つユーザーとして、またはopenshift-user-workload-monitoring
プロジェクトのuser-workload-monitoring-config-edit
ロールを持つユーザーとして、クラスターにアクセスできる。 -
user-workload-monitoring-config
ConfigMap
オブジェクトを作成している。
-
手順
openshift-monitoring
プロジェクトでcluster-monitoring-config
ConfigMap
オブジェクトを編集します。$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
注記ユーザー定義プロジェクトをモニターする Prometheus インスタンスのメトリックのクラスター ID ラベルを設定する場合、
openshift-user-workload-monitoring
namespace のuser-workload-monitoring-config
config map を編集します。Prometheus コンポーネントはこの config map のprometheus
と呼ばれ、prometheusK8s
ではなく、cluster-monitoring-config
config map で使用される名前であることに注意してください。data/config.yaml/prometheusK8s/remoteWrite
の下にあるwriteRelabelConfigs:
セクションで、クラスター ID の再ラベル付け設定値を追加します。apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | prometheusK8s: remoteWrite: - url: "https://remote-write-endpoint.example.com" <endpoint_authentication_credentials> writeRelabelConfigs: 1 - <relabel_config> 2
以下の例は、デフォルトのプラットフォームモニタリングでクラスター ID ラベル
cluster_id
を持つメトリクスを転送する方法を示しています。apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | prometheusK8s: remoteWrite: - url: "https://remote-write-endpoint.example.com" writeRelabelConfigs: - sourceLabels: - __tmp_openshift_cluster_id__ 1 targetLabel: cluster_id 2 action: replace 3
- 1
- システムは最初に
__tmp_openshift_cluster_id__
という名前の一時的なクラスター ID ソースラベルを適用します。この一時的なラベルは、指定するクラスター ID ラベル名に置き換えられます。 - 2
- リモート書き込みストレージに送信されるメトリックのクラスター ID ラベルの名前を指定します。メトリックにすでに存在するラベル名を使用する場合、その値はこのクラスター ID ラベルの名前で上書きされます。ラベル名には
__tmp_openshift_cluster_id__
は使用しないでください。最後の再ラベル手順では、この名前を使用するラベルを削除します。 - 3
replace
置き換えラベルの再設定アクションは、一時ラベルを送信メトリックのターゲットラベルに置き換えます。このアクションはデフォルトであり、アクションが指定されていない場合に適用されます。
ファイルを保存して、変更を
ConfigMap
オブジェクトに適用します。更新された設定の影響を受ける Pod は自動的に再起動します。警告モニタリング
ConfigMap
オブジェクトへの変更を保存すると、関連するプロジェクトの Pod およびその他のリソースが再デプロイされる可能性があります。また、変更を保存すると、そのプロジェクトで実行中のモニタリングプロセスも再起動する可能性があります。
関連情報
- 書き込みリラベル設定の詳細は、リモート書き込みストレージの設定 を参照してください。