altermanager配置详解
# global 全局配置 global: # 当告警的状态有firing变为resolve的以后还要呆多长时间,才宣布告警解除。这个主要是解决某些监控指标在阀值边缘上波动,一会儿好一会儿不好。 resolve_timeout: 1h # 邮件告警发件配置 smtp_smarthost: 'smtp.exmail.qq.com:25' #stmp服务器主机 smtp_from: 'dukuan@xxx.com' smtp_auth_username: 'dukuan@xxx.com' smtp_auth_password: 'DKxxx' # HipChat告警配置 # hipchat_auth_token: '123456789' # hipchat_auth_url: 'https://hipchat.foobar.org/' # wechat wechat_api_url: 'https://qyapi.weixin.qq.com/cgi-bin/' wechat_api_secret: 'JJ' # 应用管理中自建小程序的Secret wechat_api_corp_id: 'ww' # 企业信息中的企业ID #配置告警接收者信息 receivers: #配置邮件收件人 - name: 'team-ops-mails' #起个名字,代称方便实用 email_configs: #邮件接收配置 - to: 'dukuan@xxx.com' #配置收件人邮箱 #配置微信收件人 - name: 'wechat' #起个名字方便使用 wechat_configs: #微信接收配置 - send_resolved: true # 为题解决了是否通知 corp_id: 'ww' # 企业信息中的企业ID api_secret: 'JJ' # 应用管理中自建小程序的Secret to_party: '2' # 通知组id to_user: # 通知用户账号 agent_id: '1000002' # 应用管理自建小程序的Agentld #通过webhook告警,想要通过钉钉等应用告警时配置 - name: magpie.ding webhook_configs: - url: http://10.252.3.10:9002/ding_message send_resolved: false # 当问题解决了是否也要通知一下 # 自定义告警通知模板 templates: - '/etc/alertmanager/config/*.tmpl' # route用来设置报警的分发策略,是个重点,告警内容从这里进入,寻找自己应该用那种策略发送出去 route: # 告警应该根据那些标签进行分组 group_by: ['job', 'altername', 'cluster', 'service','severity'] # 同一组的告警发出前要等待多少秒,这个是为了把更多的告警一个批次发出去 group_wait: 30s #同一组的多批次告警间隔多少秒后,才能发出 group_interval: 5m # 重复的告警要等待多久后才能再次发出去 repeat_interval: 12h # 一级的receiver,也就是默认的receiver,当告警进来后没有找到任何子节点和自己匹配,就用这个receiver receiver: 'wechat' # 上述route的配置会被传递给子路由节点,子路由节点进行重新配置才会被覆盖 # 子路由树 routes: # 用于匹配label。此处列出的所有label都匹配到才算匹配 - match_re: service: ^(foo1|foo2|baz)$ receiver: 'wechat' # 在带有service标签的告警同时有severity标签时,他可以有自己的子路由,同时具有severity != critical的告警则被发送给接收者team-ops-mails,对severity == critical的告警则被发送到对应的接收者即team-ops-pager routes: - match: severity: critical receiver: 'wechat' # 比如关于数据库服务的告警,如果子路由没有匹配到相应的owner标签,则都默认由team-DB-pager接收 - match: service: database receiver: 'wechat' # 我们也可以先根据标签service:database将数据库服务告警过滤出来,然后进一步将所有同时带labelkey为database - match: severity: critical receiver: 'wechat' # 抑制规则,当出现critical告警时 忽略warning inhibit_rules: - source_match: severity: 'critical' target_match: severity: 'warning' # Apply inhibition if the alertname is the same. # equal: ['alertname', 'cluster', 'service']