zoukankan      html  css  js  c++  java
  • alertmanager详解

    https://blog.csdn.net/u014029783/article/details/80654727

    # alertmanager发送告警阶段
    在第一个阶段Silence中,Alertmanager会判断当前通知是否匹配到任何的静默规则,如果没有则进入下一个阶段,否则则中断流水线不发送通知。
    在第二个阶段Wait中,Alertmanager会根据当前Alertmanager在集群中所在的顺序(index)等待index * 5s的时间。
    当前Alertmanager等待阶段结束后,Dedup阶段则会判断当前Alertmanager数据库中该通知是否已经发送,如果已经发送则中断流水线,不发送告警,否则则进入下一阶段Send对外发送告警通知。
    告警发送完成后该Alertmanager进入最后一个阶段Gossip,Gossip会通知其他Alertmanager实例当前告警已经发送。其他实例接收到Gossip消息后,则会在自己的数据库中保存该通知已发送的记录。


    配置和启动
    # --web.external-url 显示配置邮件跳转链接地址
    ./alertmanager --web.external-url='http://ip:9093/'

    # dockerfile: https://hub.docker.com/r/prom/alertmanager/dockerfile

            ENTRYPOINT [ "/bin/alertmanager" ]
            CMD        [ "--config.file=/etc/alertmanager/alertmanager.yml", 
                         "--storage.path=/alertmanager" ]
                "--web.external-url='http://ip:32093/'"
                 ]    

    # 检查告警规则
    go get github.com/prometheus/prometheus/cmd/promtool
    promtool check rules /path/to/example.rules.yml

    # 热重启:
    curl -XPOST http://ip:9093/-/reload

    # curl调试
    1、构造post数据

    aa='[
     {
       "albels":{
        "alertname": "DIST11",
        "dev":"sdf1",
       },
       "annotations":{
        "info": "the disk ad1 is running full"
        "summary": "please check the instance example1"
       }
     }
    ]'


    2、上传数据到alertmanager服务器:curl http://ip:9093/api/v1/alerts -XPOST -d"$aa"


    # 发送多个渠道

    global:
      resolve_timeout: 5m
    route:
      receiver: 'default-receiver'
      group_by:
      - alertname
      group_wait: 10s
      group_interval: 10s
      repeat_interval: 1h
      routes:
      - receiver: 'ops-receiver'
        match:
          way: ops   # grafanad 自定义tag
      - receiver: 'smn-receiver'
        match:
          way: smn   # grafanad 自定义tag
    
    inhibit_rules:
    - source_match:
        severity: critical
      target_match:
        severity: warning
      equal:
      - alertname
      - dev
      - instance
    receivers:
    - name: default-receiver
      webhook_configs:
      - url: http://ip:5001/test
    - name: ops-receiver
      webhook_configs:
      - url: http://ip:5001/ops
    - name: smn-receiver
      webhook_configs:
      - url: http://ip:5001/smn
  • 相关阅读:
    Python基础教程之第2章 列表和元组
    java最简单的方式实现httpget和httppost请求
    90后女生微信销售案例:预热和成熟
    window.onload与$.ready的差别
    在delphi下TClientSocket的使用技巧 转
    delphi安装 Tclientsocket, Tserversocket控件
    DELPHI SOKET 编程(使用TServerSocket和TClientSocket) 转
    Delphi ServerSocket,ClientSocket示例
    Delphi Socket 阻塞线程下为什么不触发OnRead和OnWrite事件
    delphi TServerSocket阻塞线程单元 实例
  • 原文地址:https://www.cnblogs.com/kevincaptain/p/13167731.html
Copyright © 2011-2022 走看看