2.12. リモート書き込みストレージの設定
リモート書き込みストレージを設定して、Prometheus が取り込んだメトリクスをリモートシステムに送信して長期保存できるようにします。これを行っても、Prometheus がメトリクスを保存する方法や期間には影響はありません。
前提条件
OpenShift Container Platform のコアモニタリングコンポーネントを設定する場合、以下を実行します。
-
cluster-admin
クラスターロールを持つユーザーとしてクラスターにアクセスできる。 -
cluster-monitoring-config
ConfigMap
オブジェクトを作成している。
-
ユーザー定義のプロジェクトをモニターするコンポーネントを設定する場合:
-
cluster-admin
クラスターロールを持つユーザーとして、またはopenshift-user-workload-monitoring
プロジェクトのuser-workload-monitoring-config-edit
ロールを持つユーザーとして、クラスターにアクセスできる。 - クラスター管理者は、ユーザー定義プロジェクトのモニタリングを有効にしている。
-
-
OpenShift CLI (
oc
) がインストールされている。 リモート書き込み互換性のあるエンドポイント (Thanos) を設定し、エンドポイント URL を把握している。リモート書き込み機能と互換性のないエンドポイントの情報ては、Prometheus リモートエンドポイントおよびストレージに関するドキュメント を参照してください。
重要Red Hat は、リモート書き込み送信側の設定に関する情報のみを提供し、受信側エンドポイントの設定に関するガイダンスは提供しません。お客様は、リモート書き込みと互換性のある独自のエンドポイントを設定する責任があります。エンドポイントレシーバー設定に関する問題は、Red Hat 製品サポートには含まれません。
リモート書き込みエンドポイントの
Secret
オブジェクトに認証クレデンシャルを設定している。リモート書き込みを設定する Prometheus オブジェクトと同じ namespace にシークレットを作成する必要があります。デフォルトのプラットフォームモニタリングの場合はopenshift-monitoring
namespace、ユーザーのワークロードモニタリングの場合はopenshift-user-workload-monitoring
namespace です。警告セキュリティーリスクを軽減するには、HTTPS および認証を使用してメトリクスをエンドポイントに送信します。
手順
以下の手順に従って、openshift-monitoring
namespace の cluster-monitoring-config
config マップで、デフォルトのプラットフォーム監視のリモート書き込みを設定します。
ユーザー定義プロジェクトをモニターする Prometheus インスタンスのリモート書き込みを設定する場合は、openshift-user-workload-monitoring
namespace の user-workload-monitoring-config
設定マップと同様の編集を行います。なお、Prometheus のコンフィグマップコンポーネントは、user-workload-monitoring-config
ConfigMap
オブジェクトでは prometheus
と呼ばれ、prometheusK8s
ではないことに注意してください。これは、cluster-monitoring-config
ConfigMap
オブジェクトにあるためです。
openshift-monitoring
プロジェクトでcluster-monitoring-config
ConfigMap
オブジェクトを編集します。oc -n openshift-monitoring edit configmap cluster-monitoring-config
$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
data/config.yaml/prometheusK8s
にremoteWrite:
セクションを追加します。 このセクションにエンドポイント URL および認証情報を追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 認証クレデンシャルの後に、書き込みの再ラベル設定値を追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 書き込みの再ラベル設定。
<your_write_relabel_configs>
は、リモートエンドポイントに送信する必要のあるメトリクスの書き込みラベル一覧に置き換えます。以下の例では、
my_metric
という単一のメトリクスを転送する方法を紹介します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 書き込み再ラベル設定オプションについては、Prometheus relabel_config documentation を参照してください。
- 変更を適用するためにファイルを保存します。新しい設定は自動的に適用されます。
2.12.1. サポート対象のリモート書き込み認証設定 リンクのコピーリンクがクリップボードにコピーされました!
異なる方法を使用して、リモート書き込みエンドポイントとの認証を行うことができます。現在サポートされている認証方法は、AWS 署名バージョン 4、基本認証、Authorization
リクエストヘッダーでの HTTP を使用した認証、OAuth 2.0、および TLS クライアントです。以下の表は、リモート書き込みで使用するサポート対象の認証方法の詳細を示しています。
認証方法 | config map フィールド | 説明 |
---|---|---|
AWS 署名バージョン 4 |
| この方法では、AWS Signature Version 4 認証を使用して要求を署名します。この方法は、認可、OAuth 2.0、または Basic 認証と同時に使用することはできません。 |
Basic 認証 |
| Basic 認証は、設定されたユーザー名とパスワードを使用してすべてのリモート書き込み要求に承認ヘッダーを設定します。 |
認可 |
|
Authorization は、設定されたトークンを使用して、すべてのリモート書き込みリクエストに |
OAuth 2.0 |
|
OAuth 2.0 設定は、クライアントクレデンシャル付与タイプを使用します。Prometheus は、リモート書き込みエンドポイントにアクセスするために、指定されたクライアント ID およびクライアントシークレットを使用して |
TLS クライアント |
| TLS クライアント設定は、TLS を使用してリモート書き込みエンドポイントサーバーで認証するために使用される CA 証明書、クライアント証明書、およびクライアントキーファイル情報を指定します。設定例は、CA 証明書ファイル、クライアント証明書ファイル、およびクライアントキーファイルがすでに作成されていることを前提としています。 |
2.12.1.1. 認証設定の設定マップの場所 リンクのコピーリンクがクリップボードにコピーされました!
以下は、デフォルトのプラットフォームモニタリングの ConfigMap
オブジェクトの認証設定の場所を示しています。
ユーザー定義プロジェクトを監視する Prometheus インスタンスに対してリモート書き込みを設定する場合は、openshift-user-workload-monitoring
namespace の user-workload-monitoring-config
を編集してください。なお、Prometheus のコンフィグマップコンポーネントは、user-workload-monitoring-config
ConfigMap
オブジェクトでは prometheus
と呼ばれ、prometheusK8s
ではないことに注意してください。これは、cluster-monitoring-config
ConfigMap
オブジェクトにあるためです。
2.12.1.2. リモート書き込み認証の設定例 リンクのコピーリンクがクリップボードにコピーされました!
次のサンプルは、リモート書き込みエンドポイントに接続するために使用できるさまざまな認証設定を示しています。各サンプルでは、認証情報やその他の関連設定を含む対応する Secret
オブジェクトを設定する方法も示しています。それぞれのサンプルは、openshift-monitoring
namespace でデフォルトのプラットフォームモニタリングで使用する認証を設定します。
AWS 署名バージョン 4 認証のサンプル YAML
以下は、openshift-monitoring
namespace の sigv4-credentials
という名前の sigv 4
シークレットの設定を示しています。
以下は、openshift-monitoring
namespace の sigv4-credentials
という名前の Secret
オブジェクトを使用する AWS Signature Version 4 リモート書き込み認証のサンプルを示しています。
Basic 認証用のサンプル YAML
以下に、openshift-monitoring
namespace 内の rw-basic-auth
という名前の Secret
オブジェクトの基本認証設定のサンプルを示します。
以下の例は、openshift-monitoring
namespace の rw-basic-auth
という名前の Secret
オブジェクトを使用する basicAuth
リモート書き込み設定を示しています。これは、エンドポイントの認証認証情報がすでに設定されていることを前提としています。
Secret
オブジェクトを使用したベアラートークンによる認証のサンプル YAML
以下は、openshift-monitoring
namespace の rw-bearer-auth
という名前の Secret
オブジェクトのベアラートークン設定を示しています。
- 1
- 認証トークン。
以下は、openshift-monitoring
namespace の rw-bearer-auth
という名前の Secret
オブジェクトを使用するベアラートークン config map の設定例を示しています。
OAuth 2.0 認証のサンプル YAML
以下は、openshift-monitoring
namespace の oauth2-credentials
という名前の Secret
オブジェクトの OAuth 2.0 設定のサンプルを示しています。
以下は、openshift-monitoring
namespace の oauth2-credentials
という Secret
オブジェクトを使用した oauth2
リモート書き込み認証のサンプル設定です。
- 1 3
- 対応する
Secret
オブジェクトの名前。ClientId
はConfigMap
オブジェクトを参照することもできますが、clientSecret
はSecret
オブジェクトを参照する必要があることに注意してください。 - 2 4
- 指定された
Secret
オブジェクトの OAuth 2.0 認証情報が含まれるキー。 - 5
- 指定された
clientId
およびclientSecret
でトークンを取得するために使用される URL。 - 6
- 認可要求の OAuth 2.0 スコープ。これらのスコープは、トークンがアクセスできるデータを制限します。
- 7
- 認可サーバーに必要な OAuth 2.0 認可要求パラメーター。
TLS クライアント認証のサンプル YAML
以下は、openshift-monitoring
namespace 内の mtls-bundle
という名前の tls
Secret
オブジェクトに対する TLS クライアント設定のサンプルです。
以下の例は、mtls-bundle
という名前の TLS Secret
オブジェクトを使用する tlsConfig
リモート書き込み認証設定を示しています。
2.12.2. リモート書き込みキューの設定例 リンクのコピーリンクがクリップボードにコピーされました!
リモート書き込み用の queueConfig
オブジェクトを使用して、リモート書き込みキューパラメーターを調整できます。次の例は、openshift-monitoring
namespace のデフォルトプラットフォームモニタリングのキューパラメーターとそのデフォルト値を示しています。
デフォルト値を使用したリモート書き込みパラメーターの設定例