Prometheus-Alertmanage钉钉实现告警

获取钉钉的webhook地址

1、注册企业钉钉

a、注册企业钉钉

浏览器打开钉钉注册页面 填入手机号码,填入获取到的验证码,点注册

填入企业资料并注册

注册成功后,扫描二维码下载钉钉,如下图:

b、添加机器人

管理后台

因为机器人添加,只能是钉钉电脑版(手机版钉钉不能添加机器人)。“测试钉钉报警“ 这个企业只有我一个人,所以我就把报警消息发到默认的 ”测试钉钉报警 全员群“ 里面。实际使用时,请创建个运维群--添加对应的人员进来。

电脑钉钉登陆成功后----点击左下角的。。。---然后再点管理后台,如下图:

选择管理的组织,点击之前创建的企业名

点通讯录--组织架构--添加子部门

调整部门添加接收告警员工

刷新后,把接收告警的员工调整到刚刚添加的部门

添加告警部门

设置群消息机器人

添加成功后,电脑钉钉消息窗口--会弹出一个测试告警的群--点击这个群---群设置--机器人

添加机器人

选择机器人类型--点自定义

机器人名字:随意

勾选ip:填入alertmanager外网ip

检查发送告警的服务器的ip地址

如果在自己电脑上测试钉钉告警,获取Alertmanager外网ip地址的方法为浏览器打开http://ip138.com 您的iP地址是:[xxx.xx.xx.xx]得到自己外网ip地址。

c、复制机器人webhook地址(触发地址)

复制加签(可以理解成一个秘钥)

添加告警主机地址段信息

复制webhook的地址,例如:

https://oapi.dingtalk.com/robot/send?access_token=2ac0682516aa8634f3410c08339d21f7effeec5ac180eec60082a3ca66661f

我们真实需要的是access_token=后面的,如下:

2ac0682516aa8634f3410c08339d21f7effeec5ac180eec60082a3ca66661f

复制加签备用

SEC85684de209427ba29a4d20541e86b62520068ffb3fef2dfca91af2485627c

-----------------------------------------------至此钉钉端设置完成---------------------------------------------

设置服务器端

创建prometheus-webhook-dingtalk 目录用于存放docker-compose文件以及config.yml配置文件

 创建目录


[root@node1-prome /zpf/k8s/prometheus/prometheus-webhook-dingtalk]$mkdir -p /zpf/k8s/prometheus/prometheus-webhook-dingtalk

创建config.yml配置文件

(这个配置文件是向钉钉发起webhook请求使用的) 


[root@node1-prome /zpf/k8s/prometheus/prometheus-webhook-dingtalk]$vim config.yml
#templates:
#  - /etc/prometheus-webhook-dingtalk/templates/default.tmpl

targets:
  webhook1:
    url: https://oapi.dingtalk.com/robot/send?access_token=aa06a9c58dfa03080c46cd243f3e81560e43d66da434d0a84ecbe2954bc58c
    secret: SEC85684de209427ba29a4d20541e86b62520068ffb3fef2dfca91af2485627c3
 #   message:
 #     text: '{{ template "default.content" . }}'


 创建dockercompose文件

用于单机启动prometheus-webhook-dingtalk

#创建dockercompose文件用于单机启动prometheus-webhook-dingtalk
[root@node1-prome /zpf/k8s/prometheus/prometheus-webhook-dingtalk]$cat docker-compose.yml
version: '3.3'
services:
  webhook:
    image: timonwong/prometheus-webhook-dingtalk:v2.1.0  #指定镜像文件
    container_name: prometheus-webhook-dingtalk  #容器名称
    restart: "always"  #失败后重启形式
    ports:
      - 8060:8060  #对外暴漏端口
    command:
      - '--config.file=/etc/prometheus-webhook-dingtalk/config.yml'  #指定配置文件
    volumes:
      - ./config.yml:/etc/prometheus-webhook-dingtalk/config.yml  #挂载宿主机配置文件
      - /etc/localtime:/etc/localtime:ro  #同步主机时间

启动docker-compose

#启动prometheus-webhook-dingtalk
[root@node1-prome /zpf/k8s/prometheus/prometheus-webhook-dingtalk]$docker-compose up -d
Creating network "prometheus-webhook-dingtalk_default" with the default driver
Creating prometheus-webhook-dingtalk ... done

检查容器进程

[root@node1-prome /zpf/k8s/prometheus/prometheus-webhook-dingtalk]$docker ps |grep 8060
12d9be31dc1a   timonwong/prometheus-webhook-dingtalk:v2.1.0                 "/bin/prometheus-web…"   About a minute ago   Up About a minute   0.0.0.0:8060->8060/tcp, :::8060->8060/tcp                                                     prometheus-webhook-dingtalk

检查端口

#检查端口
[root@node1-prome /zpf/k8s/prometheus/prometheus-webhook-dingtalk]$netstat -lntup|grep 8060
tcp        0      0 0.0.0.0:8060            0.0.0.0:*               LISTEN      99842/docker-proxy
tcp6       0      0 :::8060                 :::*                    LISTEN      99847/docker-proxy

检查日志

[root@node1-prome /zpf/k8s/prometheus/prometheus-webhook-dingtalk]$docker logs -f 12d9be31dc1a
ts=2024-01-05T07:03:48.953Z caller=main.go:59 level=info msg="Starting prometheus-webhook-dingtalk" version="(version=2.1.0, branch=HEAD, revision=8580d1395f59490682fb2798136266bdb3005ab4)"
ts=2024-01-05T07:03:48.953Z caller=main.go:60 level=info msg="Build context" (gogo1.18.1,userroot@177bd003ba4d,date20220421-08:19:05)=(MISSING)
ts=2024-01-05T07:03:48.953Z caller=coordinator.go:83 level=info component=configuration file=/etc/prometheus-webhook-dingtalk/config.yml msg="Loading configuration file"
ts=2024-01-05T07:03:48.953Z caller=coordinator.go:91 level=info component=configuration file=/etc/prometheus-webhook-dingtalk/config.yml msg="Completed loading of configuration file"
ts=2024-01-05T07:03:48.953Z caller=main.go:97 level=info component=configuration msg="Loading templates" templates=
ts=2024-01-05T07:03:48.954Z caller=main.go:113 component=configuration msg="Webhook urls for prometheus alertmanager" urls=http://localhost:8060/dingtalk/webhook1/send
ts=2024-01-05T07:03:48.954Z caller=web.go:208 level=info component=web msg="Start listening for connections" address=:8060

正常启动.

配置Alertmanage

配置Alertmanage调用timonwong/prometheus-webhook-dingtalk服务向钉钉发送报警信息

[root@node1-prome /zpf/k8s/prometheus/docker-prometheus/alertmanager]$cat config.yml
global:

route:
  group_by: ['warn']
  # 当收到告警的时候,等待group_wait配置的时间,看是否还有告警,如果有就一起发出去
  group_wait: 10s
  #  如果上次告警信息发送成功,此时又来了一个新的告警数据,则需要等待group_interval配置的时间才可以发送出去
  group_interval: 10s
  # 如果上次告警信息发送成功,且问题没有解决,则等待 repeat_interval配置的时间再次发送告警数据
  repeat_interval: 10m
  # 全局报警组,这个参数是必选的
  receiver: 'dingtalk'


receivers:
  - name: "dingtalk"  #报警组名称
    webhook_configs:
      - url: 'http://192.168.75.41:8060/dingtalk/webhook1/send'  这里配置的是timonwong/prometheus-webhook-dingtalk 暴漏的服务地址(就是刚刚启动的容器端口+路径地址)
        send_resolved: true  #貌似是当这个告警解除了会发送一个告警通知

inhibit_rules:  #告警抑制规则(这个有点绕详情后续整明白了再补上)
 - source_match:
     severity: 'critical'
   target_match:
     severity: 'warning'
   equal: ['alertname', 'dev', 'instance']

 reload一下Alertmanage,加载配置

[root@node1-prome /zpf/k8s/prometheus/docker-prometheus/prometheus]$curl -X POST http://localhost:9093/-/reload
测试

这里手动开启告警将原来的正常值修改成触发告警的值

prometheus配置文件

# 全局配置
global:
  scrape_interval:     15s # 将搜刮间隔设置为每15秒一次。默认是每1分钟一次。
  evaluation_interval: 15s # 每15秒评估一次规则。默认是每1分钟一次。

# Alertmanager 配置
alerting:
  alertmanagers:
  - static_configs:
    - targets: ['alertmanager:9093']

# 报警(触发器)配置
rule_files:
  - "alert.yml"
  - "rules/*.yml"

# 搜刮配置
scrape_configs:
  - job_name: 'prometheus'
    # 覆盖全局默认值,每15秒从该作业中刮取一次目标
    scrape_interval: 15s
    static_configs:
    - targets: ['192.168.75.41:9090']
  - job_name: 'alertmanager'
    # 覆盖全局默认值,每15秒从该作业中刮取一次目标
    scrape_interval: 15s
    static_configs:
    - targets: ['alertmanager:9093']

alertmanage配置文件:

groups:
- name: node-exporter
  rules:
  - alert: HostOutOfMemory
#    expr: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 < 10
    expr: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 > 10
    for: 1m
    labels:
      severity: warning
    annotations:
      summary: "主机内存不足,实例:{{ $labels.instance }}"
#      description: "内存可用率<10%,当前值:{{ $value }}"
      description: "内存可用率>10%,当前值:{{ $value }}"

reload一下Prometheus加载配置

[root@node1-prome /zpf/k8s/prometheus/docker-prometheus/prometheus]$curl -X POST http://localhost:9090/-/reload
查看prometheus监控数据报警情况

 查看alertmanage报警情况

查看钉钉机器人告警

至此钉钉告警配置成功

撒花撒花!!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

社科院与美国杜兰大学金融管理硕士项目——为金融领域人士照亮寒冬中的新机遇

随着全球金融市场的不断演变&#xff0c;金融领域的发展日新月异&#xff0c;充满了不确定性和挑战。特别是在当前的经济寒冬期&#xff0c;许多金融领域人士面临着巨大的压力和困境&#xff0c;需要寻找新的发展机遇和突破口。社科院与杜兰大学金融管理硕士项目如同明灯&#…

Java学习——设计模式——行为型模式1

文章目录 行为型模式模板方法策略模式命令模式责任链模式 行为型模式 行为型模式用于描述程序在运行时复杂的流程控制&#xff0c;即描述多个类或对象之间怎样相互协作共同完成单个对象无法单独完成的任务&#xff0c;涉及算法与对象间职责的分配。 行为型模式分为类行为模式和…

PHPStudy快速搭建网站并结合内网穿透远程访问本地站点

文章目录 [toc]使用工具1. 本地搭建web网站1.1 下载phpstudy后解压并安装1.2 打开默认站点&#xff0c;测试1.3 下载静态演示站点1.4 打开站点根目录1.5 复制演示站点到站网根目录1.6 在浏览器中&#xff0c;查看演示效果。 2. 将本地web网站发布到公网2.1 安装cpolar内网穿透2…

上门回收小程序开发的优势,顺应时代发展

当下&#xff0c;人们的生活水平不断提高&#xff0c;相应产生的闲置物品也在不断增加&#xff0c;回收行业因此得到了快速发展。 同时&#xff0c;在互联网的发展下&#xff0c;回收行业也慢慢转到了线上&#xff0c;人们在卖闲置物品时不需要到门店内&#xff0c;只需要在手…

x-cmd pkg | pdfcpu - 强大的 PDF 处理工具

目录 简介首次用户多功能支持性能表现安全的加密处理进一步阅读 简介 pdfcpu 是一个用 Go 编写的 PDF 处理库。同时它也提供 API 和 CLI。pdfcpu 提供了丰富的 PDF 操作功能&#xff0c;用户还能自己编写配置文件&#xff0c;用来管理和使用各种自定义字体并存储有效的默认配置…

【SpringCloud】设计原则之数据一致性与设计模式

一、设计原则之数据一致性 数据一致性分以下几种情况。 强一致性 当更新操作完成之后&#xff0c;任何多个后续进程或线程的访问都会返回最新的更新过的值。这种是对用户最友好的&#xff0c;就是用户上一次写什么&#xff0c;下一次就保证能读到什么。根据 CAP 理论&#…

代码随想录算法训练营第五十八天|739. 每日温度、496.下一个更大元素I

代码随想录 (programmercarl.com) 739. 每日温度 栈里面存放的是元素的下标&#xff0c;确保栈里面的下标对应的元素是单调递增的。 如果栈里面存放的是元素的话&#xff0c;就没有办法定位到下标值&#xff0c;无法计算出距离&#xff0c;所以直接就存入下标。 class Solut…

COCO Dataset Format

COCO (Common Objects in Context) dataset数据集是一个广泛应用于目标检测、语义分割的数据集&#xff0c;包含330K 图片数据 与 2.5 million 个目标实体。 1.数据集下载 !wget http://images.cocodataset.org/zips/train2017.zip -O coco_train2017.zip !wget http://image…

【JAVA】深入了解 Java 中的 DelayQueue

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 Java中的DelayQueue是一个强大的工具&#xff0c;常用于处理需要延迟执行的任务或具有过期时间的元素。通过实现Delayed接口&#x…

​三子棋(c语言)

前言&#xff1a; 三子棋是一种民间传统游戏&#xff0c;又叫九宫棋、圈圈叉叉棋、一条龙、井字棋等。游戏规则是双方对战&#xff0c;双方依次在9宫格棋盘上摆放棋子&#xff0c;率先将自己的三个棋子走成一条线就视为胜利。但因棋盘太小&#xff0c;三子棋在很多时候会出现和…

HCIP-端口隔离、arp代理、聚合vlan、QinQ

目录 一&#xff0c;端口隔离&#xff08;同vlan间同交换机下的端口隔离技术&#xff09; 端口隔离原理&#xff1a; 双向隔离配置 4&#xff0c;端口隔离特殊使用&#xff1a;单向隔离 6&#xff0c;ARP代理 6.1 路由式代理 6.2 VLAN内ARP代理 6.3 VLAN间ARP代理 6.3…

js逆向第8例:猿人学第1题-js 混淆-源码乱码

题目1:抓取所有(5页)机票的价格,并计算所有机票价格的平均值,填入答案。 老规矩打开控制台调试,出现debugger 过掉这个很简单了,右键点击“一律不在此处暂停” 这样就可以查看具体的网络请求如下: m是加密值,熟悉的大佬能发现这串加密字符非常像md5,|后面的就是时…

三分钟弄清数据传输方式

数据传输方式是指在计算机网络和通信系统中&#xff0c;数据如何在发送端和接收端之间进行传输和交换的方法和技术。不同的数据传输方式可以影响到数据传输的效率、安全性和可靠性&#xff0c;因此在实际应用中选择合适的数据传输方式至关重要。本文将从数据传输方式的基本概念…

初学编程,到底选Java还是C++?

初学编程&#xff0c;到底选Java还是C? 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#x…

Excel 读写

using System.Collections; using System.Collections.Generic; using OfficeOpenXml; using System.IO; using UnityEngine; using System.Text;public class ExcelTest : MonoBehaviour {void Start(){string _filePath Application.streamingAssetsPath "/学生信息.x…

yolov5目标检测神经网络——损失函数计算原理

前面已经写了4篇关于yolov5的文章&#xff0c;链接如下&#xff1a; 1、基于libtorch的yolov5目标检测网络实现——COCO数据集json标签文件解析 2、基于libtorch的yolov5目标检测网络实现(2)——网络结构实现 3、基于libtorch的yolov5目标检测网络实现(3)——Kmeans聚类获取anc…

AcWing 861. 二分图的最大匹配—匈牙利算法

题目链接:AcWing 861. 二分图的最大匹配 问题描述 分析 该题是一道典型的二分图匹配模板题&#xff0c;求解最大匹配数&#xff0c;可以用匈牙利算法来解决&#xff0c;下面举一个例子来说明匈牙利算法是如何运行的 以该图为例&#xff0c;其中 1可以匹配a,c 2可以匹配a,b 3…

面试算法90:环形房屋偷盗

题目 一条环形街道上有若干房屋。输入一个数组表示该条街道上的房屋内财产的数量。如果这条街道上相邻的两幢房屋被盗就会自动触发报警系统。请计算小偷在这条街道上最多能偷取的财产的数量。例如&#xff0c;街道上5家的财产用数组[2&#xff0c;3&#xff0c;4&#xff0c;5…

亚马逊店铺遇到账号申诉模版分享

1.表达诚意&#xff0c;先认错再说&#xff1a;我知道&#xff0c;最近我们在Amazon.com上作为卖家的表现已经低于亚马逊和我们自己的质量标准。 2.清楚分明的格式&#xff1a;我们库存管理的混乱导致了延迟发货&#xff0c;更糟糕的是&#xff0c;物品无法使用。当延迟发货和…

T527 Android 13 编译步骤

步骤1&#xff1a; cd longan./build.sh config (0 2 1) 选择 Android 平台&#xff1a; 步骤2&#xff1a;选择IC为t527&#xff1a; 步骤3&#xff1a;板子类型选为demo_car&#xff1a; 步骤4&#xff1a;选择 flash&#xff0c;默认选择 default 则可&#xff1a; 步骤5&…