貔貅云原生

貔貅云原生

Alertmanager 配置 163 邮箱

86
0
0
2023-12-12
Alertmanager 配置 163 邮箱

Alertmanager 配置 163 邮箱

配置 163 邮箱

Alertmager 本身支持邮件告警,但是邮件告警需要获取邮箱的SMTP相关信息,所以此时就需要邮件端提供这些信息,这里已163邮箱为例:

需要邮箱端开启相关配置

c9010be09a2c2e5c4d5b40d1bfbbd6b.png

829e69799091e9895bbcb81cc5c29b8.png

efeb76799a25b00e1a9b44ea3b871a0.png

配置 alertmanager

邮箱端开启相关配置后,在alertmanager里配置邮件告警,首先在global里配置SMTP服务器信息

global:
  # 告警超时时间
  resolve_timeout: 5m
  # 发送者邮箱地址
  smtp_from: '185xxxxxxx@163.com' 
  # 邮箱smtp服务器地址及端口  
  smtp_smarthost: 'smtp.163.com:25'  
  # 发送者邮箱账号
  smtp_auth_username: '185xxxxxxxx0@163.com'  
  # 发送者邮箱密码,这里填邮箱里的新增授权密码
  smtp_auth_password: 'xxxxx'
  # 是否使用tls 
  smtp_require_tls: false
  smtp_hello: '163.com'
  # 路由配置,设置报警的分发策略,它是一个树状结构,按照深度优先从左向右的顺序进行匹配。

global中配置了邮件服务器信息后,需要设置接收者

route:
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 1h
  # 路由里配置了告警信息发送给 email
  receiver: 'email'
receivers:
  # 接收者要与路由对应,填写接收者邮箱,之后告警此路由的告警就会发送给用户
  - name: 'email'
    email_configs:
    - to: '542xxxxxx@qq.com'

alertmanager 配置 template

上述方法无法配置发送告警模板,可以专门创建一个文件夹存放模板文件,并且在alertmanager声明使用此文件夹下模板

templates:
  - 'templates/*.tmpl'

查看templates文件夹下内容,发现内容可以选择变量形式体现

[root@localhost prometheus]# cat templates/email.tmpl 
{{ define "email.html" }}
{{ range .Alerts }}
告警程序: prometheus_alert <br>
告警级别: {{ .Labels.severity }} 级 <br>
告警类型: {{ .Labels.alertname }} <br>
故障主机: {{ .Labels.instance }} <br>
告警主题: {{ .Annotations.summary }} <br>
告警详情: {{ .Annotations.description }} <br>
触发时间: {{ .StartsAt.Format "2019-08-04 16:58:15" }} <br>
{{ end }}
{{ end }}

配置alertmanager使用此模板,在接收者中使用html格式使用此模板

route:
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 1h
  receiver: 'email'
templates:
  - 'templates/*.tmpl'
receivers:
  - name: 'email'
    email_configs:
    - to: '542255405@qq.com'
      html: '{{  template "email.html" . }}'
      # 邮件主题信息
      headers: {Subject: "[WARN] 报警邮件 {{ .CommonLabels.instance }} {{ .CommonAnnotations.summary }}"}