Prometheus-v2.45.0 + 钉钉告警

news2024/9/20 10:53:32

目录

1. 创建一个钉钉内部群

2. 添加自定义机器人 

3. 配置钉钉发送告警服务

4. 配置alertmanager,接入dingding

5. 配置告警消息发送模板

6. 修改配置规则文件 


续接上篇:https://blog.csdn.net/Lzcsfg/article/details/140851688

相关软件包链接:https://pan.baidu.com/s/1b3AzJBNtIt1PfjNi1eE7fg?pwd=jcj8 
提取码:jcj8 
 

1. 创建一个钉钉内部群

2. 添加自定义机器人 

3. 配置钉钉发送告警服务

传入软件包prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz

[root@localhost ~]# cd /opt

解压软件包

[root@localhost opt]# tar xf prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz

 将目录名字改成短点的

[root@localhost opt]# mv prometheus-webhook-dingtalk-2.1.0.linux-amd64 webhook-dingtalk
[root@localhost opt]# cd webhook-dingtalk/

 拷贝配置文件并重命名 

[root@localhost webhook-dingtalk]# cp config.example.yml config.yml

编辑配置文件

[root@localhost webhook-dingtalk]# vim config.yml
# 配置块,用于定义钉钉机器人的Webhook
targets:
  # 第一个Webhook配置,用于发送消息,但没有启用@提醒功能
  webhook1:
    url: https://oapi.dingtalk.com/robot/send?access_token=2a6adaa1f19ef7ac61e57410c9f2f6c9b00c417842a766d99765f644f80d48d0
    secret: SEC85d2833b679817a49b1197aa0f5699e6c0e000eb5cb90e74da756c32b48eee75

  # 第二个Webhook配置,用于发送消息,并启用所有用户的@提醒功能
  another_webhook_mention_all:
    url: https://oapi.dingtalk.com/robot/send?access_token=2a6adaa1f19ef7ac61e57410c9f2f6c9b00c417842a766d99765f644f80d48d0
    mention:
      all: true  # 启用所有用户的@提醒

  # 第三个Webhook配置,用于发送消息,并指定需要@提醒的手机号码
  webhook_mention_users:
    url: https://oapi.dingtalk.com/robot/send?access_token=2a6adaa1f19ef7ac61e57410c9f2f6c9b00c417842a766d99765f644f80d48d0
    mention:
      mobiles: ['130xxxxx151']  # 指定需要@提醒的手机号码



启动

[root@localhost webhook-dingtalk]# ll
total 18744
-rw-r--r-- 1 3434 3434    11358 Apr 21  2022 LICENSE
-rw-r--r-- 1 3434 3434     1299 Apr 21  2022 config.example.yml
-rw-r--r-- 1 root root      265 Aug  2 02:32 config.yml
drwxr-xr-x 4 3434 3434       34 Apr 21  2022 contrib
-rwxr-xr-x 1 3434 3434 19172733 Apr 21  2022 prometheus-webhook-dingtalk

[root@localhost webhook-dingtalk]# ./prometheus-webhook-dingtalk --config.file="config.yml"
# 后台启动命令使用 nohup ./prometheus-webhook-dingtalk --config.file="config.yml" &


# 会监听8060端口
[root@localhost webhook-dingtalk]# ss -tnlp
State         Recv-Q         Send-Q                 Local Address:Port                 Peer Address:Port        Process                                         
LISTEN        0              128                          0.0.0.0:22                        0.0.0.0:*            users:(("sshd",pid=819,fd=3))                  
LISTEN        0              128                             [::]:22                           [::]:*            users:(("sshd",pid=819,fd=4))                  
LISTEN        0              4096                               *:3000                            *:*            users:(("grafana",pid=6705,fd=10))             
LISTEN        0              4096                               *:9100                            *:*            users:(("node_exporter",pid=6303,fd=3))        
LISTEN        0              4096                               *:9093                            *:*            users:(("alertmanager",pid=6835,fd=8))         
LISTEN        0              4096                               *:9094                            *:*            users:(("alertmanager",pid=6835,fd=3))         
LISTEN        0              4096                               *:9090                            *:*            users:(("prometheus",pid=6873,fd=7))           
LISTEN        0              4096                               *:8060                            *:*            users:(("prometheus-webh",pid=6996,fd=3)) 

4. 配置alertmanager,接入dingding

[root@localhost webhook-dingtalk]# vim /opt/alertmanager/alertmanager.yml
receivers:
  - name: 'dingding'  # 接收器的名字,定义为 'dingding'
    webhook_configs:
      - url: 'http://192.168.226.29:8060/dingtalk/webhook1/send'
        send_resolved: true  # 当报警被解决时,也会发送通知

route:
  receiver: 'dingding'  # 默认的接收器是 'dingding'
  group_by: ['alertname']  # 报警分组的依据字段,这里按 'alertname' 分组
  group_wait: 30s  # 第一个报警的等待时间,在此期间新的报警会被加入到同一组
  group_interval: 1m  # 每组之间的最小等待时间
  repeat_interval: 5m  # 重复报警发送的时间间隔

templates:
  - /opt/alertmanager/tmpl/*.tmpl  # 指定模板文件的路径,用于格式化报警通知的内容

inhibit_rules:
  - source_match:
      severity: 'critical'  # 源报警的匹配条件:严重性为 'critical'
    target_match:
      severity: 'warning'  # 目标报警的匹配条件:严重性为 'warning'
    equal: ['alertname', 'dev', 'instance']  # 抑制规则生效的条件,只有当 'alertname'、'dev' 和 'instance' 三个字段相同时,规则才会生效

重启alertmanager

[root@localhost webhook-dingtalk]# cd /opt/alertmanager/
[root@localhost alertmanager]# nohup ./alertmanager &

5. 配置告警消息发送模板

[root@localhost alertmanager]# vim /opt/alertmanager/tmpl/email.tmpl
{{ define "__subject" }}[告警] {{ .Status | toUpper }}: {{ .CommonLabels.alertname }}{{ end }}

{{ define "__description" }}
告警名称: {{ .CommonLabels.alertname }}
主机: {{ .CommonLabels.instance }}
告警级别: {{ .CommonLabels.severity }}
开始时间: {{ .StartsAt }}
结束时间: {{ .EndsAt }}
描述: {{ .CommonAnnotations.description }}
{{ end }}

{{ define "__message" }}
{
  "msgtype": "markdown",
  "markdown": {
    "title": "{{ template "__subject" . }}",
    "text": "## {{ template "__subject" . }}\n\n{{ template "__description" . }}"
  }
}
{{ end }}

{{ define "dingtalk.default.message" }}{{ template "__message" . }}{{ end }}

6. 修改配置规则文件 

 在prometheus中的prometheus.yml指定了规则文件位置

[root@localhost alertmanager]# cd /opt/prometheus
[root@localhost prometheus]# vim ./rules/disk.yml
groups:
  - name: 'disk-usage-alerts'
    # 这是告警组的名称
    rules:
      - alert: DiskSpaceUsageHigh
        # 这是告警规则的名称
        expr: 100 - (node_filesystem_avail_bytes / node_filesystem_size_bytes * 100) > 10
        # 告警表达式检查磁盘使用率是否超过10%
        for: 30s
        # 如果条件持续30秒,则触发告警
        labels:
          severity: 'critical'
          # 为告警添加标签,指定严重性为“关键”
        annotations:
          summary: '磁盘使用率过高: {{ $labels.instance }}'
          # 摘要注释,描述告警的内容,包括实例名称
          description: '磁盘使用率超过阈值: {{ $value }}%'
          # 描述注释,给出具体的磁盘使用率

重启prometheus 

[root@localhost alertmanager]# prometheus restart

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sqli-labs环境搭建以及部分sql注入

sqli-labs靶场搭建: 安装phpstudy并创建网页 初始化靶场 实现sql注入: less-1(根据数据库的命令在超链接后输入?id1) less-2(如法炮制?id2) less-3(闭合单引号和括号) less-9&am…

新增AI Copilot,DataEase开源数据可视化分析工具v2.9.0发布

2024年8月5日,人人可用的开源数据可视化分析工具DataEase正式发布v2.9.0版本。 这一版本的功能变动包括:导航栏新增Copilot入口,借助AI技术,通过自然语言交互实现即问即答,让数据分析更加直观和便捷;图表方…

vxe-pulldown下拉容器的使用,覆盖样式z-index来解决在Modal中初次显示在Modal的下层的问题。

1、官网的例子&#xff1a; 可以说这个vxe-pulldown用起来还是挺方便的。 2、代码&#xff1a; <template><div><vxe-pulldown ref"pulldownRef" popup-class-name"my-dropdown4" transfer><template #header><div class&quo…

FFMPEG 序列帧图片合成视频

需求&#xff1a; 将多张.png图片合成为视频 注意: 1需要Windows电脑 2将图片重命名 下载EXE 官网 https://ffmpeg.org/download.html#build-windows 解压后长这样 将图片和exe放在同一目录下 文件中找个空白地&#xff0c;Shift右键 进入PowerShell 输入命令: ./ffm…

Chapter 27 封装

欢迎大家订阅【Python从入门到精通】专栏&#xff0c;一起探索Python的无限可能&#xff01; 文章目录 前言一、基本概念二、私有成员 前言 在面向对象编程&#xff08;OOP&#xff09;中&#xff0c;封装是一个重要的概念&#xff0c;旨在保护数据并限制对对象内部状态的直接…

48天笔试训练错题——day41

目录 选择题 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 编程题 1. 五子棋 2. Emacs计算器 选择题 1. 当发生拥塞时&#xff0c;TCP 有个机制&#xff0c;会从慢开始进行发送。 1. 把慢开始的门限值设为当前窗口的一半&#xff0c;即 ssthresh 1/2 * 8 4 KB 2. 把拥塞窗…

【TS】declare 全局声明方式

declare关键字 declare是描述TS文件之外信息的一种机制&#xff0c;它的作用是告诉TS某个类型或变量已经存在&#xff0c;我们可以使用它声明全局变量、函数、类、接口、类型别名、类的属性或方法以及后面会介绍的模块与命名空间。 declare关键字用来告诉编译器&#xff0c;某…

【C语言】关于字符串函数的使用及模拟实现(2)

一、字符串的复制 1.1 库函数strcpy的使用 在函数strcpy中&#xff0c;函数的返回类型为char* &#xff0c;参数部分首先是指向目标地址的指针&#xff0c;其次是指向源地址的指针(由于源地址中内容不受影响&#xff0c;则可以使用const修饰)&#xff0c;函数所需的头文件为st…

51单片机—串口

一、 串口基本认知 串行接口简称串口&#xff0c;也称串行通信接口或串行通讯接口&#xff08;通常指COM接口&#xff09;&#xff0c;是采用串行通信方 式的扩展接口。串行接口&#xff08;Serial Interface&#xff09;是指数据一位一位地顺序传送。其特点是通信线路简 单&a…

#70结构体案例1(导师,学生,成绩)

效果&#xff1a; 代码&#xff1a; #include <iostream> #include <string> using namespace std;#include "random"int get_random_num(int min,int max) {random_device rd;mt19937 gen(rd());uniform_int_distribution<> dis(min,max);int ra…

C语言实现常见O(N^2)的排序算法

目录 1.排序的概念及常见排序算法 1.1排序的概念 1.2常见的排序算法 2.常见O(N^2)排序算法的实现 2.1插入排序 2.1.1基本思想 2.1.2直接插入排序 2.1.2.1直接插入排序的特性 2.1.2.2直接插入排序算法实现 2.2选择排序 2.2.1基本思想 2.2.2直接选择排…

【电脑基础硬件】磁盘阵列

磁盘阵列 一、磁盘阵列概述作用&#xff1a;RAID级别&#xff1a; 二、Raid0Raid1 一、磁盘阵列概述 磁盘阵列&#xff08;Disk Array&#xff09;是一种将多个独立的磁盘驱动器组合起来形成一个逻辑单元的技术&#xff0c;目的是为了提高存储系统的性能、可靠性和可用性。磁盘…

关于儿童编程语言

青少年通常会通过Scratch或Python开始学习编程。在这两种语言中&#xff0c;代码的编写&#xff08;或者在Scratch中是构建&#xff09;方式类似于英语&#xff0c;这使得初学者更容易学习。Scratch的一个重要卖点是对视觉和运动感知学习者非常友好。这些代码块按颜色编码&…

亚信安全获国家信息安全服务(风险评估和安全工程类)二级资质

近日&#xff0c;亚信安全荣获由中国信息安全测评中心颁发的《国家信息安全测评信息安全服务资质证书—风险评估二级》和《国家信息安全测评信息安全服务资质证书—安全工程类二级》资质。亚信安全凭借综合实力和优秀的技术能力&#xff0c;成为为数不多的获得国家信息安全服务…

PXE无人值守

PXE介绍 预启动执行环境&#xff08;Preboot eXecution Environment&#xff0c;PXE&#xff09;也被称为预执行环境&#xff0c;提供了一种使用网络接口&#xff08;Network Interface&#xff09;启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备&#…

支持跨设备操作,自带横向霍尔感应滚轮,雷柏MT760系列鼠标上手

日常工作中&#xff0c;确实很需要一只专为商务办公设计的鼠标&#xff0c;这类鼠标通常会有更低调的外观&#xff0c;同时具备静音按键之类的设计&#xff0c;能够为工作带来更多的方便。我最近上手了雷柏MT760和MT760 Mini。这两款鼠标虽然尺寸不同&#xff0c;但共享了相同的…

12.upload-labs靶场通关详解(11~17)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1、Pass11&#xff08;白名单&#xff1a;get00截断&#xff09;2、Pass12&#xff08;白名单&#xff1a;post00截断&#xff09;3、Pass13&#xff08;图片马绕过…

封装组件之使用vue3封装input框并显示联想数据功能

新建Input.vue 定义input框及相关事件 <inputtype"text"v-model"query"input"onInput"blur"hideSuggestions"focus"onInput"/> input输入事件、blur失去焦点、focus获取焦点 //当输入内容时才显示ul内容 const onI…

优化if-else的11种方案

优雅永不过时&#xff01; 1. 使用早返回&#xff08;Early Return&#xff09;&#xff1a;尽可能早地返回&#xff0c;避免嵌套的if-else。 优化前&#xff1a; public class NoEarlyReturnExample {public boolean hasPositiveNumber(int[] numbers) {boolean foundPositi…

自然语言常见面试题及答案(21~40)

Reply&#xff1a;面试题 获取资料下载 文章目录 21. 介绍一下信息抽取在自然语言处理中的重要性和实现方式。22. 谈谈你对预训练语言模型&#xff08;如 BERT、GPT 等&#xff09;的认识和应用经验。23. 简述一下情感分析的流程和方法。24. 对于机器翻译任务&#xff0c;你了…