第6章 アラートの管理
6.1. 管理者としてアラートを管理する
OpenShift Container Platform では、アラート UI を使用してアラート、サイレンス、およびアラートルールを管理できます。
OpenShift Container Platform 4.19 以降、Web コンソールのパースペクティブが統合されました。Developer パースペクティブは、デフォルトでは有効になっていません。
すべてのユーザーは、OpenShift Container Platform Web コンソールのすべての機能を操作できます。ただし、クラスターの所有者でない場合は、特定の機能にアクセスする権限をクラスターの所有者に要求する必要がある場合があります。
引き続き Developer パースペクティブを有効にできます。Web コンソールの Getting Started ペインでは、コンソールツアーの実行、クラスター設定に関する情報の検索、Developer パースペクティブを有効にするためのクイックスタートの表示、リンク先を表示して新機能の確認などを行えます。
アラート UI で利用可能なアラート、サイレンス、およびアラートルールは、アクセス可能なプロジェクトに関連付けられます。たとえば、管理者としてログインしている場合は、すべてのアラート、サイレンス、アラートルールにアクセスできます。
6.1.1. アラート UI へのアクセス
アラート UI は、OpenShift Container Platform Web コンソールからアクセスできます。
- 
							OpenShift Container Platform Web コンソールで、Observe Alerting に移動します。このパースペクティブのアラート UI には主要なページが 3 つあり、それが Alerts ページ、Silences ページ、Alerting rules ページです。 
6.1.2. アラート、サイレンスおよびアラートルールに関する情報の取得
アラート UI は、アラートおよびそれらを規定するアラートルールおよびサイレンスの詳細情報を提供します。
前提条件
- アラートを表示しているプロジェクトの表示権限を持つユーザーとしてクラスターにアクセスできる。
手順
アラートに関する情報を取得するには、以下を実行します。
- 
							OpenShift Container Platform Web コンソールで、Observe Alerting Alerts ページに移動します。 
- オプション: 検索リストで Name フィールドを使用し、アラートを名前で検索します。
- オプション: Filter リストでフィルターを選択し、アラートを状態、重大度およびソースでフィルターします。
- オプション: 1 つ以上の Name、Severity、State、および Source 列ヘッダーをクリックし、アラートを並べ替えます。
- アラートの名前をクリックして、Alert details ページを表示します。このページには、アラートの時系列データを示すグラフが含まれます。アラートに関する次の情報も提供されます。 - アラートの説明
- アラートに関連付けられたメッセージ
- アラートの GitHub 上の Runbook ページへのリンク (ページが存在する場合)
- アラートに割り当てられるラベル
- アラートを規定するアラートルールへのリンク
- アラートが存在する場合のアラートのサイレンス
 
サイレンスの情報を取得するには、以下を実行します。
- 
							OpenShift Container Platform Web コンソールの Observe Alerting Silences ページに移動します。 
- オプション: Search by name フィールドを使用し、サイレンスを名前でフィルターします。
- オプション: Filter リストでフィルターを選択し、サイレンスをフィルターします。デフォルトでは、Active および Pending フィルターが適用されます。
- オプション: Name、Firing alerts、State、Creator 列のヘッダーを 1 つ以上クリックして、サイレンスを並べ替えます。
- サイレンスの名前を選択すると、その Silence details ページが表示されます。このページには、以下の詳細が含まれます。 - アラート仕様
- 開始時間
- 終了時間
- サイレンス状態
- 発生するアラートの数およびリスト
 
アラートルールの情報を取得するには、以下を実行します。
- 
							OpenShift Container Platform Web コンソールで、Observe Alerting Alerting rules ページに移動します。 
- オプション: Filter 一覧でフィルターを選択し、アラートルールを状態、重大度およびソースでフィルターします。
- オプション: Name、Severity、Alert State、Source 列のヘッダーを 1 つ以上クリックし、アラートルールを並べ替えます。
- アラートルールの名前を選択して、その Alerting rule details ページを表示します。このページには、アラートルールに関する以下の情報が含まれます。 - アラートルール名、重大度、説明
- アラートを発動する条件を定義する式
- 条件が true で持続してアラートが発生するまでの期間
- アラートルールで管理される各アラートのグラフ。アラートが発動される値が表示されます。
- アラートルールで管理されるすべてのアラートを示す表。
 
6.1.3. サイレンスの管理
OpenShift Container Platform Web コンソールでアラートのサイレンスを作成できます。サイレンスを作成した後、それらを表示、編集、および期限切れにすることができます。また、アラートが発生しても、サイレンスが適用されたアラートに関する通知は届きません。
サイレンスを作成すると、それらは Alertmanager Pod 全体に複製されます。ただし、Alertmanager の永続ストレージを設定しないと、サイレンスが失われる可能性があります。これは、たとえば、すべての Alertmanager Pod が同時に再起動した場合に発生する可能性があります。
6.1.3.1. アラートをサイレントにする
特定のアラート、または定義する仕様に一致するアラートのいずれかをサイレンスにすることができます。
前提条件
- 
								クラスター管理者の場合は、cluster-adminロールを持つユーザーとしてクラスターにアクセスできます。
- 管理者以外のユーザーの場合は、次のユーザーロールを持つユーザーとしてクラスターにアクセスできる。 - 
										Alertmanager へのアクセスを許可する cluster-monitoring-viewクラスターロール。
- 
										アラートの作成と無音化を許可する monitoring-alertmanager-editロール。
 
- 
										Alertmanager へのアクセスを許可する 
手順
特定のアラートをサイレントにするには、以下を実行します。
- 
								OpenShift Container Platform Web コンソールで、Observe Alerting Alerts に移動します。 
- 
								サイレントにするアラートに対して、 
								 をクリックし、Silence alert を選択すると、選択したアラートのデフォルト設定を含む Silence alert ページが開きます。 をクリックし、Silence alert を選択すると、選択したアラートのデフォルト設定を含む Silence alert ページが開きます。
- オプション: サイレンスのデフォルト設定の詳細を変更します。 注記- サイレンスを保存する前にコメントを追加する必要があります。 
- サイレンスを保存するには、Silence をクリックします。
一連のアラートをサイレントにします。
- 
								OpenShift Container Platform Web コンソールで、Observe Alerting Silences に移動します。 
- Create silence をクリックします。
- Create silence フォームで、アラートのスケジュール、期間、およびラベルの詳細を設定します。 注記- サイレンスを保存する前にコメントを追加する必要があります。 
- 入力したラベルと一致するアラートのサイレンスを作成するには、Silence をクリックします。
6.1.3.2. サイレンスの編集
サイレンスを編集すると、既存のサイレンスが期限切れになり、変更された設定で新しいサイレンスが作成されます。
前提条件
- 
								クラスター管理者の場合は、cluster-adminロールを持つユーザーとしてクラスターにアクセスできます。
- 管理者以外のユーザーの場合は、次のユーザーロールを持つユーザーとしてクラスターにアクセスできる。 - 
										Alertmanager へのアクセスを許可する cluster-monitoring-viewクラスターロール。
- 
										アラートの作成と無音化を許可する monitoring-alertmanager-editロール。
 
- 
										Alertmanager へのアクセスを許可する 
手順
- 
								OpenShift Container Platform Web コンソールで、Observe Alerting Silences に移動します。 
- 変更するサイレンスの  をクリックして Edit silence を選択します。 をクリックして Edit silence を選択します。- または、Actions をクリックし、サイレンスの Silence details ページで Edit silence を選択することもできます。 
- Edit silence ページで変更を加え、Silence をクリックします。これにより、既存のサイレンスが期限切れになり、更新された設定でサイレンスが作成されます。
6.1.3.3. 有効期限切れにするサイレンス
単一のサイレンスまたは複数のサイレンスを期限切れにすることができます。サイレンスを期限切れにすると、そのサイレンスは永久に非アクティブ化されます。
サイレンスが適用された期限切れのアラートは削除できません。120 時間を超えて期限切れになったサイレンスはガベージコレクションされます。
前提条件
- 
								クラスター管理者の場合は、cluster-adminロールを持つユーザーとしてクラスターにアクセスできます。
- 管理者以外のユーザーの場合は、次のユーザーロールを持つユーザーとしてクラスターにアクセスできる。 - 
										Alertmanager へのアクセスを許可する cluster-monitoring-viewクラスターロール。
- 
										アラートの作成と無音化を許可する monitoring-alertmanager-editロール。
 
- 
										Alertmanager へのアクセスを許可する 
手順
- 
								Observe Alerting Silences に移動します。 
- 期限切れにするサイレンスは、対応する行のチェックボックスを選択します。
- Expire 1 silence をクリックして選択した 1 つのサイレンスを期限切れにするか、Expire <n> silences をクリックして複数の沈黙を期限切れにします (<n> は選択した沈黙の数になります)。 - または、単一の沈黙を期限切れにするには、Actions をクリックし、サイレンスの Silence details ページで Expire silence を選択します。 
6.1.4. コアプラットフォームモニタリングのアラートルールの管理
OpenShift Container Platform のモニタリングには、プラットフォームメトリクス用のデフォルトのアラートルールが多数用意されています。クラスター管理者は、このルールセットを 2 つの方法でカスタマイズできます。
- 
							しきい値を調整するか、ラベルを追加および変更して、既存のプラットフォームのアラートルールの設定を変更します。たとえば、アラートの severityラベルをwarningからcriticalに変更すると、アラートのフラグが付いた問題のルーティングおよびトリアージに役立ちます。
- 
							openshift-monitoringプロジェクトのコアプラットフォームメトリクスに基づいてクエリー式を作成することにより、新しいカスタムアラートルールを定義して追加します。
6.1.4.1. 新規アラートルールの作成
クラスター管理者は、プラットフォームメトリクスに基づいて新規のアラートルールを作成できます。これらのアラートルールは、選択したメトリクスの値に基づいてアラートをトリガーします。
- 
									既存のプラットフォームアラートルールに基づいてカスタマイズされた AlertingRuleリソースを作成する場合は、元のアラートをサイレントに設定して、競合するアラートを受信しないようにします。
- ユーザーがアラートの影響と原因を理解できるように、アラートルールにアラートメッセージと重大度値が含まれていることを確認します。
前提条件
- 
								cluster-adminクラスターロールを持つユーザーとしてクラスターにアクセスできる。
- 
								OpenShift CLI (oc) がインストールされている。
手順
- 
								example-alerting-rule.yamlという名前の新しい YAML 設定ファイルを作成します。
- AlertingRuleリソースを YAML ファイルに追加します。以下の例では、デフォルトの- Watchdogアラートと同様に- exampleという名前の新規アラートルールを作成します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 重要- openshift-monitoringnamespace に- AlertingRuleオブジェクトを作成する必要があります。それ以外の場合は、アラートルールが受け入れられません。
- 設定ファイルをクラスターに適用します。 - oc apply -f example-alerting-rule.yaml - $ oc apply -f example-alerting-rule.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
6.1.4.2. コアプラットフォームのアラートルールの変更
クラスター管理者は、Alertmanager がコアプラットフォームアラートをレシーバーにルーティングする前に変更できます。たとえば、アラートの重大度のラベルを変更したり、カスタムラベルを追加したり、アラートの送信から Alertmanager に送信されないようにしたりできます。
前提条件
- 
								cluster-adminクラスターロールを持つユーザーとしてクラスターにアクセスできる。
- 
								OpenShift CLI (oc) がインストールされている。
手順
- 
								example-modified-alerting-rule.yamlという名前の新しい YAML 設定ファイルを作成します。
- AlertRelabelConfigリソースを YAML ファイルに追加します。以下の例では、デフォルトのプラットフォーム- watchdogアラートルールの- severity設定を- criticalに変更します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 重要- openshift-monitoringnamespace に- AlertRelabelConfigオブジェクトを作成する必要があります。それ以外の場合は、アラートラベルが変更しません。
- 設定ファイルをクラスターに適用します。 - oc apply -f example-modified-alerting-rule.yaml - $ oc apply -f example-modified-alerting-rule.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
6.1.5. ユーザー定義プロジェクトのアラートルールの管理
OpenShift Container Platform では、ユーザー定義プロジェクトのアラートルールを作成、表示、編集、削除できます。これらのアラートルールは、選択したメトリクスの値に基づいてアラートをトリガーします。
6.1.5.1. ユーザー定義プロジェクトのアラートルールの作成
ユーザー定義のプロジェクトに対してアラートルールを作成できます。これらのアラートルールは、選択したメトリクスの値に基づいてアラートをトリガーします。
ユーザーがアラートの影響と原因を理解できるように、アラートルールにアラートメッセージと重大度値が含まれていることを確認します。
前提条件
- ユーザー定義プロジェクトのモニタリングが有効化されている。
- 
								アラートルールを作成するプロジェクトのクラスター管理者または monitoring-rules-editクラスターロールを持つユーザーとしてログインする。
- 
								OpenShift CLI (oc) がインストールされている。
手順
- 
								アラートルールの YAML ファイルを作成します。この例では、example-app-alerting-rule.yamlという名前です。
- アラートルール設定を YAML ファイルに追加します。以下の例では、 - example-alertという名前の新規アラートルールを作成します。アラートルールは、サンプルサービスによって公開される- versionメトリクスが- 0になるとアラートを実行します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 設定ファイルをクラスターに適用します。 - oc apply -f example-app-alerting-rule.yaml - $ oc apply -f example-app-alerting-rule.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
6.1.5.2. ユーザー定義プロジェクトのクロスプロジェクトアラートルールの作成
						user-workload-monitoring-config config map でプロジェクトを設定することにより、元のプロジェクトにバインドされないアラートルールを作成できます。このプロジェクトで作成された PrometheusRule オブジェクトは、すべてのプロジェクトに適用できます。
					
						そのため、各ユーザープロジェクトに個別の PrometheusRule オブジェクトを用意する代わりに、複数のユーザー定義プロジェクトに適用される汎用のアラートルールを設定できます。PrometheusRule オブジェクトで PromQL クエリーを使用すると、アラートルールに追加または除外するプロジェクトをフィルタリングできます。
					
前提条件
- 
								クラスター管理者の場合は、cluster-adminクラスターロールを持つユーザーとしてクラスターにアクセスできる。
- 管理者以外のユーザーの場合は、次のユーザーロールを持つユーザーとしてクラスターにアクセスできる。 - 
										user-workload-monitoring-configconfig map を編集するための、openshift-user-workload-monitoringプロジェクトのuser-workload-monitoring-config-editロール。
- 
										アラートルールを作成するプロジェクトの monitoring-rules-editクラスターロール。
 
- 
										
- クラスター管理者は、ユーザー定義プロジェクトのモニタリングを有効にしている。
- 
								OpenShift CLI (oc) がインストールされている。
手順
- openshift-user-workload-monitoringプロジェクトで- user-workload-monitoring-configconfig map を編集します。- oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config - $ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 特定のプロジェクトにバインドされないアラートルールを作成するプロジェクトを設定します。 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- クロスプロジェクトアラートルールを作成するプロジェクトを 1 つ以上指定します。ユーザー定義のモニタリング用の Prometheus および Thanos Ruler は、これらのプロジェクトで作成されたPrometheusRuleオブジェクトのnamespaceラベルを適用しません。そのため、PrometheusRuleオブジェクトはすべてのプロジェクトに適用できます。
 
- 
								アラートルールの YAML ファイルを作成します。この例では、example-cross-project-alerting-rule.yamlという名前です。
- アラートルール設定を YAML ファイルに追加します。次の例では、 - example-securityという名前の新しいクロスプロジェクトアラートルールを作成します。ユーザープロジェクトが制限付き Pod セキュリティーポリシーを適用しない場合、このアラートルールが起動します。- クロスプロジェクトアラートルールの例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 重要- namespacesWithoutLabelEnforcementフィールドで指定したプロジェクトのうちの 1 つにだけ、特定のクロスプロジェクトアラートルールを作成してください。複数のプロジェクトで同じクロスプロジェクトアラートルールを作成すると、アラートが繰り返し発生します。
- 設定ファイルをクラスターに適用します。 - oc apply -f example-cross-project-alerting-rule.yaml - $ oc apply -f example-cross-project-alerting-rule.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
6.1.5.3. 単一ビューでのすべてのプロジェクトのアラートルールのリスト表示
クラスター管理者は、OpenShift Container Platform のコアプロジェクトおよびユーザー定義プロジェクトのアラートルールを単一ビューでリスト表示できます。
前提条件
- 
								cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。
- 
								OpenShift CLI (oc) がインストールされている。
手順
- 
								OpenShift Container Platform Web コンソールで、Observe Alerting Alerting rules に移動します。 
- Filter ドロップダウンメニューで、Platform および User ソースを選択します。 注記- Platform ソースはデフォルトで選択されます。 
6.1.5.4. ユーザー定義プロジェクトのアラートルールの削除
ユーザー定義プロジェクトのアラートルールを削除できます。
前提条件
- ユーザー定義プロジェクトのモニタリングが有効化されている。
- 
								アラートルールを作成するプロジェクトのクラスター管理者または monitoring-rules-editクラスターロールを持つユーザーとしてログインする。
- 
								OpenShift CLI (oc) がインストールされている。
手順
- <namespace>内のルール- <alerting_rule>を削除するには、次のコマンドを実行します。- oc -n <namespace> delete prometheusrule <alerting_rule> - $ oc -n <namespace> delete prometheusrule <alerting_rule>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
6.1.5.5. ユーザー定義プロジェクトのクロスプロジェクトアラートルールの無効化
						ユーザー定義プロジェクトのクロスプロジェクトアラートルールの作成は、デフォルトで有効になっています。クラスター管理者は、次の理由により、cluster-monitoring-config config map でこの機能を無効にできます。
					
- ユーザー定義のモニタリングによってクラスターモニタリングスタックが過負荷になるのを防止するため。
- バグのあるアラートルールがクラスターに適用されないようにして、問題の原因となるルールを特定する必要を排除するため。
前提条件
- 
								cluster-adminクラスターロールを持つユーザーとしてクラスターにアクセスできる。
- 
								OpenShift CLI (oc) がインストールされている。
手順
- openshift-monitoringプロジェクトで- cluster-monitoring-configconfig map を編集します。- 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 
- cluster-monitoring-configconfig map で、- data/config.yaml/userWorkloadの- rulesWithoutLabelEnforcementAllowed値を- falseに設定して、クロスプロジェクトアラートルールを作成するオプションを無効にします。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 変更を適用するためにファイルを保存します。