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
24
templates:
25
[ - <filepath> ... ]
26
27
route: <route>
28
29
receivers:
30
- <receiver> ...
31
32
inhibit_rules:
33
[ - <inhibit_rule> ... ]
Copied!
在全局配置中需要注意的是resolve_timeout,该参数定义了当Alertmanager持续多长时间未接收到告警后标记告警状态为resolved(已解决)。该参数的定义可能会影响到告警恢复通知的接收时间,读者可根据自己的实际场景进行定义,其默认值为5分钟。在接下来的部分,我们将已一些实际的例子解释Alertmanager的其它配置内容。
Copy link