文章目录

  • 一、邮箱告警说明
  • 二、创建邮箱模板文件
  • 三、AlertManager 添加邮箱告警配置
  • 3.1 AlertManager 中添加告警配置
  • 3.2 使 AlertManager 重新加载配置
  • 四、发送告警信息进行测试
  • 4.1 模拟触发告警
  • 4.2 观察是否接收到告警邮件
  • 五、配置 Prometheus 告警参数
  • 5.1 创建 Prometheus 告警规则文件
  • 5.2 Prometheus 中添加告警配置
  • 5.3 使 Prometheus 重新加载配置
  • 六、观察告警流程是否正常
  • 6.1 观察 Prometheus 告警规则状态
  • 6.2 观察是否成功接收到告警邮件

  !版权声明:本博客内容均为原创,每篇博文作为知识积累,写博不易,转载请注明出处。


系统环境:

  • AlertManager 版本: 0.24.0
  • Prometheus 版本: 2.35.0

参考地址:

示例地址:


系列文章目录


一、邮箱告警说明

在之前的文章中写过一篇 《Kubernetes 部署告警工具 AlertManager》 的文章,介绍过 AlertManager 是一个专门用于实现告警的工具,可以实现接收 Prometheus 或其它应用发出的告警信息,并且支持多种告警方式,比如 邮件企业微信SlackWebHook 等,而今天就介绍下如何实现通过 AlertManager 发送告警邮件。

[转帖]AlertManager 配置邮箱告警_加载

二、创建邮箱模板文件

配置 AlertManager 发送告警邮件之前,需要提前创建发送告警的 email 模板 (非必须),模板文件中的样式和内容就是我们收到的告警邮件的样式和内容。这里本人将在目录 /etc/alertmanager 下创建邮箱模板文件 email.tmpl,命令如下:

$ vi /etc/alertmanager/email.tmpl

 

BASH

写入如下邮件模板内容:

{{ define "email.to" }}xxxxxx@163.com{{ end }}
{{ define "email.title" }}来自超级小豆丁的测试告警{{ end }}
{{ define "email.to.html" }}
{{ range .Alerts }}
<p>==========<strong>告警通知</strong>==========</p>
<strong>告警程序:</strong> prometheus_alert<br>
<strong>告警级别:</strong> {{ .Labels.severity }}<br>
<strong>告警类型:</strong> {{ .Labels.alertname }}<br>
<strong>告警实例:</strong> {{ .Labels.instance }}<br>
<strong>告警信息:</strong> {{ .Annotations.summary }}<br>
<strong>告警描述:</strong> {{ .Annotations.description }}<br>
<strong>当前状态:</strong> {{ .Status }}<br>
<strong>触发时间:</strong> {{ .StartsAt.Format "2006-01-02 15:04:05" }}<br>
<strong>监控界面地址:</strong> <a href="{{ .GeneratorURL }}">点击跳转</a><br>
{{ end }}
{{ end }}

 

TMPL

三、AlertManager 添加邮箱告警配置

3.1 AlertManager 中添加告警配置

接下来将在 AlertManager 配置文件中,添加邮箱告警参数,并且使用上面配置的告警邮箱模板,AlertManager 配置文件的内容如下:

# 全局配置
global:
  ## 在没有报警的情况下声明为已解决的时间
  resolve_timeout: 5m
  ## ===配置邮箱===
  ## 配置邮箱 SMTP 服务器地址和端口;
  smtp_smarthost: 'smtp.163.com:25'
  ## 配置发件人邮箱
  smtp_from: 'xxxxxx@163.com'
  ## 配置发件人邮箱账户
  smtp_auth_username: 'xxxxxx@163.com'
  ## 配置发件人邮箱密码 (这里指的是邮箱授权码,不是登录密码)
  smtp_auth_password: 'ABCDEFG***'
  ## 配置是否使用 TLS 加密
  smtp_require_tls: false

# 自定义邮件通知模板
templates:
  - '/etc/alertmanager/*.tmpl'

# 告警路由配置
route:
  ## 配置用于分组的标签
  group_by: ['alertname', 'cluster']
  ## 配置同一组告警等待时间。
  ## 用于配置接收到某组中的告警信息后,并不会立即发出告警信息,
  ## 而是等待指定时间,如果有相同组的告警信息,则一起发送告警
  group_wait: 30s
  ## 两组告警的间隔时间
  group_interval: 10m
  ## 重复告警的间隔时间,减少相同邮件的发送频率。
  ## 如果一个报警信息已经发送成功了,等待 repeat_interval 时间来重新发送他们
  ## 但是如果告警在 resolve_timeout 时间内没有重复发送,表示问题已经解决,则
  ## 到 repeat_interval 时间后就不会重新发送
  repeat_interval: 30m
  ## 配置默认接收者,如果一个报警没有被一个 route 匹配,则发送给默认的接收器
  receiver: 'email'
  ## 配置指定组的消息由对应哪个接收者进行处理
  routes:
  - receiver: 'email'
    group_wait: 30s
    ### 配置匹配标签,只有匹配的标签才会使用当前配置中指定的接收者进行处理
    match:
      alertname: email-test

# 告警接收者配置(大部分参数值都是引入模板中定义的变量)
receivers: