alertmanage调用企业微信告警(k8s内部署)

alertmanage报警,prometheus监控钉钉告警、docker部署alertmanage 阅读详情

一、前言

    alertmanage调用企业微信应用告警会比直接使用钉钉告警更麻烦一点,调用企业微信应用告警需要在应用内配置企业可信ip,不然调用企业微信接口就会报错,提示ip地址有风险

二、部署

   先自行创建企业微信,再使用管理后台创建应用

 

 记录下agentid和secret值,后面配置调用企业微信告警会用到

往下找到企业可信ip,先按时提示验证企业 

 

 会提示让你输入域名,然后给出一个txt文件,需要使用nginx挂载这个txt文件到域名上,要使用该域名访问到该路径,就可以通过验证

只需在该域名的nginx代理中加入一下该配置项,匹配txt结尾的请求,到该root路径下,将txt文件放到该root路径下即可,重新加载nginx配置,就可以去验证企业可信ip了

查看企业微信的企业id

部署alertmanage

创建存放yaml配置的目录

mkdir /opt/alertmanage && cd /opt/alertmanage

编辑alertmanage配置文件,使用configmap服务挂载

vi configmap.yaml

kind: ConfigMap
apiVersion: v1
metadata:
  name: alertmanager
  namespace: prometheus
data:
  alertmanager.yml: |-
    global:
      resolve_timeout: 1m
      smtp_smarthost: 'smtp.qq.com:25'     #配置告警邮箱服务器
      smtp_from: '123456@qq.com'    #告警发送到的邮箱
      smtp_auth_username: '123456@qq.com'  
      smtp_auth_password: 'ioasdgxvovclbsfb'   #授权码,在邮箱里面获取
      smtp_require_tls: false  
      wechat_api_url: "https://qyapi.weixin.qq.com/cgi-bin/"  #企业微信的api接口,统一固定的
      wechat_api_corp_id: "ww7490f1231244252"   #上面获取的企业微信中的企业id
    templates:
      - '/etc/alertmanager/template/*.tmpl'       #使用告警模板
    route:
      group_by: ['alertname_wechat']
      group_wait: 30s    #告警等待发送时间
      group_interval: 5m
      repeat_interval: 15m   #重复告警的再次发送时间
      receiver: wechat       #调用的告警组件,下面配置的组件名称
    receivers:
    - name: 'wechat'
      wechat_configs:
      - send_resolved: true
        corp_id: ww7490f1231244252  #上面获取的企业微信中的企业id
        to_user: '@all'   #发送给所有人
        agent_id: 1000002   #上面获取的企业微信应用中的agentid
        api_secret: J6WJQ7QXEY5zodi12342352342  #上面获取的企业微信应用中的secret

编辑alertmanage使用的告警模板,使用configmap服务挂载

vi configmap-wechat.yaml

apiVersion: v1   
data:
  WeChat.tmpl: |-     #配置告警消息模板文件
    {{ define "wechat.default.message" }}
    {{- if gt (len .Alerts.Firing) 0 -}}   #判断是告警信息还是异常恢复信息,是告警则继续往下执行,不是则不往下执行
    {{- range $index, $alert := .Alerts -}}   #循环输出多个告警信息
    {{- if eq $index 0 -}}    #判断是否输出完毕
    {{- end }}    #对应第一个判断
    =========莓族环境监控报警 =========
    告警类型: {{ $alert.Labels.alertname }}
    告警级别: {{ $alert.Labels.severity }}
    故障主机: {{ $alert.Labels.instance }}
    告警主题: {{ $alert.Annotations.summary }}
    告警详情: {{ $alert.Annotations.description }}
    触发阀值:{{ $alert.Annotations.value }}
    故障时间: {{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}
    {{ if gt (len $alert.Labels.instance) 0 -}}故障实例: {{ $alert.Labels.instance }}{{- end -}}
    {{- end }}   #对应循环输出告警信息
    {{- end }}   #对应最后一个判断
    ========= = end =  =========
    {{- if gt (len .Alerts.Resolved) 0 -}}  #判断是告警信息还是异常恢复信息
    {{- range $index, $alert := .Alerts.Resolved -}}  #循环输出多个异常恢复信息
    {{- if eq $index 0 -}}    #判断是否输出完毕
    {{- end }}               #对应第一个判断
    =========莓族环境异常恢复 =========
    恢复类型: {{ $alert.Labels.alertname }}
    恢复级别: {{ $alert.Labels.severity }}
    系统环境: {{ $alert.Labels.environment }}
    恢复主题: {{ $alert.Annotations.summary }}
    告警详情: {{ $alert.Annotations.description }}
    故障时间: {{ ($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 -}}
    {{- end }}  #对应循环输出多个异常恢复信息
    {{- end }}  #对应最后一个判断
    {{- end }}   #整个流程结束
kind: ConfigMap
metadata:
  name: wechat
  namespace: prometheus

以上的变量取值都来自于配置的prometheus告警配置和alertmanage的值

 

 编辑部署alertmanage服务的deployment的yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: alertmanager
  namespace: prometheus
  labels:
    app: alertmanager
spec:
  replicas: 1
  selector:
    matchLabels:
      app: alertmanager
  template:
    metadata:
      labels:
        app: alertmanager
    spec:
      containers:
        - name: alertmanager
          image: "prom/alertmanager"
          imagePullPolicy: "IfNotPresent"
          args:
          - "--config.file=/etc/alertmanager/alertmanager.yml"
          ports:
            - containerPort: 9093
          readinessProbe:
            httpGet:
              path: /#/status
              port: 9093
            initialDelaySeconds: 30
            timeoutSeconds: 30
          volumeMounts:
            - name: config-volume   #挂载配置文件
              mountPath: /etc/alertmanager
            - name: wechat-tmpl      #挂载告警规则模板
              mountPath: /etc/alertmanager/template
            - name: tz-config
              mountPath: /etc/localtime
          resources:
            limits:
              cpu: 10m
              memory: 50Mi
            requests:
              cpu: 10m
              memory: 50Mi
      volumes:
        - name: config-volume    #使用配置文件的configmap
          configMap:
            name: alertmanager
        - name: wechat-tmpl     #使用规则模板的configmap
          configMap:
            name: wechat
        - name: tz-config
          hostPath:
            path: /usr/share/zoneinfo/Asia/Shanghai

编辑alertmanage服务对外访问的service的yaml

vi service.yaml

apiVersion: v1
kind: Service
metadata:
  name: svc-alertmanager
  namespace: prometheus
spec:
  type: NodePort
  ports:
  - port: 9093
    protocol: TCP
    targetPort: 9093
    nodePort: 30011
  selector:
    app: alertmanager

创建命名空间

kubectl create namespace prometheus

创建所有yaml服务

kubectl apply -f configmap-wechat.yaml

kubectl apply -f configmap.yaml

kubectl apply -f deployment.yaml 

kubectl apply -f service.yaml

查看服务是否正常

kubectl get pod -n prometheus

可以看到alertmanage服务正常运行,但是查看日志就会发现调用企业微信的应用接口报错,这是因为还没有在企业微信应用里配置企业可信ip

kubectl logs -f --tail=10 alertmanager-6b89d8cd4-mnx5m -n prometheus

 上面给出的报错ip地址就是你现在所用的公网地址,将这个地址复制下来,配置到企业微信应用的企业可信ip中

配置完成后,测试告警,企业微信就会收到应用发送的告警信息了

 

以上的企业微信白名单,可以使用自己企业中的固定公网地址,配置策略路由,将走向 qyapi.weixin.qq.com该域名的所有流量都走固定公网地址,注意是调用企业微信api接口的域名,而不是报错给出的那个域名

至此alertmanage服务使用企业微信告警配置完成

七、alertmanager介绍及部署 在我们的灾备体系中,当原有集群故障宕机业务彻底无法访问的时候,会把用户流量切换到备份集群中,这样为故障集群及其提供的各个微服务状态发送警报机会失去了意义,此时, Alertmanager 的抑制特性就可以在一定程度上避免管理员收到过多无用的警报通知。2、停止node_exporter,当停止之后,根据规则配置,告警会触发 == 0 ,出发之后会发送告警信息给alertmanager,alert manager收到告警信息之后,会检查配置,然后发送邮件给相应负责人。当停止之后,有三种状态 ,详见第6步。 阅读详情

相关推荐

Prometheus-Alertmanage钉钉实现告警

机器人名字:随意勾选ip:填入alertmanager外网ip。

crontab_e的博客 3147

prometheus+alertmanager告警消息对接企业微信、飞书、钉钉

本文讲述如何完美地将prometheus监控的告警消息通过alertmanager发送到企业微信、飞书、钉钉当前主流的通讯软件。

rainbowhhyhhy的博客 3992

一文彻底搞懂 Alertmanager 的告警抑制与静默

一文彻底搞懂 Alertmanager 的告警抑制与静默。

RAB 1万+

AlertManager实现企业微信报警

ALertManager支持的报警方式有邮件报警、钉钉报警、微信报警,本次将实现企业微信报警。将我们写的告警规则的阈值调小即可触发告警,将阈值改为10。由于我们有3台node节点,因此都会发到同一条告警消息中。告警状态为resolved表示问题已解决已经恢复正常。告警状态为resolved表示问题已解决已经恢复正常。告警状态为firing表示问题发生,且没有处理。FIRING状态表示问题发生且已经发送告警。在我的企业—最下面就会有企业id。告警消息极其丰富,特别详细。告警消息极其丰富,特别详细。

11 4248

【prometheus+alertmanager+qq邮箱、企业微信、飞书告警管理】

prometheus + alertmanager 告警管理

qq_44637753的博客 7621

alertmanager 基于webhook-adapter插件实现企业微信机器人提醒服务

【代码】alertmanager 企业微信机器人提醒服务。

极致,细节 7021

【云原生 | Kubernetes 系列】---AlertManage 无法发送企业微信告警故障排除

【云原生 | Kubernetes 系列】---AlertManage 无法发送企业微信告警故障排除

Q先生 1768

制造业批次管理中双计量单位动态转换的实践指南

本文详细介绍了制造业批次管理中双计量单位动态转换的实践指南,特别是在SAP系统中的配置与操作步骤。通过实际案例展示了如何解决采购与生产部门计量单位不一致的问题,提升物料管理效率。重点讲解了批次特性配置、移动类型调整及常见问题排查方法,适用于金属加工、化工等多个行业。

weixin_29228203的博客 159

部署Alertmanager发送告警

Prometheus 对指标的收集、存储与告警能力分属于 Prometheus Server 和 AlertManager 两个独立的组件,前者仅负责定义告警规则生成告警通知, 具体的告警操作则由后者完成。Alertmanager 负责处理由 Prometheus Server 发来的告警通知,Alertmanager对告警通知进行分组、去重后,根据路由规则将其路由到不同的receiver,如Email、钉钉或企业微信等。

2402_83805984的博客 1615

TiDB实战篇-数据库写入慢常见处理方式

TiDB实战篇-数据库写入慢常见处理方式

S1124654的博客 1010

告别昂贵硬件!用Unity3D 2023 + ROS2 Humble搭建你的第一个SLAM仿真实验室(保姆级教程)

本文提供了一份详细的教程,介绍如何使用Unity3D 2023和ROS2 Humble搭建SLAM仿真实验室,无需昂贵硬件即可实现虚拟传感器模拟和算法测试。通过Docker容器配置、ROS2安装优化及Unity插件集成,开发者可以快速构建高精度的仿真环境,适用于自主导航、多传感器标定等场景。

weixin_42526353的博客 434

Prometheus接入AlterManager配置企业微信告警(基于K8S环境部署)

如上图可以看到,Prometheus的告警信息已经发到AlterManager了,AlertManager收到报警数据后,会将警报信息进行分组,然后根据AlertManager配置的。2、由于在prometheus中新增了etcd,所以生成一个etcd-certs,这个在部署prometheus需要。1、创建新的Prometheus ConfigMap资源清单,添加监控K8S集群告警规则。1、创建AlterManager ConfigMap资源清单。如上图,告警信息已经成功发往企业微信了!

秦子腾 3712

Neo4j桌面版导入CVS文件

我们的relation.csv是这样的。

m0_53573725的博客 818

Altermanager安装和使用

Altermanager安装和使用

YIYIYI 7769

私彩视频开奖动画直播源码内部核心技术解析及修改可增加后台操控-持续更新文章!

其实在此很感谢能做出H5开奖系统的码农们,而我本人也喜欢分解此类的东西。 因为特殊原因,该东西本人就不做图片展示,以防他人商业化。 借用开奖摇奖代码首先分解首页index文件。代码如下:(后面持续在原有的作品上添加后台操作) 代码里写的//.....是我的注明代码的所需。 ​ <!DOCTYPE html> <html> <head> <...

yugua3837的博客 5996

实战演练,如何用Easyexcel合并单元格,设置字体、边框样式,并在尾行加入备注

,实现效果如下:1、多级表头合并2、表头底纹+表格边框3、合并相同数据单元格4、尾行加入备注。

Su7148的博客 1万+

Prometheus(四)——Alertmanager

在Prometheus Server中定义告警规则以及产生告警,Alertmanager组件则用于处理这些 由Prometheus产生的告警。Alertmanager即Prometheus体系中告警的统一处理中心。Alertmanager提供了多 种内置第三方告警通知方式,同时还提供了对Webhook通知的支持,通过Webhook用户可以完成对告警更多个性化的 扩展。 Alertmanager作为一个独立的组件,负责接收并处理来自Prometheus Server(也可以是其它的客户端程序)的告 警信息。

qq_40859395的博客 1万+

韩版传奇 2 源码分析与 Unity 重制(一)服务端 TCP 状态管理

该专题将会分析 LOMCN 基于韩版传奇 2,使用 .NET 重写的传奇源码(服务端 + 客户端),分析数据交互、状态管理和客户端渲染等技术,此外笔者还会分享将客户端部分移植到 Unity 和服务端用现代编程语言重写的全过程。本文重点介绍了服务端的启动链路、网络初始化和连接处理这三个过程,并简要分析的游戏循环的实现与数据包处理,在下一篇文章中,我们会从客户端角度分析从游戏启动、登录、游戏开始和基础游戏交互的全流程。

东方猫的博客 2499

alertmanager监控 Prometheus 告警,alertmanage配置邮件告警

1、搭建Prometheus,node及mysql参考该链接:配置grafana展示prometheus监控数据 2、下载安装 alert manager:https://prometheus.io/download/#alertmanager 3、解压缩至目录:/usr/local/prometheus/alertmanager 4、执行命令启动 alert manager:[root@localhost alertmanager]# ./alertmanager --co...

zhang的博客 1210

YOLOv13涨点改进| CVPR 2026 |独家创新首发、主干改进篇 |利用RIS-PiDiNet主干让YOLOv13更加强大!适合遥感目标检测、小目标检测、旋转目标检测,变化检测,图像分割涨点

🔥本文提出了一种改进的RIS-PiDiNet主干网络,通过引入几何先验构建几何一致性检测器,显著提升了模型在任意方向、结构规则目标场景下的检测性能。包含两个核心模块:S-PDC利用极谐变换的谐波核建模目标结构对称性,RIS-PDC通过SO(2)群平均实现旋转不变性。网络采用基于RIS-block的主干结构并融合轻量级LBP特征,增强了细粒度结构表达能力。实验表明,该方法特别适用于遥感和复杂几何分布场景,能有效提升目标检测的鲁棒性和精度。文章还详细介绍了如何将RIS-PiDiNet集成到YOLOv13框架

Ai缝合怪、助力小伙伴高效发论文 90

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Promethues之AlertManager 配置企业微信告警

Alertmanager 企业微信告警详细配置

weixin_41299062的博客 3266

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Alertmanager实现企业微信机器人webhook告警

1. 说明 由于企业微信更新问题,现在已经无法直接使用创建应用后在alertmanager的配置文件中定义企业id及secret就可以发送告警信息了,除非填写备案后域名;为了我们这种个人开发者非常的不便,所以本文档是为了解决想使用企业微信告警但又无法备案的朋友;下面只是我的操作过程记录 如果没有自定义的需求可以直接使用我的镜像可以直接使用我的镜像:kfreesre/prometheus-fl...

K-free的博客 4601

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Alertmanager 告警详解

然后,你可以定义子路由或子节点,它们是树的分支,对某些特定的警报感兴趣,或者会采取某些特定的操作。Prometheus scrape_interval: 15s:采集的时间间隔是15s,也就是默认每隔15s采集一次指标,也就是有一个实例宕掉了,正好前一秒刚好采集完,那么还要等15s才能采集到这个指标,普罗米修斯才能感知到。分组的概念rules.yml .groups.name:将类似的指标分组,比如说监控linux服务器会监控其负载,资源负载就是一个分组,这个分组下面会有cpu的指标,内存的指标。

小楼一夜听春雨,深巷明朝卖杏花 1万+

Alertmanager告警配置

全网最细,掌握alertmanager的配置使用!

ArrogantB的博客 3454

Alertmanager 安装与配置

AlertManager配置 下载解压alertmanager 配置启动文件 [Unit] Description=alertmanager [Service] ExecStart=/usr/local/alertmanager/alertmanager --config.file=/usr/local/alertmanager/alertmanager.yml --storage.path=/usr/local/alertmanager/data --web.listen-address=:9093

qiancool的博客 2240

Centos7下安装 prometheus+alertmanager 配置企业微信报警

一、前言 承接上篇文章 Centos7下安装 prometheus+grafana,我们已然对服务器进行了监控,但是只监控不进行报警的监控无疑是用处不大的,今天我们学习部署一下 alertmanager 配置企业微信报警。 二、准备工作 1、安装 alertmanager 1、以下步骤都在 /opt/ 目录下执行 1、wget https://github.com/prometheus/alertmanager/releases/download/v0.22.0-rc.2/alertmanager-0.22

后青春诗ing 1316
上一篇: k8s集群1.23.0版本部署说明
下一篇: blackbox黑盒监控部署(k8s内)tensuns专用
Apex   Predator
博客等级 码龄6年 9371粉丝 289原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值