• Alertmanager配置概述

    Alertmanager配置概述

    在上面的部分中已经简单介绍过,在Alertmanager中通过路由(Route)来定义告警的处理方式。路由是一个基于标签匹配的树状匹配结构。根据接收到告警的标签匹配相应的处理方式。这里将详细介绍路由相关的内容。

    Alertmanager主要负责对Prometheus产生的告警进行统一处理,因此在Alertmanager配置中一般会包含以下几个主要部分:

    • 全局配置(global):用于定义一些全局的公共参数,如全局的SMTP配置,Slack配置等内容;
    • 模板(templates):用于定义告警通知时的模板,如HTML模板,邮件模板等;
    • 告警路由(route):根据标签匹配,确定当前告警应该如何处理;
    • 接收人(receivers):接收人是一个抽象的概念,它可以是一个邮箱也可以是微信,Slack或者Webhook等,接收人一般配合告警路由使用;
    • 抑制规则(inhibit_rules):合理设置抑制规则可以减少垃圾告警的产生

    其完整配置格式如下:

    1. global:
    2. [ resolve_timeout: <duration> | default = 5m ]
    3. [ smtp_from: <tmpl_string> ]
    4. [ smtp_smarthost: <string> ]
    5. [ smtp_hello: <string> | default = "localhost" ]
    6. [ smtp_auth_username: <string> ]
    7. [ smtp_auth_password: <secret> ]
    8. [ smtp_auth_identity: <string> ]
    9. [ smtp_auth_secret: <secret> ]
    10. [ smtp_require_tls: <bool> | default = true ]
    11. [ slack_api_url: <secret> ]
    12. [ victorops_api_key: <secret> ]
    13. [ victorops_api_url: <string> | default = "https://alert.victorops.com/integrations/generic/20131114/alert/" ]
    14. [ pagerduty_url: <string> | default = "https://events.pagerduty.com/v2/enqueue" ]
    15. [ opsgenie_api_key: <secret> ]
    16. [ opsgenie_api_url: <string> | default = "https://api.opsgenie.com/" ]
    17. [ hipchat_api_url: <string> | default = "https://api.hipchat.com/" ]
    18. [ hipchat_auth_token: <secret> ]
    19. [ wechat_api_url: <string> | default = "https://qyapi.weixin.qq.com/cgi-bin/" ]
    20. [ wechat_api_secret: <secret> ]
    21. [ wechat_api_corp_id: <string> ]
    22. [ http_config: <http_config> ]
    23. templates:
    24. [ - <filepath> ... ]
    25. route: <route>
    26. receivers:
    27. - <receiver> ...
    28. inhibit_rules:
    29. [ - <inhibit_rule> ... ]

    在全局配置中需要注意的是resolve_timeout,该参数定义了当Alertmanager持续多长时间未接收到告警后标记告警状态为resolved(已解决)。该参数的定义可能会影响到告警恢复通知的接收时间,读者可根据自己的实际场景进行定义,其默认值为5分钟。在接下来的部分,我们将已一些实际的例子解释Alertmanager的其它配置内容。