乔克视界 乔克视界
首页
  • 运维
  • 开发
  • 监控
  • 安全
  • 随笔
  • Docker
  • Golang
  • Python
  • AIOps
  • DevOps
  • Kubernetes
  • Prometheus
  • ELK
  • 心情杂货
  • 读书笔记
  • 面试
  • 实用技巧
  • 博客搭建
友链
关于
收藏
  • 分类
  • 标签
  • 归档

乔克

云原生爱好者
首页
  • 运维
  • 开发
  • 监控
  • 安全
  • 随笔
  • Docker
  • Golang
  • Python
  • AIOps
  • DevOps
  • Kubernetes
  • Prometheus
  • ELK
  • 心情杂货
  • 读书笔记
  • 面试
  • 实用技巧
  • 博客搭建
友链
关于
收藏
  • 分类
  • 标签
  • 归档
  • Docker

  • Golang

  • AIOps

  • Python

  • DevOps

  • Kubernetes

  • Prometheus

    • Prometheus 介绍
    • 手动搭建 Prometheus
    • 配置监控
    • 安装 Grafana
    • AlertManager
    • Operator 部署 Prometheus
    • 常用函数
    • 黑盒监控
    • 集群事件监控之 kube-eventer
    • 配置企业微信告警
    • PromQL 常用操作
    • 配置短信告警
    • 监控指标
    • PushGateway
    • Google 四大黄金指标
    • Kubernetes 性能指标
  • ELK

  • 专栏
  • Prometheus
乔克
2025-07-20

配置企业微信告警

kubernetes operator 安装

前提:创建企业微信,创建应用

然后配置 altermanager.yaml

global:
  resolve_timeout: 5m
receivers:
  - name: wechat
    wechat_configs:
      - agent_id: "100000x"
        api_secret: Nm7PRrxxxxG8EpkyWuXDAWMLmFo
        corp_id: wwf9d3833cd66f34d8
        send_resolved: true
        to_user: Joker
route:
  group_by:
    - job
  group_interval: 5m
  group_wait: 30s
  receiver: wechat
  repeat_interval: 12h
  routes:
    - match:
        alertname: Watchdog
      receiver: wechat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

然后删除原有的 alertmanager-main

kubectl delete secret alertmanager-main -n monitoring
1

重新创建

kubectl create secret generic alertmanager-main --from-file=alertmanager.yaml -n monitoring
1

然后就可以收到告警了

1592552136954 6a9f8d9b 6270 4e05 af4b 043d080ec67b

不过现在这个告警不好看,我们可以自定义模板。

创建一个 template.tmp1 的文件。如下

{{ define "wechat.default.message" }}
{{- if gt (len .Alerts.Firing) 0 -}}
{{- range $index, $alert := .Alerts -}}
{{- if eq $index 0 }}
==========异常告警==========
告警类型: {{ $alert.Labels.alertname }}
告警级别: {{ $alert.Labels.severity }}
告警详情: {{ $alert.Annotations.message }}{{ $alert.Annotations.description}};{{$alert.Annotations.summary}}
故障时间: {{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}
{{- if gt (len $alert.Labels.instance) 0 }}
实例信息: {{ $alert.Labels.instance }}
{{- end }}
{{- if gt (len $alert.Labels.namespace) 0 }}
命名空间: {{ $alert.Labels.namespace }}
{{- end }}
{{- if gt (len $alert.Labels.node) 0 }}
节点信息: {{ $alert.Labels.node }}
{{- end }}
{{- if gt (len $alert.Labels.pod) 0 }}
实例名称: {{ $alert.Labels.pod }}
{{- end }}
============END============
{{- end }}
{{- end }}
{{- end }}
{{- if gt (len .Alerts.Resolved) 0 -}}
{{- range $index, $alert := .Alerts -}}
{{- if eq $index 0 }}
==========异常恢复==========
告警类型: {{ $alert.Labels.alertname }}
告警级别: {{ $alert.Labels.severity }}
告警详情: {{ $alert.Annotations.message }}{{ $alert.Annotations.description}};{{$alert.Annotations.summary}}
故障时间: {{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}
恢复时间: {{ ($alert.EndsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}
{{- if gt (len $alert.Labels.instance) 0 }}
实例信息: {{ $alert.Labels.instance }}
{{- end }}
{{- if gt (len $alert.Labels.namespace) 0 }}
命名空间: {{ $alert.Labels.namespace }}
{{- end }}
{{- if gt (len $alert.Labels.node) 0 }}
节点信息: {{ $alert.Labels.node }}
{{- end }}
{{- if gt (len $alert.Labels.pod) 0 }}
实例名称: {{ $alert.Labels.pod }}
{{- end }}
============END============
{{- end }}
{{- end }}
{{- end }}
{{- end }}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

然后将其和上面的 altermanager.yaml 放到同一个 secret 中。

先修改 altermanager.yaml,如下:

global:
  resolve_timeout: 5m
receivers:
- name: wechat
  wechat_configs:
  - agent_id: "100000x"
    api_secret: Nm7PRrxxxxG8EpkyWuXDAWMLmFo
    corp_id: wwf9d3833cd66f34d8
    send_resolved: true
    to_user: Joker
route:
  group_by:
  - job
  group_interval: 5m
  group_wait: 30s
  receiver: wechat
  repeat_interval: 12h
  routes:
  - match:
      alertname: Watchdog
    receiver: wechat
templates:
- /etc/alertmanager/config/template.tmp1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

如下先删除,再创建

kubectl delete secret alertmanager-main -n monitoring
kubectl create secret generic alertmanager-main --from-file=alertmanager.yaml --from-file=template.tmp1 -n monitoring
1
2

然后报警出来就会好看些了。

1592554337646 0d3d1c57 1662 4233 96fd 6851b34bb9d1

上次更新: 2025/07/20, 10:40:32
集群事件监控之 kube-eventer
PromQL 常用操作

← 集群事件监控之 kube-eventer PromQL 常用操作→

最近更新
01
elastic 账户认证 401 问题
07-20
02
使用 helm 安装 es 和 kibana
07-20
03
elastic stack 搭建
07-20
更多文章>
Theme by Vdoing | Copyright © 2019-2025 乔克 | MIT License | 渝ICP备20002153号 |
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式