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

猜你喜欢

转载自www.cnblogs.com/kevincaptain/p/13167731.html