sem*_*ral 2 monitoring prometheus prometheus-alertmanager
我们有两个不同的团队在处理不同的应用程序。我想通过使用相同的警报表达式将警报通知发送到不同的 slack 通道。我找到了一些示例,但不明白receiver: 'default'尝试添加新路由时使用的主要原因是什么?this 的作用是什么,如果它会影响 if 呢?改变这个?
同时,如果您能帮助我如何将通知发送到多个 slack 频道,我将不胜感激。我尝试过新的。
当前的alertmanager.yml
receivers:
- name: 'team-1'
slack_configs:
- api_url: 'https://hooks.slack.com/services/1'
channel: '#hub-alerts'
route:
group_wait: 10s
group_interval: 5m
receiver: 'team-1'
repeat_interval: 1h
group_by: [datacenter]
Run Code Online (Sandbox Code Playgroud)
新的alertmanager.yml
alertmanager.yml:
receivers:
- name: 'team-1'
slack_configs:
- api_url: 'https://hooks.slack.com/services/1'
channel: '#channel-1'
send_resolved: true
- name: 'team-2'
slack_configs:
- api_url: 'https://hooks.slack.com/services/2'
channel: '#channel-2'
send_resolved: true
route:
group_wait: 10s
group_interval: 5m
repeat_interval: 1h
group_by: [datacenter]
receiver: 'default'
routes:
- receiver: 'team-1'
- receiver: 'team-2'
Run Code Online (Sandbox Code Playgroud)
您需要将路线上的 continue 属性设置为 true。默认情况下它是假的。
AlertManager 的默认行为是遍历您的路由以查找匹配项并在它找到匹配项的第一个节点处退出。
您想要做的是在比赛中发出警报并继续搜索其他比赛并也触发这些比赛。
相关文档部分:https : //prometheus.io/docs/alerting/latest/configuration/#route
使用此示例:https : //awesome-prometheus-alerts.grep.to/alertmanager.html
内联上面的例子,以防它破裂。
# alertmanager.yml
route:
# When a new group of alerts is created by an incoming alert, wait at
# least 'group_wait' to send the initial notification.
# This way ensures that you get multiple alerts for the same group that start
# firing shortly after another are batched together on the first
# notification.
group_wait: 10s
# When the first notification was sent, wait 'group_interval' to send a batch
# of new alerts that started firing for that group.
group_interval: 5m
# If an alert has successfully been sent, wait 'repeat_interval' to
# resend them.
repeat_interval: 30m
# A default receiver
receiver: "slack"
# All the above attributes are inherited by all child routes and can
# overwritten on each.
routes:
- receiver: "slack"
group_wait: 10s
match_re:
severity: critical|warning
continue: true
- receiver: "pager"
group_wait: 10s
match_re:
severity: critical
continue: true
receivers:
- name: "slack"
slack_configs:
- api_url: 'https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/xxxxxxxxxxxxxxxxxxxxxxxxxxx'
send_resolved: true
channel: 'monitoring'
text: "{{ range .Alerts }}<!channel> {{ .Annotations.summary }}\n{{ .Annotations.description }}\n{{ end }}"
- name: "pager"
webhook_config:
- url: http://a.b.c.d:8080/send/sms
send_resolved: true
Run Code Online (Sandbox Code Playgroud)