(1)注册完成企业微信
步骤略
(2)创建应用
点击【应用管理】-【创建应用】

填写【应用名称】、【应用介绍(选填)】并上传应用Logo后,点击【创建应用】

(3)获取企业ID
点击【我的企业】即可查看企业ID

(4)获取部门ID
点击【通讯录】-【部门】即可查看部门ID

(5)获取应用AgentId和应用secret
点击【应用管理】-【prom监控告警】

查看AgentId和Secret,其中Secret需要到APP上方可查看

(6)添加可信域名
点击【应用管理】-【prom监控告警】-【网页授权及JS-SDK】

说明:这里没有可用域名,所以不多做说明
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: 5m
wechat_api_url: 'https://qyapi.weixin.qq.com/cgi-bin/'
wechat_api_corp_id: '企业ID'
templates:
- '/bitnami/alertmanager/data/template/weixin.tmpl'
receivers:
- name: 'wechat'
wechat_configs:
- corp_id: '企业ID'
to_party: '部门ID'
agent_id: '应用AgentId'
api_secret: 'Secret信息'
send_resolved: true
route:
group_wait: 10s
group_interval: 5m
repeat_interval: 3h
receiver: 'wechat'
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: 5m
wechat_api_url: 'https://qyapi.weixin.qq.com/cgi-bin/'
wechat_api_corp_id: 'wwe897498df31cc026'
templates:
- '/bitnami/alertmanager/data/template/weixin.tmpl'
receivers:
- name: 'wechat'
wechat_configs:
- corp_id: 'wwe897498df31cc026'
to_party: '2'
agent_id: '1000003'
api_secret: 'UvuCd1WFrIB1ymPhy2b6m2sTOWnrblNtc1hGYA_DF8A'
send_resolved: true
route:
group_wait: 10s
group_interval: 5m
repeat_interval: 3h
receiver: 'wechat'
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 weixin.tmpl
{{ define "wechat.default.message" }}
{{- if gt (len .Alerts.Firing) 0 -}}
{{- range $index, $alert := .Alerts -}}
{{- if eq $index 0 -}}
**********告警通知**********
告警类型: {{ $alert.Labels.alertname }}
告警级别: {{ $alert.Labels.severity }}
{{- end }}
=====================
告警主题: {{ $alert.Annotations.summary }}
告警详情: {{ $alert.Annotations.description }}
故障时间: {{ $alert.StartsAt.Format "2006-01-02 15:04:05" }}
{{ if gt (len $alert.Labels.instance) 0 -}}故障实例: {{ $alert.Labels.instance }}{{- end -}}
{{- end }}
{{- end }}
{{- if gt (len .Alerts.Resolved) 0 -}}
{{- range $index, $alert := .Alerts -}}
{{- if eq $index 0 -}}
**********恢复通知**********
告警类型: {{ $alert.Labels.alertname }}
告警级别: {{ $alert.Labels.severity }}
{{- end }}
=====================
告警主题: {{ $alert.Annotations.summary }}
告警详情: {{ $alert.Annotations.description }}
故障时间: {{ $alert.StartsAt.Format "2006-01-02 15:04:05" }}
恢复时间: {{ $alert.EndsAt.Format "2006-01-02 15:04:05" }}
{{ if gt (len $alert.Labels.instance) 0 -}}故障实例: {{ $alert.Labels.instance }}{{- 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、登录企业微信查看告警信息