第4章 ユーザーワークロードモニタリングの設定
4.1. ユーザーワークロードモニタリングスタックを設定する準備 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、設定できるユーザー定義のモニタリングコンポーネント、ユーザーワークロードモニタリングを有効にする方法、およびユーザーワークロードモニタリングスタックを設定するための準備方法について説明します。
- モニタリングスタックのすべての設定パラメーターが公開されるわけではありません。設定では、Cluster Monitoring Operator の config map 参照 にリストされているパラメーターとフィールドのみがサポートされます。
- モニタリングスタックには、追加のリソース要件があります。Cluster Monitoring Operator のスケーリング でコンピューティングリソースに関する推奨事項を参照し、十分なリソースがあることを確認してください。
4.1.1. 設定可能なモニタリングコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
この表には、設定できるモニタリングコンポーネントと、user-workload-monitoring-config config map でコンポーネントを指定するために使用されるキーが表示されます。
| コンポーネント | user-workload-monitoring-config 設定マップキー |
|---|---|
| Prometheus Operator |
|
| Prometheus |
|
| Alertmanager |
|
| Thanos Ruler |
|
ConfigMap オブジェクトの設定変更によって、結果も異なります。
- Pod は再デプロイされません。したがって、サービスの停止はありません。
変更された Pod が再デプロイされます。
- 単一ノードクラスターの場合、一時的なサービスが停止します。
- マルチノードクラスターの場合、高可用性であるため、影響を受ける Pod は徐々にロールアウトされ、モニタリングスタックは引き続き利用可能です。
- 永続ボリュームの設定およびサイズ変更を行うと、高可用性であるかどうかに関係なく、常にサービスが停止します。
config map の変更を必要とする手順にはそれぞれ、想定される結果が含まれます。
4.1.2. ユーザー定義プロジェクトのモニタリングの有効化 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform では、デフォルトのプラットフォームのモニタリングに加えて、ユーザー定義プロジェクトのモニタリングを有効にできます。追加のモニタリングソリューションを必要とせずに、OpenShift Container Platform で独自のプロジェクトをモニタリングできます。この機能を使用することで、コアプラットフォームコンポーネントおよびユーザー定義プロジェクトのモニタリングが一元化されます。
Operator Lifecycle Manager (OLM) を使用してインストールされた Prometheus Operator のバージョンは、ユーザー定義のモニタリングと互換性がありません。そのため、OLM Prometheus Operator によって管理される Prometheus カスタムリソース (CR) としてインストールされるカスタム Prometheus インスタンスは OpenShift Container Platform ではサポートされていません。
4.1.2.1. ユーザー定義プロジェクトのモニタリングの有効化 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、クラスターモニタリング ConfigMap オブジェクトに enableUserWorkload: true フィールドを設定し、ユーザー定義プロジェクトのモニタリングを有効にできます。
ユーザー定義プロジェクトのモニタリングを有効にする前に、カスタム Prometheus インスタンスを削除する必要があります。
OpenShift Container Platform のユーザー定義プロジェクトのモニタリングを有効にするには、cluster-admin クラスターロールを持つユーザーとしてクラスターにアクセスできる必要があります。これにより、クラスター管理者は任意で、ユーザー定義のプロジェクトをモニターするコンポーネントを設定する権限をユーザーに付与できます。
前提条件
-
cluster-adminクラスターロールを持つユーザーとしてクラスターにアクセスできる。 -
OpenShift CLI (
oc) がインストールされている。 -
cluster-monitoring-configConfigMapオブジェクトを作成している。 オプションで
user-workload-monitoring-configConfigMapをopenshift-user-workload-monitoringプロジェクトに作成している。ユーザー定義プロジェクトをモニターするコンポーネントのConfigMapに設定オプションを追加できます。注記設定の変更を
user-workload-monitoring-configConfigMapに保存するたびに、openshift-user-workload-monitoringプロジェクトの Pod が再デプロイされます。これらのコンポーネントが再デプロイするまで時間がかかる場合があります。
手順
cluster-monitoring-configConfigMapオブジェクトを編集します。oc -n openshift-monitoring edit configmap cluster-monitoring-config
$ oc -n openshift-monitoring edit configmap cluster-monitoring-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow enableUserWorkload: trueをdata/config.yamlの下に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
trueに設定すると、enableUserWorkloadパラメーターはクラスター内のユーザー定義プロジェクトのモニタリングを有効にします。
変更を適用するためにファイルを保存します。ユーザー定義プロジェクトのモニタリングは自動的に有効になります。
注記ユーザー定義プロジェクトの監視を有効にすると、デフォルトで
user-workload-monitoring-configConfigMapオブジェクトが作成されます。prometheus-operator、prometheus-user-workloadおよびthanos-ruler-user-workloadPod がopenshift-user-workload-monitoringプロジェクトで実行中であることを確認します。Pod が起動するまでに少し時間がかかる場合があります。oc -n openshift-user-workload-monitoring get pod
$ oc -n openshift-user-workload-monitoring get podCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.2.2. ユーザーに対するユーザー定義プロジェクトのモニタリングを設定するための権限の付与 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、user-workload-monitoring-config-edit ロールをユーザーに割り当てることができます。これにより、OpenShift Container Platform のコアモニタリングコンポーネントの設定および管理権限を付与せずに、ユーザー定義プロジェクトのモニタリングを設定および管理する権限が付与されます。
前提条件
-
cluster-adminクラスターロールを持つユーザーとしてクラスターにアクセスできる。 - ロールを割り当てるユーザーアカウントがすでに存在している。
-
OpenShift CLI (
oc) がインストールされている。
手順
user-workload-monitoring-config-editロールをopenshift-user-workload-monitoringプロジェクトのユーザーに割り当てます。oc -n openshift-user-workload-monitoring adm policy add-role-to-user \ user-workload-monitoring-config-edit <user> \ --role-namespace openshift-user-workload-monitoring
$ oc -n openshift-user-workload-monitoring adm policy add-role-to-user \ user-workload-monitoring-config-edit <user> \ --role-namespace openshift-user-workload-monitoringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 関連するロールバインディングを表示して、ユーザーが
user-workload-monitoring-config-editロールに正しく割り当てられていることを確認します。oc describe rolebinding <role_binding_name> -n openshift-user-workload-monitoring
$ oc describe rolebinding <role_binding_name> -n openshift-user-workload-monitoringCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
oc describe rolebinding user-workload-monitoring-config-edit -n openshift-user-workload-monitoring
$ oc describe rolebinding user-workload-monitoring-config-edit -n openshift-user-workload-monitoringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- この例では、
user1がuser-workload-monitoring-config-editロールに割り当てられています。
4.1.3. ユーザー定義プロジェクトのアラートルーティングの有効化 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform では、管理者はユーザー定義プロジェクトのアラートルーティングを有効にできます。このプロセスには、以下の手順が含まれます。
ユーザー定義プロジェクトのアラートルーティングを有効にします。
- デフォルトのプラットフォーム Alertmanager インスタンスを使用します。
- ユーザー定義プロジェクトにのみ、別の Alertmanager インスタンスを使用します。
- ユーザー定義プロジェクトのアラートルーティングを設定するための権限をユーザーに付与します。
これらの手順を完了すると、開発者およびその他のユーザーはユーザー定義のプロジェクトのカスタムアラートおよびアラートルーティングを設定できます。
4.1.3.1. ユーザー定義のアラートルーティングのプラットフォーム Alertmanager インスタンスの有効化 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーは、Alertmanager のメインプラットフォームインスタンスを使用するユーザー定義のアラートルーティング設定を作成できます。
前提条件
-
cluster-adminクラスターロールを持つユーザーとしてクラスターにアクセスできる。 - クラスター管理者は、ユーザー定義プロジェクトのモニタリングを有効にしている。
-
OpenShift CLI (
oc) がインストールされている。
手順
cluster-monitoring-configConfigMapオブジェクトを編集します。oc -n openshift-monitoring edit configmap cluster-monitoring-config
$ oc -n openshift-monitoring edit configmap cluster-monitoring-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow alertmanagerMainセクションにenableUserAlertmanagerConfig: trueをdata/config.yamlの下に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
enableUserAlertmanagerConfig値をtrueに設定して、ユーザーが Alertmanager のメインプラットフォームインスタンスを使用するユーザー定義のアラートルーティング設定を作成できるようにします。
- 変更を適用するためにファイルを保存します。新しい設定は自動的に適用されます。
4.1.3.2. ユーザー定義のアラートルーティング用の個別の Alertmanager インスタンスの有効化 リンクのコピーリンクがクリップボードにコピーされました!
クラスターによっては、ユーザー定義のプロジェクト用に専用の Alertmanager インスタンスをデプロイする必要がある場合があります。これは、デフォルトのプラットフォーム Alertmanager インスタンスの負荷を軽減するのに役立ちます。また、デフォルトのプラットフォームアラートとユーザー定義のアラートを分離することができます。このような場合、必要に応じて、Alertmanager の別のインスタンスを有効にして、ユーザー定義のプロジェクトのみにアラートを送信できます。
前提条件
-
cluster-adminクラスターロールを持つユーザーとしてクラスターにアクセスできる。 - ユーザー定義プロジェクトのモニタリングが有効化されている。
-
OpenShift CLI (
oc) がインストールされている。
手順
user-workload-monitoring-configConfigMapオブジェクトを編集します。oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow data/config.yamlの下にあるalertmanagerセクションにenabled: trueおよびenableAlertmanagerConfig: trueを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
enabledの値をtrueに設定して、クラスター内のユーザー定義プロジェクトの Alertmanager の専用インスタンスを有効にします。値をfalseに設定するか、キーを完全に省略してユーザー定義プロジェクトの Alertmanager を無効にします。この値をfalseに設定した場合や、キーを省略すると、ユーザー定義のアラートはデフォルトのプラットフォーム Alertmanager インスタンスにルーティングされます。- 2
enableAlertmanagerConfig値をtrueに設定して、ユーザーがAlertmanagerConfigオブジェクトで独自のアラートルーティング設定を定義できるようにします。
- 変更を適用するためにファイルを保存します。ユーザー定義プロジェクトの Alertmanager の専用インスタンスが自動的に起動します。
検証
user-workloadAlertmanager インスタンスが起動していることを確認します。oc -n openshift-user-workload-monitoring get alertmanager
$ oc -n openshift-user-workload-monitoring get alertmanagerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME VERSION REPLICAS AGE user-workload 0.24.0 2 100s
NAME VERSION REPLICAS AGE user-workload 0.24.0 2 100sCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.3.3. ユーザー定義プロジェクトのアラートルーティングを設定するためのユーザーへの権限の付与 リンクのコピーリンクがクリップボードにコピーされました!
ユーザー定義プロジェクトのアラートルーティングを設定する権限をユーザーに付与できます。
前提条件
-
cluster-adminクラスターロールを持つユーザーとしてクラスターにアクセスできる。 - ユーザー定義プロジェクトのモニタリングが有効化されている。
- ロールを割り当てるユーザーアカウントがすでに存在している。
-
OpenShift CLI (
oc) がインストールされている。
手順
ユーザー定義プロジェクトのユーザーに
alert-routing-editクラスターロールを割り当てます。oc -n <namespace> adm policy add-role-to-user alert-routing-edit <user>
$ oc -n <namespace> adm policy add-role-to-user alert-routing-edit <user>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<namespace>は、ns1などのユーザー定義プロジェクトの namespace に置き換えます。<user>は、ロールを割り当てるアカウントのユーザー名に置き換えます。
4.1.4. ユーザー定義プロジェクトの監視権限をユーザーに付与する リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、すべての OpenShift Container Platform のコアプロジェクトおよびユーザー定義プロジェクトを監視できます。
以下の場合に、開発者と他のユーザーに異なる権限を付与することもできます。
- ユーザー定義プロジェクトの監視
- ユーザー定義プロジェクトを監視するコンポーネントの設定
- ユーザー定義プロジェクトのアラートルーティングの設定
- ユーザー定義プロジェクトのアラートとサイレンスの管理
次のいずれかのモニタリングロールまたはクラスターロールを割り当てることで、権限を付与できます。
| ロール名 | 説明 | プロジェクト |
|---|---|---|
|
|
このロールを持つユーザーは、 |
|
|
| このロールを持つユーザーには、ユーザー定義の Alertmanager が有効な場合、全プロジェクトのユーザー定義の Alertmanager API に対する読み取りアクセス権が付与されます。 |
|
|
| このロールを持つユーザーには、ユーザー定義の Alertmanager が有効な場合、全プロジェクトのユーザー定義の Alertmanager API に対する読み取りおよび書き込みアクセス権が付与されます。 |
|
| クラスターロール名 | 説明 | プロジェクト |
|---|---|---|
|
|
このクラスターロールを持つユーザーには、ユーザー定義プロジェクトの |
|
|
|
このクラスターロールを持つユーザーは、ユーザー定義プロジェクトの |
|
|
|
このクラスターロールを持つユーザーには、 |
|
|
|
このクラスターロールを持つユーザーは、ユーザー定義プロジェクトの |
|
4.1.4.1. Web コンソールを使用したユーザー権限の付与 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールを使用して、openshift-monitoring プロジェクトまたはユーザー自身のプロジェクトに対する権限をユーザーに付与できます。
前提条件
-
cluster-adminクラスターロールを持つユーザーとしてクラスターにアクセスできる。 - ロールを割り当てるユーザーアカウントがすでに存在している。
手順
-
OpenShift Container Platform Web コンソールの Administrator パースペクティブで、User Management
RoleBindings Create binding に移動します。 - Binding Type セクションで、Namespace Role Binding タイプを選択します。
- Name フィールドに、ロールバインディングの名前を入力します。
Namespace フィールドで、アクセスを許可するプロジェクトを選択します。
重要この手順を使用してユーザーに付与するモニタリングロールまたはクラスターロールの権限は、Namespace フィールドで選択したプロジェクトにのみ適用されます。
- Role Name リストからモニタリングロールまたはクラスターロールを選択します。
- Subject セクションで、User を選択します。
- Subject Name フィールドにユーザーの名前を入力します。
- Create を選択して、ロールバインディングを適用します。
4.1.4.2. CLI を使用したユーザー権限の付与 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift CLI (oc) を使用して、独自のプロジェクトをモニターする権限をユーザーに付与できます。
どちらのロールまたはクラスターロールを選択する場合でも、クラスター管理者が特定のプロジェクトにバインドする必要があります。
前提条件
-
cluster-adminクラスターロールを持つユーザーとしてクラスターにアクセスできる。 - ロールを割り当てるユーザーアカウントがすでに存在している。
-
OpenShift CLI (
oc) がインストールされている。
手順
プロジェクトのユーザーにモニタリングロールを割り当てるには、次のコマンドを入力します。
oc adm policy add-role-to-user <role> <user> -n <namespace> --role-namespace <namespace>
$ oc adm policy add-role-to-user <role> <user> -n <namespace> --role-namespace <namespace>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<role>は必要なモニタリングロールに、<user>はロールを割り当てるユーザーに、<namespace>はアクセスを許可するプロジェクトに置き換えます。
プロジェクトのユーザーにモニタリングクラスターロールを割り当てるには、次のコマンドを入力します。
oc adm policy add-cluster-role-to-user <cluster-role> <user> -n <namespace>
$ oc adm policy add-cluster-role-to-user <cluster-role> <user> -n <namespace>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<cluster-role>は必要なモニタリングクラスターロールに、<user>はクラスターロールを割り当てるユーザーに、<namespace>はアクセスを許可するプロジェクトに置き換えます。
4.1.5. モニタリングからのユーザー定義のプロジェクトを除く リンクのコピーリンクがクリップボードにコピーされました!
ユーザー定義のプロジェクトは、ユーザーワークロードモニタリングから除外できます。これを実行するには、openshift.io/user-monitoring ラベルに false を指定して、プロジェクトの namespace に追加します。
手順
ラベルをプロジェクト namespace に追加します。
oc label namespace my-project 'openshift.io/user-monitoring=false'
$ oc label namespace my-project 'openshift.io/user-monitoring=false'Copy to Clipboard Copied! Toggle word wrap Toggle overflow モニタリングを再度有効にするには、namespace からラベルを削除します。
oc label namespace my-project 'openshift.io/user-monitoring-'
$ oc label namespace my-project 'openshift.io/user-monitoring-'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記プロジェクトにアクティブなモニタリングターゲットがあった場合、ラベルを追加した後、Prometheus がそれらのスクレイピングを停止するまでに数分かかる場合があります。
4.1.6. ユーザー定義プロジェクトのモニタリングの無効化 リンクのコピーリンクがクリップボードにコピーされました!
ユーザー定義プロジェクトのモニタリングを有効にした後に、クラスターモニタリング ConfigMap オブジェクトに enableUserWorkload: false を設定してこれを再度無効にできます。
または、enableUserWorkload: true を削除して、ユーザー定義プロジェクトのモニタリングを無効にできます。
手順
cluster-monitoring-configConfigMapオブジェクトを編集します。oc -n openshift-monitoring edit configmap cluster-monitoring-config
$ oc -n openshift-monitoring edit configmap cluster-monitoring-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow data/config.yamlでenableUserWorkload:をfalseに設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 変更を適用するためにファイルを保存します。ユーザー定義プロジェクトのモニタリングは自動的に無効になります。
prometheus-operator、prometheus-user-workloadおよびthanos-ruler-user-workloadPod がopenshift-user-workload-monitoringプロジェクトで終了していることを確認します。これには少し時間がかかる場合があります。oc -n openshift-user-workload-monitoring get pod
$ oc -n openshift-user-workload-monitoring get podCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
No resources found in openshift-user-workload-monitoring project.
No resources found in openshift-user-workload-monitoring project.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
openshift-user-workload-monitoring プロジェクトの user-workload-monitoring-config ConfigMap オブジェクトは、ユーザー定義プロジェクトのモニタリングが無効にされている場合は自動的に削除されません。これにより、ConfigMap で作成した可能性のあるカスタム設定を保持されます。