#先来看一下我们的配置
#cat /etc/alertmanager/alertmanager.yml
route:
group_by: ['alertname']
group_wait: 5s
group_interval: 5s
repeat_interval: 5m
receiver: 'email'
#这里有一个group_by的参数,它的作用就是将相同k/v的标签放到一个组里
我们这里将两台node-exporter关掉看一下
如上,标签alertname的value是相同的,所以会分到一个组中,可以在alertmanager中查看
查看邮件,可以看到已经将两条告警合并了
我们这里再添加一条告警触发规则
cat >> /etc/prometheus/rules/node_up.yml <<EOF
- name: grafana
rules:
- alert: node-up #这个相当于alertname的值,与之前匹配的相同
expr: up{job="grafana"} == 0
for: 10s
labels:
severity: 1
team: grafana #这里标签设置不同的一会用
annotations:
summary: "{{ \$labels.instance }} 已停止运行超过 15s"
description: hello world
EOF
#重载prometheus
systemctl restart prometheus
我们这里将grafana停掉,因为这里alertname的值和上面的node相同,应该会分配到一个组中告警
如上,grafana已经被分配到和node一个组中,我们下面看下邮件
已经合并了,但是我们一般告警名称是不会相同,这里我们去匹配定义告警时的子标签
#我们先看一下设置了那些子标签
groups:
- name: node-up
rules:
....
severity: 1
team: node
...
- name: grafana
rules:
...
labels: #这个是我们自定义告警时附加的标签
severity: 1
team: grafana #注意,两边的team的值是不同的,我们使用这个去对比
...
vi /etc/alertmanager/alertmanager.yml
...
route:
group_by: ['alertname','team'] #在这里添加team匹配的标签
group_wait: 5s
group_interval: 5s
repeat_interval: 5m
receiver: 'email'
...
#重载服务
systemctl restart alertmanager
从下图我们可以看到当有多个标签匹配时,有任意标签k/v不相同时,就不会分为同一组(可以按照不同集群来分发)
我们的邮件也被分成两个组进行发送了
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务