Prometheus-Alertmanage钉钉实现告警

news2024/11/15 18:02:37

获取钉钉的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报警情况

查看钉钉机器人告警

至此钉钉告警配置成功

撒花撒花!!

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

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

相关文章

L1-084:拯救外星人

你的外星人朋友不认得地球上的加减乘除符号&#xff0c;但是会算阶乘 —— 正整数 N 的阶乘记为 “N!”&#xff0c;是从 1 到 N 的连乘积。所以当他不知道“57”等于多少时&#xff0c;如果你告诉他等于“12!”&#xff0c;他就写出了“479001600”这个答案。 本题就请你写程序…

【信息论与编码】习题-填空题

目录 填空题1.克劳夫特不等式是判断&#xff08; &#xff09;的充要条件。2.无失真信源编码的中心任务是编码后的信息率压缩接近到&#xff08;&#xff09;限失真压缩中心任务是在给定的失真度条件下&#xff0c;信息率压缩接近到&#xff08; &#xff09;。3.常用的检纠错方…

小白综述:深度学习 OCR 图片文字识别

文章目录 1. OCR 算法流程1.1 传统 OCR 方法1.2 深度学习 OCR 方法1.2.1 two-stage方法&#xff1a;文字检测识别1.2.2 端到端方法 2. 文本检测算法3. 文本识别算法3.1 基于分割的单字符识别方法3.2 基于序列标注的文本行识别方法 1. OCR 算法流程 OCR (Optical Character Rec…

微服务-sentinel-基本案例,持久化

sentinel 功能 限流 限流文档 直接拒绝&#xff1a;触发阀值直接抛弃。冷启动&#xff1a;在一段时间内针对突发流量缓慢增长处理数量。 3&#xff09;匀速器&#xff1a;请求以均匀的速度通过。 降级降级文档 1&#xff09;RT 统计时间内&#xff0c;大于预设请求数量&…

数据结构入门到入土——链表(1)

目录 一&#xff0c;顺序表表/ArrayList的缺陷 二&#xff0c;链表 三&#xff0c;链表的实现 四&#xff0c;与链表有关的题目练习&#xff08;1&#xff09; 1.删除链表中等于给定值 val 的所有节点 2.反转一个单链表 3.给定一个带有头结点 head 的非空单链表&#xf…

全新的C++语言

一、概述 C 的最初目标就是成为 “更好的 C”&#xff0c;因此新的标准首先要对基本的底层编程进行强化&#xff0c;能够反映当前计算机软硬件系统的最新发展和变化&#xff08;例如多线程&#xff09;。另一方面&#xff0c;C对多线程范式的支持增加了语言的复杂度&#xff0…

专业实习day3、4(路由器做内网访问公网)

专业实习 代码 display ip interface brief 显示当前设备下所有接口IP undo IP地址支持覆盖&#xff0c;但是正常的命令不能覆盖必须undo&#xff08;删除&#xff09;掉 un in en 在做配置的过程中&#xff0c;设备系统一般都会出现一些提示或者告警之类的东西&#xff0c;从…

书生·浦语大模型全链路开源体系 学习笔记 第一课

背景 大模型是发展人工通用人工智能的一个重要途径&#xff0c;能够解决多种任务和多种模态&#xff0c;展示了一个更面向更高阶的智能的潜在途径。大模型的发展历程是从专用模型到通用模型的过程&#xff0c;从语音识别、图像识别、人脸识别等专用模型&#xff0c;到通用的大…

高级分布式系统-第3讲 网络与网络互联

万维网的诞生 1957年10月4日&#xff0c; 苏联发射了人类第一颗人造卫星—斯普特尼克一号 美国政府震惊不已。 他们认为&#xff0c; 在日趋激烈的冷战对抗中&#xff0c; 自己已经全面落后于苏联。 为了扭转这一局面&#xff0c; 美国国防部很快于1958 年 2 月组建了一个神秘…

现代 C++ 小利器:参数绑定包装器堪称「Lambda 小平替」

以下内容为本人的学习笔记&#xff0c;如需要转载&#xff0c;请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/gt_zxMwhu8UixzCMF73Dng C 原生支持函数输入参数的默认值&#xff0c;但是有些业务场景下对原有设定的默认值不满意&#xff0c;那么可不可以临时…

【已解决】js定义对象属性是.如何访问

当变量没有length属性的时候&#xff0c;可能是个对象变量&#xff0c;当有键值对的时候就可能是个对象&#xff0c;读者都知道的是&#xff0c;用typeof(变量)可以查看属性&#xff0c;今天本文解决的问题是如果js定义对象中属性是"点"如何访问 问题再现 var a {…

java实验室预约管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java servlet 实验室预约管理系统是一套完善的java web信息管理系统 系统采用serlvetdaobean&#xff08;mvc模式)&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数 据库&#xff0c;系统主要采用B/S模式开发。开发环境为T…

【数据采集与预处理】流数据采集工具Flume

一、Flume简介 数据流 &#xff1a;数据流通常被视为一个随时间延续而无限增长的动态数据集合&#xff0c;是一组顺序、大量、快速、连续到达的数据序列。通过对流数据处理&#xff0c;可以进行卫星云图监测、股市走向分析、网络攻击判断、传感器实时信号分析。 &#xff08;…

【Proteus仿真】【Arduino单片机】太阳能追光系统设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使用LCD1602液晶、光敏传感器、ADC模块、按键模块、28BYJ48步进电机驱动模块、直流电机模块等。 主要功能&#xff1a; 系统运行后&#xff0c;L…

Jupyter Lab | 在指定文件夹的 jupyter 中使用 conda 虚拟环境

Hi&#xff0c;大家好&#xff0c;我是源于花海。本文主要了解如何在指定文件夹的 jupyter 中使用 conda 虚拟环境&#xff0c;即在 conda 里面创建虚拟环境、将虚拟环境添加至 jupyter lab/notebook、安装软件包。 目录 一、创建虚拟环境 二、激活并进入虚拟环境 三、安装 …

我们公司内应届生身上的6个共性问题

如题目&#xff0c;本文主要是根据我们公司内真实的应届生身上共同的问题&#xff0c;总结而来。 1. 一天会做很多工作&#xff1a;会跟很多人对接&#xff0c;会一会忙这个一会忙哪个 现象&#xff1a; 说实话&#xff0c;这种情况&#xff0c;我看着都替她着急。自己正在解…

IPD(集成产品开发)

一、简介IPD IPD是指应用于集成产品开发&#xff08;Integrated Product Development&#xff09;的一套流程。 IPD流程可分为很多小的流程&#xff0c;这些流程确保企业做正确的事&#xff0c;且正确地做事。 IPD核心的流程之一是PDP&#xff08;Product Development Proce…

用C语言实现完全平方数计算【一题一策】第三期

题目&#xff1a;一个整数&#xff0c;它加上100后是一个完全平方数&#xff0c;再加上 168 又是一个完全平方数&#xff0c;请问该数是多少&#xff1f; 一、题目分析 首先假设该数为x&#xff0c;则x100y?&#xff0c;y为完全平方数。 然后加上168又是一个完全平方数&…

某金属加工公司的核心人才激励体系搭建项目纪实

【客户行业】金属加工行业 【问题类型】薪酬体系/激励体系 【客户背景】 某大型金属加工企业位于河北地区&#xff0c;成立于2000年&#xff0c;隶属于某大型有色金属集团&#xff0c;是一家集科研、开发、生产、销售于一体的国有企业&#xff0c;人员达到1000人。经过多年…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)主线程给子线程添加任务以及如何处理该任务

在看此篇文章&#xff0c;建议先看我的往期文章&#xff1a; 基于多反应堆的高并发服务器【C/C/Reactor】&#xff08;中&#xff09;在EventLoop的任务队列中添加新任务-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/135346492?spm1001.2014.3001.5501一…