Prometheus-v2.45.0 + 钉钉告警

目录

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

【使用教程】 一、环境配置 1、建议下载anaconda和pycharm 在anaconda中配置好环境,然后直接导入到pycharm中,在pycharm中运行项目 anaconda和pycharm安装及环境配置参考网上博客,有很多博主介绍 2、在anacodna中安装requirements.txt中的软件包 命令为:pip install -r requirements.txt 或者改成清华源后再执行以上命令,这样安装要快一些 软件包都安装成功后才算成功 3、安装好软件包后,把anaconda中对应的python导入到pycharm中即可(不难,参考网上博客) 二、环境配置好后,开始训练(也可以训练自己数据集) 1、数据集准备 需要准备yolo格式的目标检测数据集,如果不清楚yolo数据集格式,或者有其他数据训练需求,请看博主yolo格式各种数据集集合链接:https://blog.csdn.net/DeepLearning_/article/details/127276492 里面涵盖了上百种yolo数据集,且在不断更新,基本都是实际项目使用。来自于网上收集、实际场景采集制作等,自己使用labelimg标注工具标注的。数据集质量绝对有保证! 本项目所使用的数据集,见csdn该资源下载页面中的介绍栏,里面有对应的下载链接,下载后可直接使用。 2、数据准备好,开始修改配置文件 参考代码中data文件夹下的banana_ripe.yaml,可以自己新建一个不同名称的yaml文件 train:训练集的图片路径 val:验证集的图片路径 names: 0: very-ripe 类别1 1: immature 类别2 2: mid-ripe 类别3 格式按照banana_ripe.yaml照葫芦画瓢就行,不需要过多参考网上的 3、修改train_dual.py中的配置参数,开始训练模型 方式一: 修改点: a.--weights参数,填入'yolov9-s.pt',博主训练的是yolov9-s,根据自己需求可自定义 b.--cfg参数,填入 models/detect/yolov9-c.yaml c.--data参数,填入data/banana_ripe.yaml,可自定义自己的yaml路径 d.--hyp参数,填入hyp.scratch-high.yaml e.--epochs参数,填入100或者200都行,根据自己的数据集可改 f.--batch-size参数,根据自己的电脑性能(显存大小)自定义修改 g.--device参数,一张显卡的话,就填0。没显卡,使用cpu训练,就填cpu h.--close-mosaic参数,填入15 以上修改好,直接pycharm中运行train_dual.py开始训练 方式二: 命令行方式,在pycharm中的终端窗口输入如下命令,可根据自己情况修改参数 官方示例:python train_dual.py --workers 8 --device 0 --batch 16 --data data/coco.yaml --img 640 --cfg models/detect/yolov9-c.yaml --weights '' --name yolov9-c --hyp hyp.scratch-high.yaml --min-items 0 --epochs 500 --close-mosaic 15 训练完会在runs/train文件下生成对应的训练文件及模型,后续测试可以拿来用。 三、测试 1、训练完,测试 修改detect_dual.py中的参数 --weights,改成上面训练得到的best.pt对应的路径 --source,需要测试的数据图片存放的位置,代码中的test_imgs --conf-thres,置信度阈值,自定义修改 --iou-thres,iou阈值,自定义修改 其他默认即可 pycharm中运行detect_dual.py 在runs/detect文件夹下存放检测结果图片或者视频 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。
本项目是一个基于SSM(Spring+SpringMVC+MyBatis)框架和Vue.js前端技术的二手手机回收平台系统。该系统旨在为二手手机回收提供一个便捷、高效的在线交易平台,同时确保交易的安全性和透明度。 在后台管理方面,系统提供了用户管理、商品管理、订单管理以及数据统计等功能。通过这些功能,管理员能够轻松地管理平台上的用户信息、审核商品发布、跟踪订单状态,并对平台的运营数据进行详细的分析。 在前端展示上,系统采用了Vue.js框架,实现了响应式的用户界面设计。用户可以通过直观的界面浏览商品、发布自己的二手手机信息、下订单以及查看交易记录。此外,系统还提供了搜索和筛选功能,帮助用户快速找到符合自己需求的商品。 技术实现上,后端使用了Java语言,结合Spring框架进行依赖注入和事务管理,SpringMVC负责处理Web请求,而MyBatis则用于数据库操作。前端则使用Vue.js进行页面渲染和交互逻辑处理,搭配Axios进行异步数据请求。 本项目的数据库设计充分考虑了数据的完整性和安全性,采用了关系型数据库MySQL进行数据存储。数据库表结构包括用户表、商品表、订单表等,确保了系统的高效运行和数据的一致性。 对于正在进行毕业设计的学生或需要项目实战练习的Java学习者来说,本项目提供了一个完整的技术栈和业务逻辑实现,可以作为学习和实践的良好参考。
Prometheus Operator 是一个用于 Kubernetes 集群中部署、管理和扩展 Prometheus 的工具,它允许你通过 YAML 格式的配置文件来管理 Prometheus 和 AlertManager。若要在 Prometeus-Operator 中设置钉钉告警,你需要配置 Alertmanager 的外部发送器 (external senders),这里使用的是 Prometheus 的 webhook 函数。 以下是基本步骤: 1. **创建告警通知规则**: 在 `prometheus-operator` 库中,你需要定义一个 `AlertmanagerConfig` 资源,其中包含一个 webhook 的定义。例如,你可以创建一个名为 `alertmanager-prom-dingtalk.yml` 的文件: ```yaml apiVersion: monitoring.coreos.com/v1 kind: AlertmanagerConfig metadata: name: "dingtalk" spec: receivers: - name: dingtalk-receiver webhook_configs: - url: "<your_dingtalk_webhook_url>" httpMethod: POST insecureSkipTLSVerify: true alertNames: ["*"] # 如果你想要限制触发告警的通知只针对特定的labels,可以添加 labels selector # example: # matchLabels: # severity: "critical" ``` 将 `<your_dingtalk_webhook_url>` 替换为你实际的钉钉 webhook 接口地址。 2. **启动 webhook**: 确保你已经安装了 Alertmanager,并且启用了 webhook 功能。通常,webhook 需要在 Alertmanager 启动时启用。 3. **关联告警接收器到 Prometheus 实例**: 当你在 Prometheus 的配置文件中设置了相应的告警规则,你需要确保 Alertmanager 使用的配置包含了这个新的告警接收器。可以在 Prometheus 的配置 (`prometheus-operator` 自动创建的 `.Values.prometheus.alertmanagerConfig` 配置) 或者你自己创建的 `PrometheusRule` 对象中添加接收器引用。 4. **更新资源并验证**: 将上述配置应用到集群中,你可以使用 `kubectl apply -f <path_to_your_file>` 命令。然后查看 Alertmanager 日志,确认告警是否能成功发送钉钉
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZZDICT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值