当前位置: 首页 > news >正文

Prometheus+Altermanager实现钉钉告警

Prometheus+Altermanager实现钉钉告警

Prometheus和Altermanager的安装这里就不赘述了,我之前的文章有写到
不记得的小伙伴可以去看看Prometheus和Altermanager的安装使用

直接开始上操作
下载钉钉并打开,先创建一个接收告警信息的钉钉群
在这里插入图片描述
添加一个自定义的钉钉机器人,为了方便测试,都默认就好了,不用选其它配置
将webhook复制下来,等下要通过这个webhook来发送钉钉消息
在这里插入图片描述

在Altermanager告警机器下载钉钉告警插件地址

wget https://github.com/timonwong/prometheus-webhook-dingtalk/releases/download/v2.1.0/prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz

我这里选择解压到/usr/local目录下

tar -xvf prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz -C /usr/local

修改目录名,显得短一点

mv prometheus-webhook-dingtalk-2.1.0.linux-amd64 prometheus-webhook-dingtalk

然后进入钉钉告警插件目录,将模板配置文件复制一份

cd /usr/local/prometheus-webhook-dingtalk
cp config.example.yml config.yml

修改配置文件,这里主要是配置告警方式,其它没用的可以注释掉,将刚才复制webhook替换成自己的

vim config.yml

在这里插入图片描述

然后修改告警模板,这个模板可以根据自己的需求进行设置

vim contrib/dingtalk.tmpl
{{ define "__subject" }}
[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}]
{{ end }}{{ define "__alert_list" }}{{ range . }}
---
{{ if .Labels.owner }}@{{ .Labels.owner }}{{ end }}**告警名称**: {{ index .Annotations "title" }} **告警级别**: {{ .Labels.severity }} **告警主机**: {{ .Labels.instance }} **告警信息**: {{ index .Annotations "description" }}**告警时间**: {{ dateInZone "2006.01.02 15:04:05" (.StartsAt) "Asia/Shanghai" }}
{{ end }}{{ end }}{{ define "__resolved_list" }}{{ range . }}
---
{{ if .Labels.owner }}@{{ .Labels.owner }}{{ end }}**告警名称**: {{ index .Annotations "title" }}**告警级别**: {{ .Labels.severity }}**告警主机**: {{ .Labels.instance }}**告警信息**: {{ index .Annotations "description" }}**告警时间**: {{ dateInZone "2006.01.02 15:04:05" (.StartsAt) "Asia/Shanghai" }}**恢复时间**: {{ dateInZone "2006.01.02 15:04:05" (.EndsAt) "Asia/Shanghai" }}
{{ end }}{{ end }}{{ define "default.title" }}
{{ template "__subject" . }}
{{ end }}{{ define "default.content" }}
{{ if gt (len .Alerts.Firing) 0 }}
**====侦测到{{ .Alerts.Firing | len  }}个故障====**
{{ template "__alert_list" .Alerts.Firing }}
---
{{ end }}{{ if gt (len .Alerts.Resolved) 0 }}
**====恢复{{ .Alerts.Resolved | len  }}个故障====**
{{ template "__resolved_list" .Alerts.Resolved }}
{{ end }}
{{ end }}{{ define "ding.link.title" }}{{ template "default.title" . }}{{ end }}
{{ define "ding.link.content" }}{{ template "default.content" . }}{{ end }}
{{ template "default.title" . }}
{{ template "default.content" . }}

模板设置好后就可以启动了,由于测试我就直接启动了
想保持进程一直运行可以用nohup或者写成服务,根据自己的需要选择

./prometheus-webhook-dingtalk --config.file=config.example.yml >dingtalk.log 2>&1 &

可以执行命令查看端口启动情况,默认使用 8060 端口

netstat -ntlp|grep 8060

接下来到alertmanager的配置

修改alertmanager配置文件,添加钉钉告警方式
大家根据自己alertmanager安装的目录来,我自己是安装在/opt目录下的

vim /opt/alertmanager-0.26.0/alertmanager.yml

在这里插入图片描述

修改好配置以后重新加载alertmanager的配置

curl -lv -X POST http://192.168.121.161:9093/-/reload

到这里配置就结束了,然后现在去实验检测结果

将Prometheus监控的服务器关闭一台,模拟服务器挂掉的情况
在这里插入图片描述

可以看到Prometheus已经发送告警信息

在这里插入图片描述

然后查看alertmanager的告警接收情况,可以看到告警已经产生

在这里插入图片描述
可以看到钉钉群也已经接收到告警信息
在这里插入图片描述
到这里Prometheus监控之钉钉告警就完成了。

相关文章:

  • 聚类的外部指标(Purity, ARI, NMI, ACC) 和内部指标(NCC,Entropy,Compactness,Silhouette Index)
  • 变压器绕线完成之后要做的事
  • Jenkins流水线pipeline--基于上一章的工作流程
  • 人工智能安全风险分析及应对策略
  • 燃烧截稿倒计时,NDSS‘25大会即将召开,你的论文准备好了吗?
  • elementui Menu 二级菜单 min-width修改无效
  • NFS服务器
  • 水电表自动抄表系统
  • 【UE5教程】使用蓝图显示鼠标
  • ARCGIS 几种SHP融合、拼接等方法
  • 03-3.2.3 队列的链式存储的实现
  • 【人工智能】流行且重要的智能算法整理
  • TP8 定时任务yzh52521/http-crontab 教程
  • 前端 CSS 经典:水波进度样式
  • Windows取证分析 | 如何最大程度提升分析效率
  • 分享的文章《人生如棋》
  • @jsonView过滤属性
  • git 常用命令
  • gulp 教程
  • Java到底能干嘛?
  • laravel5.5 视图共享数据
  • leetcode98. Validate Binary Search Tree
  • MySQL几个简单SQL的优化
  • PhantomJS 安装
  • rc-form之最单纯情况
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 规范化安全开发 KOA 手脚架
  • 算法系列——算法入门之递归分而治之思想的实现
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 为什么要用IPython/Jupyter?
  • 异步
  • 译自由幺半群
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 阿里云ACE认证之理解CDN技术
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #define用法
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (zhuan) 一些RL的文献(及笔记)
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (五)MySQL的备份及恢复
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .NET6实现破解Modbus poll点表配置文件
  • .sys文件乱码_python vscode输出乱码
  • 。。。。。
  • /var/lib/dpkg/lock 锁定问题
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • [10] CUDA程序性能的提升 与 流
  • [android] 手机卫士黑名单功能(ListView优化)