Skip to content

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> ... ]

https://kebingzao.com/2022/11/29/prometheus-4-alertmanager/