1.5. アラートの管理
ハブクラスターとマネージドクラスターの両方のアクティビティーを監視し、プラットフォームとユーザーのワークロードアラートをハブクラスターの Alertmanager に転送して、Slack、メール、PagerDuty などの外部システムに通知をルーティングするように、Observability アラートを設定します。
詳細は、以下を参照してください。
1.5.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
アラートを管理するには、次の認証情報と次のアクションが必要です。
- ハブクラスターで Observability を有効化する。
-
open-cluster-management-observabilitynamespace 内のSecretリソースに対する作成権限を保持する。 -
MultiClusterObservabilityリソースに対する編集権限を保持する。 - 再起動中にメトリクスが失われないように、マネージドクラスター上の Prometheus インスタンスを設定する。ヘルプについては、OpenShift Container Platform ドキュメントの 永続ストレージの設定 を参照してください。
- マネージドクラスターでユーザーワークロードの監視とアラートを有効化する。ヘルプについては、OpenShift Container Platform ドキュメントの ユーザーワークロード監視の設定 および アラートの管理 を参照してください。
-
Prometheus のユーザーワークロードの場合は、アラートルールにラベルを追加して、
openshift-user-workload-monitoringnamespace にデプロイされているユーザーワークロード Prometheus のみがアラートルールを評価するように強制し、Thanos Ruler インスタンスがそれらを処理しないようにする。ヘルプについては、OpenShift Container Platform ドキュメントの ユーザー定義プロジェクトのアラートルールの作成 を参照してください。
1.5.2. Alertmanager の設定 リンクのコピーリンクがクリップボードにコピーされました!
メール、Slack、PagerDuty などの外部メッセージングツールを統合し、Alertmanager から通知を受信します。open-cluster-management-observability namespace で alertmanager-config シークレットを上書きして、統合を追加し、Alertmanager のルートを設定します。以下の手順を実行して、カスタムのレシーバールールを更新します。
alertmanager-configシークレットからデータを抽出します。以下のコマンドを実行します。oc -n open-cluster-management-observability get secret alertmanager-config --template='{{ index .data "alertmanager.yaml" }}' |base64 -d > alertmanager.yamloc -n open-cluster-management-observability get secret alertmanager-config --template='{{ index .data "alertmanager.yaml" }}' |base64 -d > alertmanager.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行し、
alertmanager.yamlファイル設定を編集して保存します。oc -n open-cluster-management-observability create secret generic alertmanager-config --from-file=alertmanager.yaml --dry-run -o=yaml | oc -n open-cluster-management-observability replace secret --filename=-
oc -n open-cluster-management-observability create secret generic alertmanager-config --from-file=alertmanager.yaml --dry-run -o=yaml | oc -n open-cluster-management-observability replace secret --filename=-Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新したシークレットは以下の内容のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
シークレットを変更すると、変更はただちに適用されます。Alertmanager の例は、prometheus/alertmanager を参照してください。
1.5.3. Alertmanager からサードパーティーのエンドポイントへの通信を保護する リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes Secret リソースを通じて認証情報をセキュアかつ管理可能な状態に保つことで、Alertmanager から Slack、メール、PagerDuty などのサードパーティーのエンドポイントへのセキュアな外部通信を有効にします。認可認証情報にアクセスするには、alertmanager Pod 内にマウントできる任意のコンテンツを含む Secret リソースを作成できます。
Alertmanager 設定内のシークレットを参照するには、open-cluster-management-observability namespace 内に Secret リソースコンテンツを追加し、alertmanager Pod 内にコンテンツをマウントします。たとえば、TLS シークレットを作成してマウントするには、次の手順を実行します。
TLS 証明書を使用して
TLSシークレットを作成するには、次のコマンドを実行します。oc create secret tls tls --cert=</path/to/cert.crt> --key=</path/to/cert.key> -n open-cluster-management-observability
oc create secret tls tls --cert=</path/to/cert.crt> --key=</path/to/cert.key> -n open-cluster-management-observabilityCopy to Clipboard Copied! Toggle word wrap Toggle overflow tlsシークレットをMultiClusterObservabilityリソースにマウントするには、それをadvancedセクションに追加します。リソースは以下の内容のようになります。... advanced: alertmanager: secrets: ['tls']
... advanced: alertmanager: secrets: ['tls']Copy to Clipboard Copied! Toggle word wrap Toggle overflow Alertmanager 設定内に
tlsシークレットの参照を追加するには、シークレットのパスを設定に追加します。リソースは、以下の設定のようになります。tls_config: cert_file: '/etc/alertmanager/secrets/tls/tls.crt' key_file: '/etc/alertmanager/secrets/tls/tls.key'
tls_config: cert_file: '/etc/alertmanager/secrets/tls/tls.crt' key_file: '/etc/alertmanager/secrets/tls/tls.key'Copy to Clipboard Copied! Toggle word wrap Toggle overflow シークレットが
alertmanagerPod 内にあることを確認するには、次のコマンドを実行します。oc -n open-cluster-management-observability get secret alertmanager-config --template='{{ index .data "alertmanager.yaml" }}' |base64 -d > alertmanager.yamloc -n open-cluster-management-observability get secret alertmanager-config --template='{{ index .data "alertmanager.yaml" }}' |base64 -d > alertmanager.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow YAML の内容は次のようになります。
"global": "http_config": "tls_config": "cert_file": "/etc/alertmanager/secrets/storyverify/tls.crt" "key_file": "/etc/alertmanager/secrets/storyverify/tls.key""global": "http_config": "tls_config": "cert_file": "/etc/alertmanager/secrets/storyverify/tls.crt" "key_file": "/etc/alertmanager/secrets/storyverify/tls.key"Copy to Clipboard Copied! Toggle word wrap Toggle overflow alertmanager.yaml設定をalertmanager-configシークレットに保存するには、以下のコマンドを実行します。oc -n open-cluster-management-observability create secret generic alertmanager-config --from-file=alertmanager.yaml --dry-run -o=yaml
oc -n open-cluster-management-observability create secret generic alertmanager-config --from-file=alertmanager.yaml --dry-run -o=yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以前のシークレットを新しいシークレットに置き換えるには、次のコマンドを実行します。
oc -n open-cluster-management-observability replace secret --filename=-
oc -n open-cluster-management-observability replace secret --filename=-Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.4. アラートの転送 リンクのコピーリンクがクリップボードにコピーされました!
Observability を有効にすると、OpenShift Container Platform マネージドクラスターからのアラートは、ハブクラスターの Alertmanager に自動的に送信されます。デフォルトでは、すべてのプラットフォームアラートがハブクラスターの Alertmanager に送信されます。OpenShift Container Platform マネージドクラスターでユーザーワークロードアラートを有効にすると、ユーザーワークロードアラートもハブクラスターに送信されます。alertmanager-config YAML ファイルを使用して、外部通知システムでアラートを設定できます。
alertmanager-config YAML ファイルの例を以下に示します。
アラート転送用のプロキシーを設定する場合は、alertmanager-config YAML ファイルに次の global エントリーを追加します。
global:
slack_api_url: '<slack_webhook_url>'
http_config:
proxy_url: http://****
global:
slack_api_url: '<slack_webhook_url>'
http_config:
proxy_url: http://****
ユーザーワークロードアラートを転送する場合、アラートは Thanos ルーラーではなく、ユーザーワークロード Prometheus インスタンスによって処理される必要があります。PrometheusRule リソースの次の例を参照してください。
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
labels:
openshift.io/prometheus-rule-evaluation-scope: leaf-prometheus
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
labels:
openshift.io/prometheus-rule-evaluation-scope: leaf-prometheus
1.5.5. マネージドクラスターのアラート転送の無効化 リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターのアラート転送を無効にするには、MultiClusterObservability カスタムリソースに mco-disable-alerting: "true" アノテーションを追加します。mco-disable-alerting: "true" アノテーションを設定すると、プラットフォームおよびユーザーワークロードアラートは、いずれもハブクラスターの Alertmanager に転送されません。マネージドクラスターの転送設定は元に戻ります。
openshift-monitoring namespace の cluster-monitoring-config config map への設定の更新が元に戻されます。アノテーションを設定すると、cluster-monitoring-config config map は Observability Operator のエンドポイントによって管理または更新されなくなります。設定を更新すると、マネージドクラスター上のプラットフォームおよびユーザーワークロードの Prometheus インスタンスが両方とも再起動します。以下の手順を実行します。
変更が元に戻ると、cluster-monitoring-reverted という名前の config map が open-cluster-management-addon-observability namespace に作成されます。手動で追加された新しいアラート転送設定は、config map から元に戻されません。
次のコマンドを実行して、
mco-disable-alertingアノテーションを"true"に設定します。oc annotate MultiClusterObservability observability mco-disable-alerting=true
oc annotate MultiClusterObservability observability mco-disable-alerting=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要: マネージドクラスター上の Prometheus が永続ボリュームで設定されていないと、メトリクスが失われます。
- ハブクラスターアラートマネージャーがマネージドクラスターアラートをサードパーティーのメッセージングツールに伝達していないことを確認します。
1.5.6. マネージドクラスターのユーザーワークロードアラート転送の無効化 リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターのユーザーワークロードアラート転送を無効にするには、MultiClusterObservability カスタムリソースに mco-disable-uwl-alerting: "true" アノテーションを追加します。アノテーションを設定すると、ハブクラスター上の Alertmanager へのユーザーワークロードアラートの転送は停止し、プラットフォームアラートは引き続き Alertmanager に転送されます。
アノテーションを設定すると、user-workload-monitoring-config config map は Observability Operator エンドポイントによって管理または更新されなくなります。設定を更新すると、マネージドクラスター上のユーザーワークロード Prometheus インスタンスが再起動されます。
次のコマンドを実行して、mco-disable-uwl-alerting アノテーションを "true" に設定します。
oc annotate MultiClusterObservability observability mco-disable-uwl-alerting=true
oc annotate MultiClusterObservability observability mco-disable-uwl-alerting=true
1.5.7. アラートをサイレントにする リンクのコピーリンクがクリップボードにコピーされました!
受信したくないアラートを追加します。アラート名、一致ラベル、または期間によってアラートをサイレントにすることができます。サイレントにしたいアラートを追加すると、ID が作成されます。サイレントにしたアラートの ID は、文字列 d839aca9-ed46-40be-84c4-dca8773671da のようになります。
アラートをサイレントにする方法は、引き続きお読みください。
Red Hat Advanced Cluster Management アラートをオフにするには、
open-cluster-management-observabilitynamespace のalertmanagerPod にアクセスできる必要があります。たとえば、SampleAlertをオフにするには、observability-alertmanager-0Pod ターミナルで次のコマンドを実行します。amtool silence add --alertmanager.url="http://localhost:9093" --author="user" --comment="Silencing sample alert" alertname="SampleAlert"
amtool silence add --alertmanager.url="http://localhost:9093" --author="user" --comment="Silencing sample alert" alertname="SampleAlert"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 複数の一致ラベルを使用してアラートをサイレントにします。次のコマンドは
match-label-1とmatch-label-2を使用します。amtool silence add --alertmanager.url="http://localhost:9093" --author="user" --comment="Silencing sample alert" <match-label-1>=<match-value-1> <match-label-2>=<match-value-2>
amtool silence add --alertmanager.url="http://localhost:9093" --author="user" --comment="Silencing sample alert" <match-label-1>=<match-value-1> <match-label-2>=<match-value-2>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 特定の期間アラートをサイレントにする場合は、
--durationフラグを使用します。次のコマンドを実行して、SampleAlertを 1 時間サイレントにします。amtool silence add --alertmanager.url="http://localhost:9093" --author="user" --comment="Silencing sample alert" --duration="1h" alertname="SampleAlert"
amtool silence add --alertmanager.url="http://localhost:9093" --author="user" --comment="Silencing sample alert" --duration="1h" alertname="SampleAlert"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 消音アラートの開始時刻または終了時刻を指定することもできます。次のコマンドを入力して、特定の開始時刻に
SampleAlertをサイレントにします。amtool silence add --alertmanager.url="http://localhost:9093" --author="user" --comment="Silencing sample alert" --start="2023-04-14T15:04:05-07:00" alertname="SampleAlert"
amtool silence add --alertmanager.url="http://localhost:9093" --author="user" --comment="Silencing sample alert" --start="2023-04-14T15:04:05-07:00" alertname="SampleAlert"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作成されたサイレント化されたアラートをすべて表示するには、次のコマンドを実行します。
amtool silence --alertmanager.url="http://localhost:9093"
amtool silence --alertmanager.url="http://localhost:9093"Copy to Clipboard Copied! Toggle word wrap Toggle overflow アラートをサイレントにしたくない場合は、次のコマンドを実行してアラートのサイレントを終了します。
amtool silence expire --alertmanager.url="http://localhost:9093" "d839aca9-ed46-40be-84c4-dca8773671da"
amtool silence expire --alertmanager.url="http://localhost:9093" "d839aca9-ed46-40be-84c4-dca8773671da"Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのアラートをサイレントにするのを終了するには、次のコマンドを実行します。
amtool silence expire --alertmanager.url="http://localhost:9093" $(amtool silence query --alertmanager.url="http://localhost:9093" -q)
amtool silence expire --alertmanager.url="http://localhost:9093" $(amtool silence query --alertmanager.url="http://localhost:9093" -q)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.8. 可観測性ストレージの移行 リンクのコピーリンクがクリップボードにコピーされました!
アラートサイレンサーを使用する場合は、サイレンサーを以前の状態のまま保持しながら、可観測性ストレージを移行できます。これを行うには、選択した StorageClass リソースを使用する新しい StatefulSets および PersistentVolumes (PV) リソースを作成して、Red Hat Advanced Cluster Management の可観測性ストレージを移行します。
注記: PV のストレージは、クラスターから収集されたメトリクスを保存するために使用されるオブジェクトストレージとは異なります。
StatefulSet と PV を使用して可観測性データを新しいストレージに移行すると、次のデータコンポーネントが保存されます。
- Observatorium または Thanos: データを受信してオブジェクトストレージにアップロードします。一部のコンポーネントは PV にデータを保存します。このデータは、Observatorium または Thanos が起動時にオブジェクトストレージを自動的に再生成するため、このデータを失っても影響はありません。
- Alertmanager: サイレント化されたアラートのみを保存します。これらのサイレントアラートを保持する場合は、そのデータを新しい PV に移行する必要があります。
可観測性ストレージを移行するには、次の手順を実行します。
-
MultiClusterObservabilityで、.spec.storageConfig.storageClassフィールドを新しいストレージクラスに設定します。 -
PersistentVolumeClaimを削除しても以前のPersistentVolumesのデータが保持されるようにするために、既存のすべてのPersistentVolumesに移動します。 -
reclaimPolicyを"Retain": `oc patch pv <your-pv-name> -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'に変更します。 - オプション: データの損失を回避するには、Migrate persistent data to another Storage Class in DG 8 Operator in OCP 4 を参照してください。
次の
StatefulSetの場合、StatefulSetとPersistentVolumeClaimの両方を削除します。-
alertmanager-db-observability-alertmanager-<REPLICA_NUMBER> -
data-observability-thanos-<COMPONENT_NAME> -
data-observability-thanos-receive-default -
data-observability-thanos-store-shard -
重要: 新しい
StatefulSetを作成するには、MultiClusterObservabilityOperator Pod を削除してから再作成する必要がある場合があります。
-
-
同じ名前で正しい
StorageClassを使用して新しいPersistentVolumeClaimを再作成します。 -
古い
PersistentVolumeを参照する新しいPersistentVolumeClaimを作成します。 -
新しい
StatefulSetとPersistentVolumesが、選択した新しいStorageClassを使用していることを確認します。
1.5.9. アラートの抑制 リンクのコピーリンクがクリップボードにコピーされました!
重大度の低い Red Hat Advanced Cluster Management アラートをクラスター全体でグローバルに抑制します。アラートを抑制するには、open-cluster-management-observability namespace の alertmanager-config で抑制ルールを定義します。
抑制ルールは、既存のマッチャーの別のセットと一致する一連のパラメーター一致がある場合にアラートをミュートします。ルールを有効にするには、ターゲットアラートとソースアラートの両方で、equal リスト内のラベル名のラベル値が同じである必要があります。inhibit_rules は次のようになります。
- 1 1
inhibit_rulesパラメーターセクションは、同じ namespace のアラートを検索するために定義されています。criticalアラートがネームスペース内で開始し、その namespace に重大度レベルのwarningまたはinfoを含む他のアラートがある場合は、criticalアラートのみが Alertmanager レシーバーにルーティングされます。一致するものがあった場合、次のアラートが表示される場合があります。ALERTS{alertname="foo", namespace="ns-1", severity="critical"} ALERTS{alertname="foo", namespace="ns-1", severity="warning"}ALERTS{alertname="foo", namespace="ns-1", severity="critical"} ALERTS{alertname="foo", namespace="ns-1", severity="warning"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 2 2
source_matchパラメーターとtarget_match_reパラメーターの値が一致しない場合、アラートはレシーバーにルーティングされます。ALERTS{alertname="foo", namespace="ns-1", severity="critical"} ALERTS{alertname="foo", namespace="ns-2", severity="warning"}ALERTS{alertname="foo", namespace="ns-1", severity="critical"} ALERTS{alertname="foo", namespace="ns-2", severity="warning"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Red Hat Advanced Cluster Management で抑制されたアラートを表示するには、次のコマンドを入力します。
amtool alert --alertmanager.url="http://localhost:9093" --inhibited
amtool alert --alertmanager.url="http://localhost:9093" --inhibitedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.10. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- 詳細は、Observability の高度な設定 を参照してください。
- 可観測性に関するその他のトピックは、可観測性サービス を参照してください。