news 2026/6/23 16:00:42

【Prometheus Operator 的钉钉/企业微信告警配置】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Prometheus Operator 的钉钉/企业微信告警配置】

提示:本文原创作品,良心制作,干货为主,简洁清晰,一看就会

告警推送

  • 一、钉钉告警
    • 1.1 添加机器人
    • 1.2 安装webhook
    • 1.3 配置alertmanager-alertmanager.yaml
    • 1.4 创建alertmanagerConfig
    • 1.5 测试告警
  • 二、企业微信告警
    • 2.1 添加机器人
    • 2.2 告警格式转换
    • 2.3 配置alertmanager-alertmanager.yaml
    • 2.4 创建alertmanagerConfig
    • 2.5 测试告警


一、钉钉告警

1.1 添加机器人

在钉钉群设置中新增自定义机器人,填写机器人名称,安全校验优先选择加签模式,规避恶意调用导致的消息刷屏风险。创建完成后保存专属 Webhook 地址与加密密钥,这两组参数是后续告警配置的核心凭证

去群聊中添加机器人




1.2 安装webhook

原生 Alertmanager 无法直接对接钉钉消息格式,需要部署钉钉 Webhook 转发插件实现报文格式转换
插件会接收 Alertmanager 推送的原生告警 JSON 数据,自动完成钉钉签名加密、报文格式封装,转换为钉钉机器人可识别的消息结构

root@k8s-master1:~# git clone https://github.com/timonwong/prometheus-webhook-dingtalk.gitroot@k8s-master1:~# cd prometheus-webhook-dingtalk/contrib/k8s/root@k8s-master1:~/prometheus-webhook-dingtalk/contrib/k8s# vim config/config.yaml

root@k8s-master1:~/prometheus-webhook-dingtalk/contrib/k8s# vim deployment.yaml

root@k8s-master1:~/prometheus-webhook-dingtalk/contrib/k8s# kubectl kustomize | kubectl apply -f - -n monitoringroot@k8s-master1:~/prometheus-webhook-dingtalk/contrib/k8s# kubectl get pod -n monitoring | grep dingalertmanager-webhook-dingtalk-cb7f6c584-92sqj 1/1 Running 0 13s

1.3 配置alertmanager-alertmanager.yaml

root@k8s-master1:~/prometheus-webhook-dingtalk/contrib/k8s# cd /root/kube-prometheus/manifests/root@k8s-master1:~/kube-prometheus/manifests# vim alertmanager-alertmanager.yaml


1.4 创建alertmanagerConfig

root@k8s-master1:~/kube-prometheus/manifests# vim dingding-alertmanagerconfig.yamlapiVersion:monitoring.coreos.com/v1alpha1kind:AlertmanagerConfigmetadata:name:dingdinglabels:# 需要和alertmanager-alertmanager.yaml中的告警配置标签保持一致alertmanagerConfig:emailnamespace:monitoringspec:route:groupBy:['severity']groupWait:1mgroupInterval:1mrepeatInterval:1mreceiver:dingding-webhookreceivers:-name:"dingding-webhook"webhookConfigs:# 告警恢复时发送恢复通知-sendResolved:true# 钉钉告警webhook服务的访问地址url:"http://alertmanager-webhook-dingtalk.monitoring/dingtalk/webhook1/send"

1.5 测试告警

我目前有一套mysql高可用集群,接下来将以mysql集群为例演示如何配置对应的 Prometheus 告警触发规则

root@k8s-master1:~/kube-prometheus/manifests# kubectl get podNAME READY STATUS RESTARTS AGE mysql-rep-master-0 2/2 Running 8 (165m ago) 5d21h mysql-rep-slave-0 2/2 Running 6 (165m ago) 5d21h mysql-rep-slave-1 2/2 Running 6 (165m ago) 5d21h## mysql告警规则root@k8s-master1:~/kube-prometheus/manifests# vim mysql-rule.yamlapiVersion:monitoring.coreos.com/v1kind:PrometheusRulemetadata:labels:app:kube-prometheus-stackrole:alerting-rulesprometheus:kube-prometheus-stack-prometheusname:prometheus-mysql-alertsnamespace:monitoring# 请替换为你的Prometheus所在namespacespec:groups:-name:mysqlrules:# ==================== 1. 集群可用性告警 ====================-alert:MySQLDownexpr:mysql_up == 0for:1mlabels:severity:criticalnamespace:monitoringannotations:summary:"MySQL实例 {{ $labels.instance }} 已宕机"description:"Prometheus 无法连接到 {{ $labels.pod }} 上的 MySQL 实例。这通常意味着 mysqld 进程已停止或 exporter 无法连接。"# ==================== 2. 主从复制告警 ====================# 2.1 复制延迟过高-alert:MySQLReplicationLagHighexpr:mysql_slave_status_seconds_behind_source>30for:2mlabels:severity:warningnamespace:monitoringannotations:summary:"MySQL 复制延迟较高"description:"从库 {{ $labels.pod }} (实例: {{ $labels.instance }}) 复制落后主库 {{ $value }} 秒。请检查网络延迟或主库写入负载。"# 2.2 复制线程停止-alert:MySQLReplicationSQLThreadDownexpr:mysql_slave_status_replica_sql_running == 0for:1mlabels:severity:criticalnamespace:monitoringannotations:summary:"MySQL 复制 SQL 线程停止"description:"从库 {{ $labels.pod }} 的 SQL 线程未运行,数据同步已中断。请检查 relay log 是否有损坏或错误。"-alert:MySQLReplicationIOThreadDownexpr:mysql_slave_status_replica_io_running == 0for:1mlabels:severity:criticalnamespace:monitoringannotations:summary:"MySQL 复制 IO 线程停止"description:"从库 {{ $labels.pod }} 的 IO 线程未运行,无法从主库获取二进制日志,网络连接可能已断开。"

进入mysql slave pod内部,关闭主从同步,测试一下能不能收到告警

root@k8s-master1:~/kube-prometheus/manifests# kubectl exec -it mysql-rep-slave-0 /bin/bashI have no name!@mysql-rep-slave-0:/$mysql-uroot-p'Root@12345' mysql>stop replica;

收到告警消息

进入mysql slave pod内部,恢复主从同步,测试一下能不能收到恢复消息

root@k8s-master1:~/kube-prometheus/manifests# kubectl exec -it mysql-rep-slave-0 /bin/bashI have no name!@mysql-rep-slave-0:/$mysql-uroot-p'Root@12345' mysql>start replica;

收到恢复消息

到此,Prometheus钉钉告警就到此结束了!


二、企业微信告警

2.1 添加机器人

去群聊中添加机器人


2.2 告警格式转换

Alertmanager 用的是监控行业标准告警协议报文,企业微信群机器人用的是IM 聊天工具自定义消息协议报文,两套协议互不认识,必须通过中间件做「报文解析→内容提取→格式重组」,才能正常把监控告警发到微信群

我准备了一个 wechat.yaml 一共创建两类 K8s 资源
Deployment:部署运行 Python Flask 写的告警转发容器,启动一个监听 5000 端口的 Web 服务;接收 Alertmanager 推送的标准告警 JSON,自动格式化转换成企业微信可识别的消息格式,再调用企微接口发送告警、告警恢复通知
Service:给部署的 Pod 创建集群内固定访问入口,通过服务名 prometheus-webhook-wechat.monitoring:5000 让 Alertmanager 可以稳定调用这个转发服务,不需要依赖 Pod 动态变化的 IP 地址

root@k8s-master1:~# vim wechat.yaml---apiVersion:apps/v1kind:Deploymentmetadata:labels:app:prometheus-webhook-wechatname:prometheus-webhook-wechatnamespace:monitoringspec:replicas:1selector:matchLabels:app:prometheus-webhook-wechattemplate:metadata:labels:app:prometheus-webhook-wechatspec:dnsConfig:options:-name:ndotsvalue:"2"containers:-name:prometheus-webhook-wechatimage:linge365/webhook-wechat:latestimagePullPolicy:IfNotPresentenv:-name:ROBOT_TOKEN# 粘贴刚才企业微信上复制的tokenvalue:"6a1b465b-8e27-42c5-acc1-29c09084fa18"ports:-containerPort:5000protocol:TCPresources:requests:cpu:100mmemory:100Milimits:cpu:200mmemory:500Mi---apiVersion:v1kind:Servicemetadata:labels:app:prometheus-webhook-wechatname:prometheus-webhook-wechatnamespace:monitoringspec:ports:-port:5000protocol:TCPtargetPort:5000selector:app:prometheus-webhook-wechat
root@k8s-master1:~# kubectl apply -f wechat.yaml

2.3 配置alertmanager-alertmanager.yaml

root@k8s-master1:~/prometheus-webhook-dingtalk/contrib/k8s# cd /root/kube-prometheus/manifests/root@k8s-master1:~/kube-prometheus/manifests# vim alertmanager-alertmanager.yaml


2.4 创建alertmanagerConfig

root@k8s-master1:~/kube-prometheus/manifests# vim wechat-alertmanagerconfig.yamlapiVersion:monitoring.coreos.com/v1alpha1kind:AlertmanagerConfigmetadata:name:wechatlabels:alertmanagerConfig:emailnamespace:monitoringspec:route:groupBy:['severity']groupWait:1mgroupInterval:1mrepeatInterval:5mreceiver:wechat-webhookreceivers:-name:"wechat-webhook"webhookConfigs:-sendResolved:trueurl:"http://prometheus-webhook-wechat:5000"
root@k8s-master1:~/kube-prometheus/manifests# kubectl apply -f wechat-alertmanagerconfig.yaml

2.5 测试告警

与钉钉告警测试类似,我同样用我已有的一套mysql高可用来测试

进入mysql slave pod内部,关闭sql线程,测试一下能不能收到告警

root@k8s-master1:~/kube-prometheus/manifests# kubectl exec -it mysql-rep-slave-0 /bin/bashI have no name!@mysql-rep-slave-0:/$mysql-uroot-p'Root@12345' mysql>STOP REPLICA IO_THREAD;

收到告警消息

进入mysql slave pod内部,恢复主从同步,测试一下能不能收到恢复消息

root@k8s-master1:~/kube-prometheus/manifests# kubectl exec -it mysql-rep-slave-0 /bin/bashI have no name!@mysql-rep-slave-0:/$mysql-uroot-p'Root@12345' mysql>start replica;

收到恢复消息

到此,企业微信告警配置结束了!



注:
文中若有疏漏,欢迎大家指正赐教。
本文为100%原创,转载请务必标注原创作者,尊重劳动成果。
求赞、求关注、求评论!你的支持是我更新的最大动力,评论区等你~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 15:58:42

08 - 组织生命体:AI时代组织管理深度诊断试卷

你正坐在会议室里,CTO刚刚汇报完大模型部署的进展——效率提升了42%,成本下降了28%。董事会很满意。但你知道一个他们不知道的数字:核心工程师的主动离职率,在过去两个季度里翻了一倍。 离职面谈的最后一句话像一根刺扎在你心里:“公司越来越像一台完美的机器,而我越来越…

作者头像 李华
网站建设 2026/6/23 15:58:32

简谈循环神经网络(RNN)以及现代变体

一、概述循环神经网络,Recurrent Neural Network,简称RNN。是一种专门用于处理序列数据(比如时间序列、文本、语音等)的深度学习模型。与传统的神经网络不同的是,RNN具有“记忆功能”,简单理解就是能够利用…

作者头像 李华
网站建设 2026/6/23 15:54:35

震动感应灯

在user文件夹添加shake文件夹添加shake.c,shake.h文件//在shake.c #include"sahke.h" #include"stm32f10x.h"void Shake_Init(void) {}//在shake.h #include"stm32f10x.h"void Shake_Init(void);//在main.c里调用Shake_Init();并且添…

作者头像 李华
网站建设 2026/6/23 15:53:25

51单片机音乐盒

目录 具体实现功能 设计介绍 51单片机简介 资料内容 原理图和PCB(AD19) 仿真实现(protues8.7) 程序(Keil5) 全部资料 资料获取 具体实现功能 具体功能: 单片机内置8首歌曲&#xff0c…

作者头像 李华
网站建设 2026/6/23 15:44:44

视觉语言模型在扫描路径语义相似性分析中的应用

1. 视觉语言模型与扫描路径相似性研究概述 眼动追踪技术长期以来为我们提供了精确的"人们看向何处"的数据,但解读"人们看到了什么"始终是一个挑战。传统扫描路径(scanpath)相似性度量方法如MultiMatch、动态时间规整(DTW)等,主要评估…

作者头像 李华
网站建设 2026/6/23 15:40:11

AEGIS技术解析:基于梯度正交投影的大模型微调防遗忘实战

1. 从“灾难性遗忘”说起:为什么大模型微调后反而变“笨”了?最近在折腾多模态大模型的微调,特别是视觉语言动作模型这类大家伙。不知道你有没有遇到过这种情况:你花了好几天时间,用一批高质量的专业数据,比…

作者头像 李华