9.8. 通知を送信するための Alertmanager の設定
デフォルトのプラットフォームアラートの場合は alertmanager-main シークレット、ユーザー定義アラートの場合は alertmanager-user-workload シークレットを編集して、通知を送信するように Alertmanager を設定できます。
サポートされているバージョンのアップストリーム Alertmanager のすべての機能は、OpenShift Alertmanager 設定でもサポートされます。サポートされているアップストリーム Alertmanager バージョンのあらゆる設定オプションを確認するには、Alertmanager 設定 を参照してください。
9.8.1. デフォルトのプラットフォームアラートの通知を設定する リンクのコピーリンクがクリップボードにコピーされました!
クラスターからの重要なアラートを受信するために通知を送信するように Alertmanager を設定できます。Alertmanager からデフォルトのプラットフォームアラートに関する通知を送信する場所と方法をカスタマイズするには、openshift-monitoring namespace の alertmanager-main シークレットのデフォルト設定を編集します。
Alertmanager はデフォルトでは通知を送信しません。alertmanager-main シークレット設定ファイルで通知の詳細を設定して、通知を届けるように Alertmanager を設定することを推奨します。
前提条件
-
cluster-adminクラスターロールを持つユーザーとしてクラスターにアクセスできる。 -
OpenShift CLI (
oc) がインストールされている。
手順
現在アクティブな Alertmanager 設定を
alertmanager-mainシークレットから展開し、ローカルのalertmanager.yamlファイルとして保存します。$ oc -n openshift-monitoring get secret alertmanager-main --template='{{ index .data "alertmanager.yaml" }}' | base64 --decode > alertmanager.yaml-
alertmanager.yamlファイルを開きます。 Alertmanager の設定を編集します。
オプション: デフォルトの Alertmanager 設定を変更します。
デフォルトの Alertmanager シークレット YAML の例
global: resolve_timeout: 5m route: group_wait: 30s1 group_interval: 5m2 repeat_interval: 12h3 receiver: default routes: - matchers: - "alertname=Watchdog" repeat_interval: 2m receiver: watchdog receivers: - name: default - name: watchdog- 1
- Alertmanager が通知を送信する前に、アラートグループの初期アラートを収集するまで待機する時間を指定します。
- 2
- 最初の通知がすでに送信されているアラートグループに追加された新しいアラートに関する通知を Alertmanager が送信するまでの時間を指定します。
- 3
- アラート通知を繰り返すまでの最小時間を指定します。各グループの間隔で通知を繰り返す場合は、
repeat_intervalの値をgroup_intervalの値よりも小さく設定します。ただし、特定の Alertmanager Pod が再起動または再スケジュールされた場合などには、通知の繰り返しが遅れる可能性があります。
アラートレシーバーの設定を追加します。
# ... receivers: - name: default - name: watchdog - name: <receiver>1 <receiver_configuration>2 # ...PagerDuty をアラートレシーバーとして設定する例
# ... receivers: - name: default - name: watchdog - name: team-frontend-page pagerduty_configs: - routing_key: xxxxxxxxxx1 # ...- 1
- PagerDuty 統合キーを定義します。
メールアドレスをアラートレシーバーとして設定する例
# ... receivers: - name: default - name: watchdog - name: team-frontend-page email_configs: - to: myemail@example.com1 from: alertmanager@example.com2 smarthost: 'smtp.example.com:587'3 auth_username: alertmanager@example.com4 auth_password: password hello: alertmanager5 # ...重要Alertmanager には、メールアラートを送信するために外部 SMTP サーバーが必要です。メールアラートのレシーバーを設定する際には、外部 SMTP サーバーの必要な接続の詳細情報があることを確認してください。
ルーティング設定を追加します。
# ... route: group_wait: 30s group_interval: 5m repeat_interval: 12h receiver: default routes: - matchers: - "alertname=Watchdog" repeat_interval: 2m receiver: watchdog - matchers:1 - "<your_matching_rules>"2 receiver: <receiver>3 # ...警告match、match_re、target_match、target_match_re、source_match、source_match_reのキー名は使用しないでください。これらは非推奨であり、今後のリリースで削除される予定です。アラートルーティングの例
# ... route: group_wait: 30s group_interval: 5m repeat_interval: 12h receiver: default routes: - matchers: - "alertname=Watchdog" repeat_interval: 2m receiver: watchdog - matchers:1 - "service=example-app" routes:2 - matchers: - "severity=critical" receiver: team-frontend-page # ...前の例では、
example-appサービスによって発生した重大度がcriticalのアラートが、team-frontend-pageレシーバーにルーティングされます。通常、このタイプのアラートは、個人または緊急対応チームに通知します。
新規設定をファイルで適用します。
$ 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=-ルーティングツリーを可視化してルーティング設定を確認します。
$ oc exec alertmanager-main-0 -n openshift-monitoring -- amtool config routes show --alertmanager.url http://localhost:9093出力例
Routing tree: . └── default-route receiver: default ├── {alertname="Watchdog"} receiver: Watchdog └── {service="example-app"} receiver: default └── {severity="critical"} receiver: team-frontend-page
9.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.yamlalertmanager.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=-