Monitoring 普罗米修斯和Alertmanager-基于环境标签的路线
我正在尝试配置alertmanager,以便它根据特定标签的值将警报发送到正确的通道。我有3个空闲通道-dev/staging/prod,我希望将来自“env”标签设置为dev的实例的警报发送到dev空闲通道。Staging和prod显然会以相同的方式工作。以下是我的配置的一部分:Monitoring 普罗米修斯和Alertmanager-基于环境标签的路线,monitoring,prometheus,prometheus-alertmanager,Monitoring,Prometheus,Prometheus Alertmanager,我正在尝试配置alertmanager,以便它根据特定标签的值将警报发送到正确的通道。我有3个空闲通道-dev/staging/prod,我希望将来自“env”标签设置为dev的实例的警报发送到dev空闲通道。Staging和prod显然会以相同的方式工作。以下是我的配置的一部分: global: resolve_timeout: 1m slack_api_url: 'https://slack-url' route: group_by: [...] receiver: 'de
global:
resolve_timeout: 1m
slack_api_url: 'https://slack-url'
route:
group_by: [...]
receiver: 'default'
routes:
- match:
env: 'prod'
receiver: 'slack-notifications-prod'
- match:
env: 'staging'
receiver: 'slack-notifications-staging'
- match:
env: 'dev'
receiver: 'slack-notifications-dev'
receivers:
- name: 'default'
- name: 'slack-notifications-prod'
...
- name: 'slack-notifications-staging'
...
- name: 'slack-notifications-dev'
...
slack通知接收器都是相同的,它们只有一个不同之处,那就是相应的通道名称
当前行为:所有警报都发送到prod slack通道
预期行为:“dev”env发出的警报发送到dev通道,“staging”发送到staging通道,“prod”发送到prod通道
Alertmanager可以很好地看到这些标签(从Alertmanager webUI的信息判断)。您必须在第一个匹配项上添加
continue:true
属性:
global:
resolve_timeout: 1m
slack_api_url: 'https://slack-url'
route:
group_by: [...]
receiver: 'default'
routes:
- match:
env: 'prod'
receiver: 'slack-notifications-prod'
continue: true
- match:
env: 'staging'
receiver: 'slack-notifications-staging'
- match:
env: 'dev'
receiver: 'slack-notifications-dev'
receivers:
- name: 'default'
- name: 'slack-notifications-prod'
...
- name: 'slack-notifications-staging'
...
- name: 'slack-notifications-dev'
...
AlertManager将评估子路由,直到没有剩余路由或给定级别的路由与当前警报匹配为止
在这种情况下,AlertManager将对当前节点的配置进行评估
“继续”属性是一个值,用于定义如果同一级别上的路由已匹配,是否要计算路由同级(属于同一级别)
原来我的配置很好,我使用的webhook URL只绑定到一个空闲频道,我没有意识到这一点。一个问题:默认值实际上做什么?