【Jenkins】如何使用 telegram 的机器人进行 jenkins 任务告警

author: jwensh & gpt
date: 2024.10.08

要使用 Telegram 机器人发送 Jenkins 任务告警,步骤可以分为以下几个部分:创建 Telegram 机器人、配置 Jenkins 插件或者使用自定义脚本,将 Jenkins 任务的状态通过 Telegram 机器人通知给你。具体流程如下:

1. 创建 Telegram 机器人

1.1 与 BotFather 创建机器人
  1. 打开 Telegram,搜索 BotFather,这个是 Telegram 官方的机器人创建和管理工具。

  2. 向 BotFather 发送 /start,然后发送 /newbot 创建新机器人。

  3. 按照 BotFather 的指示,设置机器人的名称和用户名。完成后,BotFather 会生成一个 Token,这是后续连接机器人所需要的。

    • 例如,BotFather 会提供类似 123456789:ABCDEF1234567890abcdef1234567890 这样的 Token。请记录这个 Token。
1.2 获取你的 Telegram 用户 ID
  1. 打开 Telegram,搜索 userinfobotIDBot
  2. 向该机器人发送 /start,它会返回你的用户 ID,格式类似 123456789

2. Jenkins 中配置 Telegram 通知

2.1 使用 Jenkins 插件

Jenkins 提供了专门的插件,可以方便地集成 Telegram 机器人来发送通知。

1. 安装 Jenkins 的 Telegram Notification 插件
  1. 在 Jenkins 主界面,点击 Manage Jenkins(管理 Jenkins)。
  2. 点击 Manage Plugins(插件管理)。
  3. 选择 Available 选项卡,搜索 Telegram Notifications 插件,安装该插件。
2. 配置 Telegram 插件
  1. 安装完成后,回到 Jenkins 主界面,点击 Manage Jenkins
  2. 点击 Configure System
  3. 滚动页面,找到 Telegram Notifier 配置部分。
  4. Bot Token 中输入之前从 BotFather 获得的 Token。
  5. Chat ID 中输入你从 userinfobot 获得的用户 ID。
3. 配置 Jenkins Job 的通知
  1. 进入你想要配置告警的 Jenkins Job。
  2. 点击 Configure
  3. Post-build Actions 部分,点击 Add post-build action,选择 Telegram Notifications
  4. 配置什么时候发送通知,比如 on failure(任务失败时通知)或 on success(任务成功时通知)。

你可以自定义消息内容,也可以保持默认配置。

2.2 使用自定义脚本(Shell + Python)

如果你不想使用插件,可以使用一个简单的脚本来通过 Telegram 发送 Jenkins 任务告警。你可以在 Jenkins 中配置这个脚本,在任务执行结束后,自动发送告警。

1. 编写 Python 脚本

创建一个 Python 脚本,用于发送消息到 Telegram。

import requestsdef send_telegram_message(token, chat_id, message):url = f"https://api.telegram.org/bot{token}/sendMessage"payload = {"chat_id": chat_id,"text": message,"parse_mode": "HTML"}response = requests.post(url, data=payload)if response.status_code == 200:print("Message sent successfully")else:print(f"Failed to send message: {response.status_code}, {response.text}")if __name__ == "__main__":# 在这里填写你的 Bot Token 和 Chat IDbot_token = "123456789:ABCDEF1234567890abcdef1234567890"chat_id = "123456789"# Jenkins 通知消息message = "Jenkins 任务状态告警: 构建成功/失败"send_telegram_message(bot_token, chat_id, message)
2. Jenkins 中调用 Python 脚本
  1. 将上面的脚本保存为 send_telegram_alert.py
  2. 在 Jenkins Job 中的 Post-build Actions,选择 Execute shell,添加以下内容:
python3 /path/to/send_telegram_alert.py

其中,/path/to/send_telegram_alert.py 是你刚刚保存 Python 脚本的完整路径。

3. 动态发送告警

你可以根据构建结果动态修改发送的消息。比如,使用环境变量来判断构建状态:

if [ "$BUILD_STATUS" == "SUCCESS" ]; thenpython3 /path/to/send_telegram_alert.py "Build successful"
elsepython3 /path/to/send_telegram_alert.py "Build failed"
fi

3. 总结

你可以通过以下两种方式将 Jenkins 任务的状态发送到 Telegram:

  1. 使用插件:安装 Telegram Notifications 插件,配置 Bot Token 和 Chat ID,然后在每个 Job 中设置通知条件,非常方便。
  2. 使用脚本:通过 Python 脚本结合 Jenkins Shell,灵活定制通知的内容和条件。

参考

  • https://cloud.tencent.com/developer/article/1972727

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

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

相关文章

【SQL】掌握SQL查询技巧:高效数据整合与查询优化

目录 1. SQL 的基本构成2. SQL 联接(JOIN)2.1 内联接(INNER JOIN)2.2 外联接(OUTER JOIN)2.2.1 左外联接(LEFT JOIN)2.2.2 右外联接(RIGHT JOIN)2.2.3 全外联…

网页前端开发之Javascript入门篇(8/9):数组

Javascript数组 什么是数组? 答:其概念跟 Python教程 的列表一样,只是叫法不同和语法上有所变化而已。 下面是数组的语法: var aaa "张三"; var bbb [aaa, "李四", "王五"]; // 成员值可以是来自变量&am…

《系统架构设计师教程(第2版)》第17章-通信系统架构设计理论与实践-07-通信网络构建案例分析

文章目录 1. 高可用网络构建分析1.1 网络接入层高可用性设计1.1.1 高可用接入层特征1.1.2 接入汇聚层的方式1)倒U 形接法(组网模型一)2)U 形接法(组网模型二)3)矩形接法(组网模型三)4)三角形接法(组网模型四) 1.2 网络…

2024年下半年软考准考证什么时候打印?

2024年下半年软考准考证打印入口网址如下: https://bm.ruankao.org.cn/sign/welcome 广东的同学特别注意:准考证打印截止时间是11月8号,也就是考试前一天。一定要提前打印准考证,考试当天是无法打印的。 2024年下半年软考准考证…

pycharm连接linux服务器需要提前安装ssh服务

在 Debian 或 Ubuntu 系统上,使用 APT: bash复制代码 sudo apt-get install openssh-server 在基于 RPM 的系统如 CentOS 或 RHEL 上,使用 YUM 或 DNF: bash复制代码 sudo yum install openssh-server 或对于较新的 RHEL/Cent…

C# 自适应屏幕分辨率

一、新增AutoSizeFormClass.cs class AutoSizeFormClass{//(1).声明结构,只记录窗体和其控件的初始位置和大小。public struct controlRect{public int Left;public int Top;public int Width;public int Height;}//(2).声明 1个对象//注意这里不能使用控件列表记录 List nCtr…

2024四大剪辑软件推荐及下载地址介绍!

在这个数字时代,视频成为了我们记录生活、分享故事的重要手段。无论是专业摄影师还是业余爱好者,都需要一款好用的视频剪辑软件来将自己的创意变为现实。下面,我将为大家介绍几款各有特色的视频剪辑工具,同时也附上下载的地址&…

PAT甲级-1004 Counting Leaves

题目 题目大意 给定一棵树,每个节点从01到n编号,规定01为根节点,求每层叶子节点的个数。 思路 用二维数组存储树。每层叶子节点的个数,只能用dfs深度遍历,用一个数组存储所有层数的叶子节点个数。相同层数并且是叶子…

面向对象技术——设计模式

目录 层次结构 具体设计模式分类 创建型模式(处理创建对象) 结构型模式(处理类和对象的组合) 行为型模式(描述类或者对象的交互行为) 创建型设计模式 ​编辑 结构型设计模式 行为型设计模式​编辑 …

音视频入门基础:FLV专题(13)——FFmpeg源码中,解析任意Type值的SCRIPTDATAVALUE类型的实现

一、SCRIPTDATAVALUE类型 从《音视频入门基础:FLV专题(9)——Script Tag简介》中可以知道,根据《video_file_format_spec_v10_1.pdf》第80到81页,SCRIPTDATAVALUE类型由一个8位(1字节)的Type和…

wsl中配置cuda,pytorch,cudnn,vscode

参考链接 查看python版本 从 NVIDIA 的官网上下载 CUDA 的 pin 文件。这个文件确保 CUDA 仓库的优先级更高,防止与其他仓库发生冲突。 wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin将下载的 cuda-wsl-u…

Java并发编程:深入探索与实战案例

Java并发编程:深入探索与实战案例 在当今的多核处理器时代,并发编程已成为提升应用程序性能、优化资源利用的关键技术之一。Java,作为一门广泛应用的编程语言,凭借其强大的并发处理能力,在众多编程语言中脱颖而出。本…

【C++打怪之路Lv7】-- 模板初阶

🌈 个人主页:白子寰 🔥 分类专栏:C打怪之路,python从入门到精通,数据结构,C语言,C语言题集👈 希望得到您的订阅和支持~ 💡 坚持创作博文(平均质量分82)&#…

ES postman操作全量修改,局部修改,删除

全量修改 修改需要调用的url 地址是http://192.168.1.108:9200/shopping/_doc/1001,调用方法使用put 只修改指定的需求的内容的请求方式 post方式就是局部修改 http://192.168.1.108:9200/shopping/_update/1001,请求方式post 上图是只修改id 为1001数…

①EtherCAT转ModbusTCP, EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关

EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关https://item.taobao.com/item.htm?ftt&id822721028899 协议转换通信网关 EtherCAT 转 ModbusTCP GW系列型号 MS-GW15 简介 MS-GW15 是 EtherCAT 和 Modbus TCP 协议转换网关,为用户提供一种 …

Redis面试题——第一篇

1. Redis主从复制的实现原理是什么 Redis的主从复制是指一个Redis实例可以将数据复制到一个或者多个从节点,从节点从主节点获取数据并保持同步。 复制流程 连接:从节点通过向主节点发送PSYNC命令建立连接。全量复制:如果是第一次连接或者之…

基于springboot的家政服务管理系统(含源码+sql+视频导入教程+文档+PPT)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于springboot的家政服务管理系统1拥有三种角色 管理员:用户管理、服务管理、评价管理、预约管理、分配管理等 用户:登录注册、预约服务、取消服务、评价等 服…

wsl2 ubuntu 桥接以太网卡

注意:此方法需要至少 Windows 11 22H2。桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。 在桥接的作用下,类似于把宿主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,宿主机也同样插在这…

Prometheus之Pushgateway使用

Pushgateway属于整个架构图的这一部分 The Pushgateway is an intermediary service which allows you to push metrics from jobs which cannot be scraped. The Prometheus Pushgateway exists to allow ephemeral and batch jobs to expose their metrics to Prometheus. S…

Qt+VS2019+大恒相机相机回调方式总结

一、前言 大恒驱动安装完成后,在安装目录有SDK调用文档,里面有更详细的调用介绍,此文档对近期做的Demo做一个回顾性总结。 二、调用流程概述 三、针对性内容介绍: 1. 在执行相机操作之前,需要先执行此代码&#xff1…