在此之前我们需要点击163邮箱注册一下,下面进行163邮箱告警操作:
1.开启SMTP协议
点击【设置】-【POP3/SMTP/IMAP】

点击【开启】

点击【继续开启】

扫码后,根据提示发送短信后,点击【我已发送】

复制授权码后,点击【确定】

2.配置告警模板
进入工作目录,修改配置文件
[root@k8s-master01 ~]# cd /root/kube-prometheus/manifests
[root@k8s-master01 manifests]# vim alertmanager-secret.yaml
(1)添加SMTP相关配置
smtp_from: "your-alert@163.com"
smtp_smarthost: "smtp.163.com:465"
smtp_hello: "163.com"
smtp_auth_username: "your-alert@163.com"
smtp_auth_password: "YOUR_SMTP_AUTH_CODE"
smtp_require_tls: false
上面参数说明:
smtp_from: 邮件的发送者地址smtp_smarthost: SMTP 服务器的地址和端口,这里设置为 "smtp.163.com:465",表示将使用 163.com 的 SMTP 服务器,并连接到端口 465。smtp_hello: 发送 HELO/EHLO 命令时使用的域名,这里设置为 "163.com",通常与 SMTP 服务器地址的域名一致smtp_auth_username: SMTP 服务器的用户名,用于身份验证smtp_auth_password: SMTP 服务器的密码,用于身份验证smtp_require_tls: 是否要求使用 TLS 加密传输邮件,这里设置为false,表示不要求使用 TLS
(2)添加recivers配置
"receivers":
- "name": "Default"
email_configs: #代表使用邮件通知
- to: "your-alert@163.com" #收件人,可以配置多个,逗号隔开
send_resolved: true #告警如果被解决是否发送解决通知
上面参数说明:
name: 接收者的名称,这里设置为 "Default",可以根据实际需求自定义名称。email_configs: 该接收者使用邮件通知方式,这是一个列表,可以配置多个邮件通知。to: 收件人的电子邮件地址,表示将警报通知发送到这个地址。如果需要将通知发送到多个地址,可以用逗号隔开。send_resolved: 告警是否被解决后也发送通知,这里设置为true,表示在警报解决后发送解决通知。如果设置为false,则警报解决后不发送通知。
(3)添加分组job和alertname
"route":
"group_by":
- "namespace"
- job
- alertname
(4)路由规则分析
"route":
"group_by":
- "namespace"
"group_interval": "5m"
"group_wait": "30s"
"receiver": "Default"
"repeat_interval": "12h"
"routes":
- "matchers":
- "alertname = Watchdog"
"receiver": "Watchdog"
- "matchers":
- "alertname = InfoInhibitor"
"receiver": "null"
- "matchers":
- "severity = critical"
"receiver": "Critical"
该告警规则对namespace标签进行分组(group_by字段),没有匹配到子路由的告警默认发送给名为Default的receiver(receiver字段)。如果匹配到alertname=Watchdog的告警,则将通知发送给Watchdog,如果匹配到severity=critical的告警,则将通知发送给Critical。
以上添加完配置文件总体如下:
[root@k8s-master01 ~]# cd /root/kube-prometheus/manifests
[root@k8s-master01 manifests]# vim alertmanager-secret.yaml
apiVersion: v1
kind: Secret
metadata:
labels:
app.kubernetes.io/component: alert-router
app.kubernetes.io/instance: main
app.kubernetes.io/name: alertmanager
app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 0.25.0
name: alertmanager-main
namespace: monitoring
stringData:
alertmanager.yaml: |-
"global":
"resolve_timeout": "5m"
smtp_from: "your-alert@163.com"
smtp_smarthost: "smtp.163.com:465"
smtp_hello: "163.com"
smtp_auth_username: "your-alert@163.com"
smtp_auth_password: "YOUR_SMTP_AUTH_CODE"
smtp_require_tls: false
"inhibit_rules":
- "equal":
- "namespace"
- "alertname"
"source_matchers":
- "severity = critical"
"target_matchers":
- "severity =~ warning|info"
- "equal":
- "namespace"
- "alertname"
"source_matchers":
- "severity = warning"
"target_matchers":
- "severity = info"
- "equal":
- "namespace"
"source_matchers":
- "alertname = InfoInhibitor"
"target_matchers":
- "severity = info"
"receivers":
- "name": "Default"
email_configs:
- to: "your-alert@163.com"
send_resolved: true
- "name": "Watchdog"
- "name": "Critical"
- "name": "null"
"route":
"group_by":
- "namespace"
- job
- alertname
"group_interval": "5m"
"group_wait": "30s"
"receiver": "Default"
"repeat_interval": "12h"
"routes":
- "matchers":
- "alertname = Watchdog"
"receiver": "Watchdog"
- "matchers":
- "alertname = InfoInhibitor"
"receiver": "null"
- "matchers":
- "severity = critical"
"receiver": "Critical"
type: Opaque
3.将更改好的Alertmanager配置加载到Alertmanager
[root@k8s-master01 manifests]# kubectl replace -f alertmanager-secret.yaml
4.浏览器输入192.168.1.31:30966,打开alertmanager界面
点击【Status】即可查看配置文件,观察到配置已经生效

点击【Alerts】即可查看分组信息,观察到配置已经生效

5.登录163邮箱查看,观察到已存在告警邮件
