您好,欢迎来到年旅网。
搜索
您的当前位置:首页prometheus使用 (十五) alertmanager特性--分组

prometheus使用 (十五) alertmanager特性--分组

来源:年旅网

什么是分组

#先来看一下我们的配置
#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的值是不同的,我们使用这个去对比
...

修改alertmanager分组(3个节点)

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

本站由北京市万商天勤律师事务所王兴未律师提供法律服务