zoukankan      html  css  js  c++  java
  • Prometheus 告警分配到指定接收组

    Prometheus 告警分配到指定接收组

    route属性用来设置报警的分发策略,它是一个树状结构,按照深度优先从左向右的顺序进行匹配。

    主要处理流程:
    1. 接收到Alert,根据labels判断属于哪些Route(可存在多个Route,一个Route有多个Group,一个Group有多个Alert)。
    2. 将Alert分配到Group中,没有则新建Group。
    3. 新的Group等待group_wait指定的时间(等待时可能收到同一Group的Alert),根据resolve_timeout判断Alert是否解决,然后发送通知。
    4. 已有的Group等待group_interval指定的时间,判断Alert是否解决,当上次发送通知到现在的间隔大于repeat_interval或者Group有更新时会发送通知。

    route:
      receiver: 'default-receiver'  
      # 为一个组发送通知的初始等待时间,默认30s、等待是时间内为了合并更多同类邮件
      group_wait: 30s
      # 在发送新告警前的等待时间。通常5m或以上、第二组发送邮件间隔时间
      group_interval: 5m
      # 发送重复告警的周期。如果已经发送了通知,再次发送之前需要等待多长时间。通常3小时或以上
      repeat_interval: 4h
      # 报警分组依据,根据标签进行分组
      group_by: [cluster, alertname]
    
      # 所有不匹配以下子路由的告警都将保留在根节点,并发送到“default-receiver”
      routes:
        
        # 所有service=mysql或者service=cassandra的告警分配到数据库接收端
      - receiver: 'database-pager'
        group_wait: 10s
        match_re:
          # 使用正则匹配告警包含两个服务,发送到database-page
          service: mysql|cassandra
        
        # 所有带有team=frontend标签的告警都与此子路由匹配
        # 它们是按产品和环境分组的,而不是集群
      - receiver: 'frontend-pager'
        group_by: [product, environment]
        match:
          # 所有告警标签带有frontend发送到frontend-pager
          team: frontend
    
    # receiver标记:告警接受者 
    receivers:
    # name:报警来源自定义名称
    - name: 'database-pager'
          # email_configs:通过邮箱发送报警
          email_configs:
            # to:指定接收端email
            - to: 'xiangsikai@126.com'
    - name: 'frontend-pager'
          # email_configs:通过邮箱发送报警
          email_configs:
            # to:指定接收端email
            - to: 'xiangsikai@126.com'
  • 相关阅读:
    Spring中使用RedisTemplate操作Redis(spring-data-redis)
    Cron表达式
    自己搭建v,p,n过程
    CentOS 7安装与配置jdk-8u162
    .net自动生成版本号
    关于webapi 返回的类型的笔记
    多个系统间交互-灰度发布-一些笔记
    Unity的使用
    mysql中查询"_"这种特殊字符
    关于MVC中DropDownListFor的一个bug
  • 原文地址:https://www.cnblogs.com/xiangsikai/p/11289872.html
Copyright © 2011-2022 走看看