1. 配置参数解析详解
这边参照的是当前最新的
0.24
版本,后面如果版本有继续迭代,可能会出现有些参数不一样
关于 alertmanager 的配置文件的配置,官方也有提供了 example 参考: alertmanager simple.yml
1.1 global
yaml
# 全局配置,有些可被下面的具体配置替换
global:
# smtp 相关的邮箱发送配置
# 邮件发送来源,很多时候要跟 username 的发送邮箱同一个
[ smtp_from: <tmpl_string> ]
# smtp 协议的发送端点
[ smtp_smarthost: <string> ]
# 定义的主机名称 (hostname)
[ smtp_hello: <string> | default = "localhost" ]
# 登录的用户名和密码,以及对应的一些加密协议
[ smtp_auth_username: <string> ]
[ smtp_auth_password: <secret> ]
[ smtp_auth_identity: <string> ]
[ smtp_auth_secret: <secret> ]
# 是否启用 tls 加密,默认启用
[ smtp_require_tls: <bool> | default = true ]
# 一些第三方的 receivers 配置
[ slack_api_url: <secret> ]
[ slack_api_url_file: <filepath> ]
[ victorops_api_key: <secret> ]
[ victorops_api_url: <string> | default = "https://alert.victorops.com/integrations/generic/20131114/alert/" ]
[ pagerduty_url: <string> | default = "https://events.pagerduty.com/v2/enqueue" ]
[ opsgenie_api_key: <secret> ]
[ opsgenie_api_key_file: <filepath> ]
[ opsgenie_api_url: <string> | default = "https://api.opsgenie.com/" ]
[ wechat_api_url: <string> | default = "https://qyapi.weixin.qq.com/cgi-bin/" ]
[ wechat_api_secret: <secret> ]
[ wechat_api_corp_id: <string> ]
[ telegram_api_url: <string> | default = "https://api.telegram.org" ]
# http 客户端配置,允许配置接收方用来与基于 HTTP 的 API 服务通信的 HTTP 客户端
[ http_config: <http_config> ]
# 如果超过这个时间段,prometheus 那边没有给出警报的状态更新,alertmanager 就默认这个警报已经解决
# 对于 alertmanager 来说,哪怕 prometheus 一直给 firing 状态,那也是警报有新的状态更新
# 一定是要那种没有任何状态值给过来的,比如 prometheus server 挂了,或者 rules 警报规则被删除了这种
[ resolve_timeout: <duration> | default = 5m ]
# 模板文件目录
# 警报模板可以自定义通知的信息格式,以及其包含的对应警报指标数据,可以自定义Email、企业微信的模板,配置指定的存放位置
templates:
[ - <filepath> ... ]
# 警报的路由树
route: <route>
# 警报通知接收者配置
receivers:
- <receiver> ...
# 抑制规则配置
inhibit_rules:
[ - <inhibit_rule> ... ]
# 静音/激活 的时间间隔的一组数据
# 他配置的时间点和名称,要匹配 route 节点下的 mute_time_intervals 或者 active_time_intervals
time_intervals:
[ - <time_interval> ... ]
# 全局配置,有些可被下面的具体配置替换
global:
# smtp 相关的邮箱发送配置
# 邮件发送来源,很多时候要跟 username 的发送邮箱同一个
[ smtp_from: <tmpl_string> ]
# smtp 协议的发送端点
[ smtp_smarthost: <string> ]
# 定义的主机名称 (hostname)
[ smtp_hello: <string> | default = "localhost" ]
# 登录的用户名和密码,以及对应的一些加密协议
[ smtp_auth_username: <string> ]
[ smtp_auth_password: <secret> ]
[ smtp_auth_identity: <string> ]
[ smtp_auth_secret: <secret> ]
# 是否启用 tls 加密,默认启用
[ smtp_require_tls: <bool> | default = true ]
# 一些第三方的 receivers 配置
[ slack_api_url: <secret> ]
[ slack_api_url_file: <filepath> ]
[ victorops_api_key: <secret> ]
[ victorops_api_url: <string> | default = "https://alert.victorops.com/integrations/generic/20131114/alert/" ]
[ pagerduty_url: <string> | default = "https://events.pagerduty.com/v2/enqueue" ]
[ opsgenie_api_key: <secret> ]
[ opsgenie_api_key_file: <filepath> ]
[ opsgenie_api_url: <string> | default = "https://api.opsgenie.com/" ]
[ wechat_api_url: <string> | default = "https://qyapi.weixin.qq.com/cgi-bin/" ]
[ wechat_api_secret: <secret> ]
[ wechat_api_corp_id: <string> ]
[ telegram_api_url: <string> | default = "https://api.telegram.org" ]
# http 客户端配置,允许配置接收方用来与基于 HTTP 的 API 服务通信的 HTTP 客户端
[ http_config: <http_config> ]
# 如果超过这个时间段,prometheus 那边没有给出警报的状态更新,alertmanager 就默认这个警报已经解决
# 对于 alertmanager 来说,哪怕 prometheus 一直给 firing 状态,那也是警报有新的状态更新
# 一定是要那种没有任何状态值给过来的,比如 prometheus server 挂了,或者 rules 警报规则被删除了这种
[ resolve_timeout: <duration> | default = 5m ]
# 模板文件目录
# 警报模板可以自定义通知的信息格式,以及其包含的对应警报指标数据,可以自定义Email、企业微信的模板,配置指定的存放位置
templates:
[ - <filepath> ... ]
# 警报的路由树
route: <route>
# 警报通知接收者配置
receivers:
- <receiver> ...
# 抑制规则配置
inhibit_rules:
[ - <inhibit_rule> ... ]
# 静音/激活 的时间间隔的一组数据
# 他配置的时间点和名称,要匹配 route 节点下的 mute_time_intervals 或者 active_time_intervals
time_intervals:
[ - <time_interval> ... ]