alertmanagerがメッセージを繰り返し送信する問題を解決する
1455 ワード
1、質問
前のブログでalertmanagerを使ってrepeat_を設定してもintervalですが、2つのアラートが受信され、間隔はforラベルの時間です。
Alertmanagerフラグメントの例:routes:
- receiver: message
match:
xxxx:xxxx
repeat_interval: 3600s
continue: true
receivers:
- name: message
webhook_configs:
- send_resolved: true
url: http://localhost:8080/message/yyyy
prometheusルールフラグメントの例:rules:
- alert: alertName
expr: up == 1
for: 5m
labels:
xxxx:xxxx
2、可能な原因
1,send_resloved = true
このラベルは、アラームが回復した後、通知が送信され、正常になったことを示しています.(このラベルの鍋です)
2,group_がありませんbyラベル。
後で検証して、group_がありませんbyラベルは、デフォルトではグループ内にあるので、影響もありません.
3,repeat_intervalが設定したのはsかhかです。
これはもっとおかしいです.Prometheusのdurationにはよく使われる時間単位があります.もちろんsも含まれています.
3、結果
1、試してみましたsend_resloved=trueによって引き起こされる。
2つのアラームを受け取ったのは、2つ目のアラームがアラーム回復通知だったからだと思いますが、routesにはwebが配置されているためです。hookは、ビジネスインタフェースにトリガーされ、アラームとして処理されているので、実は2番目の通知の内容は、アラームではなくアラームが回復した通知である可能性があるので、ここではビジネスロジックのバグかもしれませんが、send_を設定しています。resloved=false後、2番目のメッセージは受信されませんでした。ps,send_reslovedのデフォルトはfalseで、私は手が不自由で、大丈夫です。これを設定して、テストはバグを専門に提出しました。承服する。
2,repeat_についてintervalの理解。
repeat_interval:1 hでは、この時間内に複数のアラームが発生した場合、1回、1つのメッセージしか通知されません。
routes:
- receiver: message
match:
xxxx:xxxx
repeat_interval: 3600s
continue: true
receivers:
- name: message
webhook_configs:
- send_resolved: true
url: http://localhost:8080/message/yyyy
rules:
- alert: alertName
expr: up == 1
for: 5m
labels:
xxxx:xxxx
1,send_resloved = true
このラベルは、アラームが回復した後、通知が送信され、正常になったことを示しています.(このラベルの鍋です)
2,group_がありませんbyラベル。
後で検証して、group_がありませんbyラベルは、デフォルトではグループ内にあるので、影響もありません.
3,repeat_intervalが設定したのはsかhかです。
これはもっとおかしいです.Prometheusのdurationにはよく使われる時間単位があります.もちろんsも含まれています.