点击【Settings】

点击【服务】

按照提示发送短信,获取授权码bcreknhkuijidifd
2、将Alertmanager的配置文件从configMap里导出来
$ kubectl get cm prometheus-alertmanager -o=yaml > alertmanager_config.yaml
3、编辑配置文件
删除无用配置,要不然重新apply会报错

添加内容,模板如下
$ vi alertmanager_config.yaml
apiVersion: v1
data:
alertmanager.yaml: |
global:
resolve_timeout: 1h
smtp_smarthost: 'smtp.qq.com:465'
smtp_from: '发邮件的邮箱'
smtp_auth_username: '发邮件的邮箱'
smtp_auth_password: '你的授权码或者密码'
smtp_require_tls: false
templates:
- '/bitnami/alertmanager/data/template/email.tmpl'
receivers:
- name: default-receiver
email_configs:
- to: '接收邮件的邮箱'
html: '{{ template "email.html" . }}'
send_resolved: true
route:
group_wait: 10s
group_interval: 5m
receiver: default-receiver
repeat_interval: 3h
kind: ConfigMap
metadata:
annotations:
meta.helm.sh/release-name: prometheus
meta.helm.sh/release-namespace: default
labels:
app.kubernetes.io/component: alertmanager
app.kubernetes.io/instance: prometheus
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: prometheus
app.kubernetes.io/part-of: prometheus
app.kubernetes.io/version: 0.26.0
helm.sh/chart: prometheus-0.3.2
name: prometheus-alertmanager
namespace: default
根据自己情况填写
$ vi alertmanager_config.yaml
apiVersion: v1
data:
alertmanager.yaml: |
global:
resolve_timeout: 1h
smtp_smarthost: 'smtp.qq.com:465'
smtp_from: '1904763431@qq.com'
smtp_auth_username: '1904763431@qq.com'
smtp_auth_password: 'bcreknhkuijidifd'
smtp_require_tls: false
templates:
- '/bitnami/alertmanager/data/template/email.tmpl'
receivers:
- name: default-receiver
email_configs:
- to: 'xiaozhang_vip123@163.com'
html: '{{ template "email.html" . }}'
send_resolved: true
route:
group_wait: 10s
group_interval: 5m
receiver: default-receiver
repeat_interval: 3h
kind: ConfigMap
metadata:
annotations:
meta.helm.sh/release-name: prometheus
meta.helm.sh/release-namespace: default
labels:
app.kubernetes.io/component: alertmanager
app.kubernetes.io/instance: prometheus
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: prometheus
app.kubernetes.io/part-of: prometheus
app.kubernetes.io/version: 0.26.0
helm.sh/chart: prometheus-0.3.2
name: prometheus-alertmanager
namespace: default
4、重新导入配置
$ kubectl delete cm prometheus-alertmanager; kubectl apply -f alertmanager_config.yaml
5、由于Alertmanager有挂载到nfs,所以/bitnami/alertmanager/data/目录对应到nfs里,所以在NFS服务端192.168.1.34上操作,编写模板文件
$ cd /data/nfs/default-data-prometheus-alertmanager-0-pvc-105e6608-d0e4-4304-af09-a93b124424fe/
$ mkdir template
$ cd template
$ vi email.tmpl
{{ define "email.html" }}
{{- if gt (len .Alerts.Firing) 0 -}}
{{- range $index, $alert := .Alerts -}}
========= 告警通知 ==========
告警名称:{{ .Labels.alertname }}
告警级别:{{ .Labels.severity }}
告警机器:{{ .Labels.instance }} {{ .Labels.device }}
告警详情:{{ .Annotations.summary }}
告警时间:{{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}
========= END ==========
{{- end }}
{{- end }}
{{- if gt (len .Alerts.Resolved) 0 -}}
{{- range $index, $alert := .Alerts -}}
========= 恢复通知 ==========
告警名称:{{ .Labels.alertname }}
告警级别:{{ .Labels.severity }}
告警机器:{{ .Labels.instance }}
告警详情:{{ .Annotations.summary }}
告警时间:{{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}
恢复时间:{{ (.EndsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}
========= END ==========
{{- end }}
{{- end }}
{{- end }}
6、在k8s-master01节点上重启Alertmanager服务
$ kubectl get po |grep 'prometheus-alertmanager'|awk '{print $1}' |xargs -i kubectl delete po {}
7、在192.168.1.35上模拟CPU使用偏高,需要执行两次
$ cat /dev/zero > /dev/null &
8、打开浏览器输入http://192.168.1.31:31093访问Prometheus,到Prometheus页面下查看告警

9、登录163邮箱,查看报警信息即可
