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

一、前言

    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: alertmanagernamespace: prometheus
data:alertmanager.yml: |-global:resolve_timeout: 1msmtp_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"   #上面获取的企业微信中的企业idtemplates:- '/etc/alertmanager/template/*.tmpl'       #使用告警模板route:group_by: ['alertname_wechat']group_wait: 30s    #告警等待发送时间group_interval: 5mrepeat_interval: 15m   #重复告警的再次发送时间receiver: wechat       #调用的告警组件,下面配置的组件名称receivers:- name: 'wechat'wechat_configs:- send_resolved: truecorp_id: ww7490f1231244252  #上面获取的企业微信中的企业idto_user: '@all'   #发送给所有人agent_id: 1000002   #上面获取的企业微信应用中的agentidapi_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: wechatnamespace: prometheus

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

 

 编辑部署alertmanage服务的deployment的yaml

apiVersion: apps/v1
kind: Deployment
metadata:name: alertmanagernamespace: prometheuslabels:app: alertmanager
spec:replicas: 1selector:matchLabels:app: alertmanagertemplate:metadata:labels:app: alertmanagerspec:containers:- name: alertmanagerimage: "prom/alertmanager"imagePullPolicy: "IfNotPresent"args:- "--config.file=/etc/alertmanager/alertmanager.yml"ports:- containerPort: 9093readinessProbe:httpGet:path: /#/statusport: 9093initialDelaySeconds: 30timeoutSeconds: 30volumeMounts:- name: config-volume   #挂载配置文件mountPath: /etc/alertmanager- name: wechat-tmpl      #挂载告警规则模板mountPath: /etc/alertmanager/template- name: tz-configmountPath: /etc/localtimeresources:limits:cpu: 10mmemory: 50Mirequests:cpu: 10mmemory: 50Mivolumes:- name: config-volume    #使用配置文件的configmapconfigMap:name: alertmanager- name: wechat-tmpl     #使用规则模板的configmapconfigMap:name: wechat- name: tz-confighostPath:path: /usr/share/zoneinfo/Asia/Shanghai

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

vi service.yaml

apiVersion: v1
kind: Service
metadata:name: svc-alertmanagernamespace: prometheus
spec:type: NodePortports:- port: 9093protocol: TCPtargetPort: 9093nodePort: 30011selector: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服务使用企业微信告警配置完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/225264.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GitHub精选项目】抖音/ TikTok 视频下载:TikTokDownloader 操作指南

前言 本文为大家带来的是 JoeanAmier 开发的 TikTokDownloader 项目,这是一个高效的下载 抖音/ TikTok 视频的开源工具。特别适合用户们保存他们喜欢的视频或分享给其他人。 TikTokDownloader 是一个专门设计用于下载 TikTok 视频的工具,旨在为用户提供一…

阿里云自建官方Docker仓库镜像提交拉取方法

文章目录 发布镜像到DockerHub发布镜像到自建Docker仓库(Harbor)修改配置文件在Linux服务器中登录Docker打TAGPUSH提交镜像PULL拉取镜像 发布镜像到阿里云容器服务在Linux服务器中登录DockerPUSH提交镜像PULL拉取镜像 发布镜像到DockerHub 本地我们镜像命名可能会不规范&#…

设计模式-单例模式(结合JVM基础知识)

1.定义介绍 所谓单例模式,是指在程序运行时,整个JVM中只有一个该类的实例对象 2. 单例模式的优点 复用性高,节省内存资源。类的加载、连接、初始化、使用都要占用虚拟机内存空间,因此,频繁创建对象会造成资源浪费&a…

从企业级负载均衡到云原生,深入解读F5

上世纪九十年代,Internet快速发展催生了大量在线网站,Web访问量迅速提升。在互联网泡沫破灭前,这个领域基本是围绕如何对Web网站进行负载均衡与优化。从1997年F5发布了BIG-IP,到快速地形成完整ADC产品线,企业级负载均衡…

家校互通小程序实战开发02首页搭建

目录 1 创建应用2 搭建首页总结 我们上一篇介绍了家校互通小程序的需求,创建了对应的数据源。有了这个基础的分析之后,我们就可以进入到开发阶段了。开发小程序,先需要创建应用。 1 创建应用 登录控制台,点击创建应用&#xff0c…

工具系列:TimeGPT_(2)使用外生变量时间序列预测

文章目录 TimeGPT使用外生变量时间序列预测导入相关工具包预测欧美国家次日电力价格案例 TimeGPT使用外生变量时间序列预测 外生变量在时间序列预测中非常重要,因为它们提供了可能影响预测的额外信息。这些变量可以包括假日标记、营销支出、天气数据或与你正在预测…

CentOS安装Docker

目录 一、前置条件 二、安装Docker 安装方式 配置镜像仓库 执行安装 启动Docker 检查Docker是否可以正常运行 三、卸载Docker 卸载Docker核心组件 清理Docker相关资源 参考文档 一、前置条件 安装 Docker 之前,需要先准备 CentOS 环境 目前支持 CentOS…

VScode跑通Remix.js官方的contact程序开发过程

目录 1 引言 2 安装并跑起来 3 设置根路由 4 用links来添加风格资源 ​5 联系人路由的UI 6 添加联系人的UI组件 7 嵌套路由和出口 8 类型推理 9 Loader里的URL参数 10 验证参数并抛出响应 书接上回,我们已经跑通了remix的quick start项目,接下…

Linux开发工具——gcc篇

gcc的使用 文章目录 gcc的使用 历史遗留问题(普通用户sudo) gcc编译过程 预处理(进行宏替换) 编译(生成汇编) 汇编(生成机器可识别代码) 链接(生成可执行文件或库文件&a…

LSTM的记忆能力实验

长短期记忆网络(Long Short-Term Memory Network,LSTM)是一种可以有效缓解长程依赖问题的循环神经网络.LSTM 的特点是引入了一个新的内部状态(Internal State) 和门控机制(Gating Mechanism)&am…

Kafka设计原理详解

Kafka核心总控制器 (Controller) 在Kafka集群中,通常会有一个或多个broker,其中一个会被选举为控制器 (Kafka Controller),其主要职责是管理整个集群中所有分区和副本的状态。具体来说: 当某个分区的leader副本出现故障时&#…

基于gradio快速部署自己的深度学习模型(目标检测、图像分类、语义分割模型)

gradio是一款基于python的算法快速部署工具,本博文主要介绍使用gradio部署目标检测、图像分类、语义分割模型的部署。相比于flask,使用gradio不需要自己构造前端代码,只需要将后端接口写好即可。此外,基于gradio实现的项目&#x…

数据仓库【2】:架构

数据仓库【2】:架构 1、架构图2、ETL流程2.1、ETL -- Extract-Transform-Load2.1.1、数据抽取(Extraction)2.1.2、数据转换(Transformation)2.1.3、数据加载( Loading ) 2.2、ETL工具2.2.1、结构…

浅谈数据仓库运营

一、背景 企业每天都会产生大量的数据,随着时间增长,数据会呈现几何增长,尤其在系统基建基础好的公司。好的数据仓库需要提前规划和好的运营,才能支持企业的发展,为企业提供数据分析基础。 二、目标 提高数据仓库存储…

【RocketMQ笔记02】安装RocketMQ可视化工具rocketmq-dashboard

这篇文章,主要介绍如何安装RocketMQ可视化工具rocketmq-dashboard。 目录 一、RocketMQ可视化界面 1.1、下载rocketmq-dashboard 1.2、修改配置文件 1.3、打包工程 1.4、启动rocketmq-dashboard 一、RocketMQ可视化界面 1.1、下载rocketmq-dashboard rocketm…

Jenkins 自动设置镜像版本号

使用Jenkins环境变量当作镜像版本号 这样version变量就是版本号,在镜像构建的过程中可以使用 docker build 之后,如果有自己的镜像库,肯定要docker push 一下 至于部署的步骤,一般需要stop并删除原有的容器.我这里用的是docker-compose。同样…

利用Jmeter做接口测试(功能测试)全流程分析!

利用Jmeter做接口测试怎么做呢?过程真的是超级简单。 明白了原理以后,把零碎的知识点填充进去就可以了。所以在学习的过程中,不管学什么,我一直都强调的是要循序渐进,和明白原理和逻辑。这篇文章就来介绍一下如何利用…

SpringCloud 整合 Canal+RabbitMQ+Redis 实现数据监听

1Canal介绍 Canal 指的是阿里巴巴开源的数据同步工具,用于数据库的实时增量数据订阅和消费。它可以针对 MySQL、MariaDB、Percona、阿里云RDS、Gtid模式下的异构数据同步等情况进行实时增量数据同步。 当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.…

学习笔记15——前端和http协议

学习笔记系列开头惯例发布一些寻亲消息,感谢关注! 链接:https://baobeihuijia.com/bbhj/ 关系 客户端:对连接访问到的前端代码进行解析和渲染,就是浏览器的内核服务器端:按照规则编写前端界面代码 解析标准…

GrayLog日志平台的基本使用-ssh接入Dashboards展示

这里使用的版本为graylog4.2.10 1、一键安装graylog4.2.10,解压zip包,执行脚本就行 链接:https://pan.baidu.com/s/11U7GpBZ1B7PXR8pyWVcHNw?pwdudln 提取码:udln 2、通过rsyslog采集系统日志,具体操作参考前面文…