10.8. 通知を送信するための Alertmanager の設定
デフォルトのプラットフォームアラートの場合は alertmanager-main
シークレット、ユーザー定義アラートの場合は alertmanager-user-workload
シークレットを編集して、通知を送信するように Alertmanager を設定できます。
サポートされているバージョンのアップストリーム Alertmanager のすべての機能は、OpenShift Alertmanager 設定でもサポートされます。サポートされているアップストリーム Alertmanager バージョンのあらゆる設定オプションを確認するには、Alertmanager 設定 を参照してください。
10.8.1. デフォルトのプラットフォームアラートの通知を設定する
通知を送信するように Alertmanager を設定できます。Alertmanager からデフォルトのプラットフォームアラートに関する通知を送信する場所と方法をカスタマイズするには、openshift-monitoring
namespace の alertmanager-main
シークレットのデフォルト設定を編集します。
Alertmanager はデフォルトでは通知を送信しません。alertmanager-main
シークレット設定ファイルで通知の詳細を設定して、通知を届けるように Alertmanager を設定することを推奨します。
前提条件
-
cluster-admin
クラスターロールを持つユーザーとしてクラスターにアクセスできる。
手順
Alertmanager の YAML 設定ファイルを開きます。
CLI から Alertmanager 設定を開くには、以下を実行します。
現在アクティブな Alertmanager 設定を、
alertmanager-main
シークレットからalertmanager.yaml
ファイルに出力します。$ oc -n openshift-monitoring get secret alertmanager-main --template='{{ index .data "alertmanager.yaml" }}' | base64 --decode > alertmanager.yaml
-
alertmanager.yaml
ファイルを開きます。
OpenShift Container Platform Web コンソールから Alertmanager 設定を開くには、以下を実行します。
-
Web コンソールの Administration
Cluster Settings Configuration Alertmanager YAML ページに移動します。
-
Web コンソールの Administration
YAML 内のパラメーターを更新して、Alertmanager 設定を編集します。
global: resolve_timeout: 5m route: group_wait: 30s 1 group_interval: 5m 2 repeat_interval: 12h 3 receiver: default routes: - matchers: - "alertname=Watchdog" repeat_interval: 2m receiver: watchdog - matchers: - "service=<your_service>" 4 routes: - matchers: - <your_matching_rules> 5 receiver: <receiver> 6 receivers: - name: default - name: watchdog - name: <receiver> <receiver_configuration> 7
- 1
- Alertmanager が通知を送信する前に、アラートグループの初期アラートを収集するまで待機する時間を指定します。
- 2
- 最初の通知がすでに送信されているアラートグループに追加された新しいアラートに関する通知を Alertmanager が送信するまでの時間を指定します。
- 3
- アラート通知を繰り返すまでの最小時間を指定します。各グループの間隔で通知を繰り返す場合は、
repeat_interval
の値をgroup_interval
の値よりも小さく設定します。ただし、特定の Alertmanager Pod が再起動または再スケジュールされた場合などには、通知の繰り返しが遅れる可能性があります。 - 4
- アラートを発生させるサービスの名前を指定します。
- 5
- アラートに一致するラベルを指定します。
- 6
- アラートに使用するレシーバーの名前を指定します。
- 7
- レシーバーの設定を指定します。
重要-
matchers
キー名を使用して、ノードの照合でアラートが満たす必要のあるマッチャーを指定します。match
またはmatch_re
キー名は使用しないでください。どちらも非推奨であり、今後のリリースで削除される予定です。 抑制ルールを定義する場合は、次のキー名を使用します。
-
target_matchers
: ターゲットマッチャーを示します。 -
source_matchers
: ソースマッチャーを示します。
target_match
、target_match_re
、source_match
、またはsource_match_re
キー名は使用しないでください。これらは非推奨であり、今後のリリースで削除される予定です。-
以下の Alertmanager 設定例は、PagerDuty をアラートレシーバーとして設定します。
global: resolve_timeout: 5m route: group_wait: 30s group_interval: 5m repeat_interval: 12h receiver: default routes: - matchers: - "alertname=Watchdog" repeat_interval: 2m receiver: watchdog - matchers: - "service=example-app" routes: - matchers: - "severity=critical" receiver: team-frontend-page receivers: - name: default - name: watchdog - name: team-frontend-page pagerduty_configs: - service_key: "<your_key>"
この設定では、
example-app
サービスによって発生した重大度がcritical
のアラートが、team-frontend-page
レシーバーを介して送信されます。通常、この種のアラートは、個人または緊急対応チームに通知します。新規設定をファイルで適用します。
CLI から変更を適用するには、次のコマンドを実行します。
$ oc -n openshift-monitoring create secret generic alertmanager-main --from-file=alertmanager.yaml --dry-run=client -o=yaml | oc -n openshift-monitoring replace secret --filename=-
- OpenShift Container Platform Web コンソールから変更を適用するには、Save をクリックします。
10.8.2. ユーザー定義アラートの通知の設定
ユーザー定義のアラートルーティング専用の Alertmanager の別のインスタンスを有効にしている場合は、openshift-user-workload-monitoring
namespace の alertmanager-user-workload
シークレットを編集して、インスタンスが通知を送信する場所と方法をカスタマイズできます。
前提条件
-
cluster-admin
クラスターロールを持つユーザーとしてクラスターにアクセスできる。 -
OpenShift CLI (
oc
) がインストールされている。
手順
現在アクティブな Alertmanager 設定をファイル
alertmanager.yaml
に出力します。$ oc -n openshift-user-workload-monitoring get secret alertmanager-user-workload --template='{{ index .data "alertmanager.yaml" }}' | base64 --decode > alertmanager.yaml
alertmanager.yaml
で設定を編集します。route: receiver: Default group_by: - name: Default routes: - matchers: - "service = prometheus-example-monitor" 1 receiver: <receiver> 2 receivers: - name: Default - name: <receiver> <receiver_configuration> 3
新規設定をファイルで適用します。
$ oc -n openshift-user-workload-monitoring create secret generic alertmanager-user-workload --from-file=alertmanager.yaml --dry-run=client -o=yaml | oc -n openshift-user-workload-monitoring replace secret --filename=-