global:
# 用于邮件通知的智能主机和SMTP发送器。
smtp_smarthost: 'localhost:25'
smtp_from: 'alertmanager@example.org'
# 每个传入警报进入的根路由
route:
# 根路由不能有任何匹配器,因为它是所有警报的入口点。它需要配置一个接收器,以便将不匹配任何子路由的警报发送给某人。
receiver: 'team-X-mails'
#将传入警报分组在一起的标签。例如,
#多个警报进入cluster=A和alertname=LatencyHigh被批入单个组。
#这有效地完全禁用聚合,按原样传递所有警报。这可能不是您想要的,除非您的警报音量非常低,或者您的上游通知系统执行自己的分组。例如:group_by:[…]
group_by: ['alertname', 'cluster']
# 当传入警报创建新的警报组时,至少等待'group_wait'来发送初始通知。
# 目的是为啦将 在等待时间内触发的新警报进行一个批处理,以便通过一个报警信息来发送多个警报。
group_wait: 30s
# 当发送第一个通知时,等待'group_interval'发送下一批新的通知,并开始为该组触发。
group_interval: 5m
# 如果一个警告已经成功发送,等待'repeat_interval'重新发送它们。
repeat_interval: 3h
# 上面所有的属性被所有的子路由继承,并且可以覆盖在每个子路由上。
# 子路径树
routes:
# 该路由对警报标签执行正则表达式匹配,以捕获与服务列表相关的警报
services.
- match_re:
service: ^(foo1|foo2|baz)$
receiver: team-X-mails
# 服务有一个用于紧急警报的子路由,任何不匹配的警报,例如
routes:
- match:
severity: critical
receiver: team-X-pager
- match:
service: files
receiver: team-Y-mails
routes:
- match:
severity: critical
receiver: team-Y-pager
# 该路由处理来自标签值为“service: database”的服务的所有警报。如果没有团队来处理它,它默认为team-DB-pager。
- match:
service: database
receiver: team-DB-pager
# Also group alerts by affected database.
group_by: [alertname, cluster, database]
routes:
- match:
owner: team-X
receiver: team-X-pager
- match:
owner: team-Y
receiver: team-Y-pager
# 抑制规则允许在另一个警报触发时静音一组警报。
# 如果相同的警报已经很严重,我们使用这个来静音任何警告级别的通知。
inhibit_rules:
- source_matchers:
- severity="critical"
# 如果上面定义的抑制规则生效啦,则equal中列出的标签名只要与源目标有相同的,则其他报警源打上了“severity="warning"该标签的警报就不发送告警
target_matchers:
- severity="warning"
equal: ['alertname']
# 官网还有下面这句提示,但是我无法理解,若有人可以理解,望告知
#如果“equal”中列出的所有标签名称在源和目标警报中都缺失,则抑制规则将应用!
# 这是配置不同的告警接收,对应的邮箱地址
receivers:
- name: 'team-X-mails'
email_configs:
- to: 'team-X+alerts@example.org, team-Y+alerts@example.org'
- name: 'team-X-pager'
email_configs:
- to: 'team-X+alerts-critical@example.org'
pagerduty_configs:
- routing_key: <team-X-key>
- name: 'team-Y-mails'
email_configs:
- to: 'team-Y+alerts@example.org'
- name: 'team-Y-pager'
pagerduty_configs
- routing_key: <team-Y-key>
- name: 'team-DB-pager'
- routing_key: <team-DB-key>