新版本的alermanager配置必须base64的secret才可以识别
1 2 3 4 5 6 7 8 |
apiVersion: v1 kind: Secret metadata: name: alertmanager-main namespace: monitoring data: alertmanager.yaml: Z2xvYmFsOiAKICByZXNvbHZlX3RpbWVvdXQ6IDVtCmluaGliaXRfcnVsZXM6CiAgLSBzb3VyY2VfbWF0Y2g6CiAgICAgIHNldmVyaXR5OiAgY3JpdGljYWwgCiAgICB0YXJnZXRfbWF0Y2g6CiAgICAgIHNldmVyaXR5OiAgd2FybmluZyAKICAgIGVxdWFsOiBbJ2FsZXJ0bmFtZScsICdjbHVzdGVyJywgJ3NlcnZpY2UnXQpyZWNlaXZlcnM6IAotIG5hbWU6IHdlYmhvb2sKICB3ZWJob29rX2NvbmZpZ3M6CiAgLSB1cmw6ICdodHRwOi8vd2ViaG9vay1kaW5ndGFsazo4MDYwL2Rpbmd0YWxrL3dlYmhvb2svc2VuZCcKICAgIHNlbmRfcmVzb2x2ZWQ6IHRydWUKcm91dGU6IAogIGdyb3VwX2J5OiAKICAtIGFsZXJ0bmFtZQogIGdyb3VwX2ludGVydmFsOiA1bQogIGdyb3VwX3dhaXQ6IDMwcwogIHJlY2VpdmVyOiB3ZWJob29rCiAgcmVwZWF0X2ludGVydmFsOiAxMmg= type: Opaque |
Alertmanager配置中一般会包含以下几个主要部分:
- 全局配置(global):用于定义一些全局的公共参数,如全局的SMTP配置,Slack配置等内容;
- 模板(templates):用于定义告警通知时的模板,如HTML模板,邮件模板等;
- 告警路由(route):根据标签匹配,确定当前告警应该如何处理;
- 接收人(receivers):接收人是一个抽象的概念,它可以是一个邮箱也可以是微信,Slack或者Webhook等,接收人一般配合告警路由使用;
- 抑制规则(inhibit_rules):合理设置抑制规则可以减少垃圾告警的产生
配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
global: resolve_timeout: 5m inhibit_rules: - source_match: severity: critical target_match: severity: warning equal: ['alertname', 'cluster', 'service'] receivers: - name: webhook webhook_configs: - url: 'http://webhook-dingtalk:8060/dingtalk/webhook/send' send_resolved: true route: group_by: - alertname group_interval: 5m group_wait: 30s receiver: webhook repeat_interval: 12h |
1 2 |
alertmanager配置详解 https://blog.csdn.net/yuezhilangniao/article/details/119766157 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
global 这个是全局设置 resolve_timeout 当告警的状态有firing变为resolve的以后还要呆多长时间,才宣布告警解除。这个主要是解决某些监控指标在阀值边缘上波动,一会儿好一会儿不好。 route 是个重点,告警内容从这里进入,寻找自己应该用那种策略发送出去 receiver 一级的receiver,也就是默认的receiver,当告警进来后没有找到任何子节点和自己匹配,就用这个receiver group_by 告警应该根据那些标签进行分组 group_wait 同一组的告警发出前要等待多少秒,这个是为了把更多的告警一个批次发出去 group_interval 同一组的多批次告警间隔多少秒后,才能发出 repeat_interval 重复的告警要等待多久后才能再次发出去 routes 也就是子节点了,配置项和上面一样。告警会一层层的找,如果匹配到一层,并且这层的continue选项为true,那么他会再往下找,如果下层节点不能匹配那么他就用区配的这一层的配置发送告警。如果匹配到一层,并且这层的continue选项为false,那么他会直接用这一层的配置发送告警,就不往下找了。 match_re 用于匹配label。此处列出的所有label都匹配到才算匹配 inhibit_rules这个叫做抑制项,通过匹配源告警来抑制目的告警。比如说当我们的主机挂了,可能引起主机上的服务,数据库,中间件等一些告警,假如说后续的这些告警相对来说没有意义,我们可以用抑制项这个功能,让PrometheUS只发出主机挂了的告警。 source_match 根据label匹配源告警 target_match 根据label匹配目的告警 equal 此处的集合的label,在源和目的里的值必须相等。如果该集合的内的值再源和目的里都没有,那么目的告警也会被抑制。 |
- 本文固定链接: https://www.yoyoask.com/?p=9777
- 转载请注明: shooter 于 SHOOTER 发表