首页 > 其他分享 >13.3 alertmanager分组功能

13.3 alertmanager分组功能

时间:2024-09-10 10:22:49浏览次数:18  
标签:node alertmanager sre alert job exporter 分组 13.3


本节重点介绍 :

  • 启动3个alert_receive接收端
  • 在alertmanager配置文件中编写相关路由
  • prometheus编写rule文件触发告警
  • 观察3个接收端
  • 5001 收到 alert_g_1
  • 5002 收到 alert_g_2
  • 5003 收到 alert_g_1 和 alert_g_2

分组说明

  • alertmanager可以根据设置的路由将告警可以分组处理,发送给对应的接收端
  • 三个接收组
  • sre_system接收机器告警,对应 job=node_exporter
  • sre_dba接收数据库告警,对应 job=mysqld_exporter
  • sre_all接收所有告警,对应 job=~ .*

分组实验

启动多个告警的webhook接收端,对应多个receiver

  • 之前我们写的alert_receive.go,编译成 alert_receive二进制
  • –addr指定 地址启动3个进程
  • ./alert_receive --addr=:5001
  • ./alert_receive --addr=:5002
  • ./alert_receive --addr=:5003

在alertmanager配置文件中编写相关路由

# 写配置文件
cat <<-"EOF" > /opt/app/alertmanager/alertmanager.yml
global:
  resolve_timeout: 30m

route:
  group_by: ['alertname']
  group_wait: 5s
  group_interval: 5s
  repeat_interval: 1h
  receiver: 'sre_all'
  routes:                                       #子路由,父路由的所有属性都会被子路由继承
    - match_re:                                   #此路由在警报标签上执行正则表达式匹配,以捕获与服务列表相关的警报
        job: node_exporter
      receiver: sre_system
      # continue=true 代表继续向下匹配,不然就break了
      continue: true
    - match_re:
        job: mysqld_exporter
      receiver: sre_dba
      continue: true
      # 默认all路由
    - match_re:
        job: .*
      receiver: sre_all
      continue: true


receivers:
- name: 'sre_system'
  webhook_configs:
  - url: 'http://127.0.0.1:5001/alert'
- name: 'sre_dba'
  webhook_configs:
  - url: 'http://127.0.0.1:5002/alert'
- name: 'sre_all'
  webhook_configs:
  - url: 'http://127.0.0.1:5003/alert'
EOF

# reload
curl -X POST -vvv  localhost:9093/-/reload
  • 解读一下
  • job=node_exporter 由 sre_system处理 5001端口
  • job=mysqld_exporter 由 sre_dba处理 5002端口
  • 所有的告警 由 sre_all处理 5003端口
  • 重新加载alertmanager配置文件

准备prometheus 规则文件,触发告警

准备rule文件

cat <<EOF > /opt/app/prometheus/rule.yml
groups:
- name: alert_g_1
  rules:
  - alert: node_load too high
    expr:  node_memory_Active_bytes{instance="192.168.3.200:9100", job="node_exporter"}>0
    labels:
      severity: critical
      node_name: abc
    annotations:
      summary: 机器太累了

- name: alert_g_2
  rules:
  - alert: mysql_qps too high
    expr: mysql_global_status_queries{instance="192.168.3.200:3306", job="mysql_exporter"} >0
    labels:
      severity: warning
      node_name: abc
    annotations:
      summary: mysql太累了


EOF
  • 其中alert_g_1由job=node_exporter触发
  • 其中alert_g_2由job=mysqld_exporter触发

修改prometheus主配置文件,生效rule和alertmanager

# 写配置文件
cat <<EOF > /opt/app/prometheus/prometheus.yml

global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - 172.20.70.215:9093

rule_files:
  - /opt/app/prometheus/rule.yml


scrape_configs:


  - job_name: node_exporter
    honor_timestamps: true
    scrape_interval: 15s
    scrape_timeout: 10s
    #metrics_path: /metrics
    #scheme: http
    static_configs:
    - targets:
      - 172.20.70.205:9100

  - job_name: mysqld_exporter
    honor_timestamps: true
    scrape_interval: 15s
    scrape_timeout: 10s
    #metrics_path: /metrics
    #scheme: http
    static_configs:

    - targets:
      - 172.20.70.205:9104
EOF

# reload
curl -X POST -vvv  localhost:9090/-/reload

效果展示

期望效果

  • 5001 收到 alert_g_1
  • 5002 收到 alert_g_2
  • 5003 收到 alert_g_1 和 alert_g_2

实际效果

  • 效果图片

本节重点总结 : alertmanager分组

  • 启动3个alert_receive接收端
  • 在alertmanager配置文件中编写相关路由
  • prometheus编写rule文件触发告警
  • 观察3个接收端
  • 5001 收到 alert_g_1
  • 5002 收到 alert_g_2
  • 5003 收到 alert_g_1 和 alert_g_2


标签:node,alertmanager,sre,alert,job,exporter,分组,13.3
From: https://blog.51cto.com/moonfdd/11969558

相关文章

  • 3.6 MySQL基本查询大全(select、子查询、Distinct、group by分组,order排序、limit限制
    文章目录3.6.1MySQL的基本查询1.SELECT语句基本语法2.DISTINCT3.指定列,去除重复列4.给列设置别名5.使用WHERE子句查询指定条件比较判断范围判断字符串模式匹配错误判断空值判断6.使用ORDER子句对查询结果排序7.使用LIMIT限制查询结果数量3.6.2分组查询1.聚......
  • 11.DQL(数据查询语言)-分组查询
    语法:SELECT字段列表FROM表名[WHERE条件]GROUPBY分组字段名[HAVING分组后的过滤条件];where和having的区别:执行时机不同:where是分组之前进行过滤,不满足where条件不参与分组;having是分组后对结果进行过滤。判断条件不同:where不能对聚合函数进行判断,而having可......
  • Prometheus Alertmanager设置与告警规则配置详解
    PrometheusAlertmanager设置与告警规则配置详解Prometheus是一个开源的监控和告警系统,其设计理念是通过时间序列数据库存储指标数据,并通过多维数据模型和查询语言进行数据分析。Prometheus的告警系统由两部分组成:Prometheus服务器本身和Alertmanager。Alertmanager......
  • List分组并根据某个字段取最大的一条数据
    TestObjtestObj1=newTestObj();testObj1.setJob("ceshi1");testObj1.setNum(4);TestObjtestObj2=newTestObj();testObj2.setJob("ceshi1");testObj2.setNum(2);TestObjtestObj3=......
  • 使用itertools 中的groupby 对字典数组进行分组后排序
    有个需求需要对数据进行分组然后对分组后的组内数据继续排序fromitertoolsimportgroupby#示例数据data=[{'a':"攻击队1",'b':'张三','c':3},{'a':"攻击队1",'b':'张三1','c':1},......
  • alertmanager安装配置
    https://prometheus.io/download/#alertmanagerhttps://github.com/prometheus/alertmanager介绍说明https://blog.csdn.net/weixin_42171272/article/details/139112335https://zhuanlan.zhihu.com/p/703090367https://blog.csdn.net/namelijink/article/details/135487104......
  • MySQL零基础入门教程-5 单行处理函数、分组函数、mysql关键字执行顺序,基础+实战
     教程来源:B站视频BV1Vy4y1z7EX001-数据库概述_哔哩哔哩_bilibili我听课整理的课程的完整笔记,供大家学习交流下载:夸克网盘分享本文内容为完整笔记的第五篇17、单行数据处理函数P30-36&分组函数17.1、数据处理函数又被称为单行处理函数单行处理函数的特点:一个输入对应一个......
  • 服务器运维-sudo权限控制的sudoers配置文件详细说明以及利用sudo对用户账号分组权限控
    一、服务器运维-sudo权限控制的sudoers配置文件详细说明1.sudo权限控制的sudoers配置文件详细说明:[root@test~]#cat/etc/sudoers##Sudoersallowsparticularuserstorunvariouscommandsastherootuser,withoutneedingtherootpassword.##该文件允许特定......
  • day-49 让所有学生保持开心的分组方法数
    思路利用Collections.sort()函数对数组进行排序,依次向后遍历即可,如果nums.get(i)<i+1&&nums.get(i+1)>i+1解题过程注意特殊情况:全选和不选要单独讨论CodeclassSolution{publicintcountWays(List<Integer>nums){intlen=nums.size();Coll......
  • 20240903_162154 mysql 填空题 分组与聚合
    查询tb表所有数据,结果按age升序排select*fromtborderbyageasc查询tb表所有数据,结果按score降序排序select*fromtborderbyscoredesc查询tb表所有数据,结果按age升序排,如果age相同的数据,按score降序排select*fromtborderbyageasc,scoredesc查询sanguo表,......