当前位置: 首页 > article >正文

监控binlog日志监控表变化进行消息通知

前言

由于我们做项目的时候有项目任务管理工具,目前用的最多的是禅道,而我们用的是redmine,而redmine是使用ruby写的,刚好我们这边没有会用ruby的人,所以就有了这样一个小工具,用于监控binlog日志通过钉钉进行任务通知。
Github项目地址

功能介绍

这款小工具通过钉钉的机器人实现群发消息,当有数据写入mysql我们监控的表中的时候,就会有一条binlog日志生成,这个时候我们通过监控到这个日志,就可以根据这条日志的数据进行消息通知。
它主要基于钉钉实现,与你的项目没有耦合,完全独立于你的项目之外。

效果

任务提醒,同时支持通过钉钉和浏览器两种方式查看你的这个任务
在这里插入图片描述
这个是一个定时任务,用于统计bug情况,会在每晚九点发送,但是这里面的表格在手机端的支持并不是很好,我目前没有很好的办法,大家有建议可以在评论区进行评论,我会采纳大家的建议。
在这里插入图片描述

使用

1、通过配置config目录下的conf文件来配置数据库、要监控的表,这里可以监控多个表
2、配置好配置文件后,你需要在redmine项目中加入自定义字段,用于存储钉钉的一个webhook和加签使用的密钥,存储格式:webhook@密钥
3、由于本项目是通过手机号通知的,所以需要大家在创建用户的时候,有一个自定义字段用于存储手机号
4、可以通过项目里面编写的Dockerfile文件两阶段构建出docker镜像,然后通过docker部署即可

技术实现

监控日志

我们通过go-mysql这个包来进行binlog日志的监控,它里面有个回调事件OnRow,在这个回调里面,会返回是什么操作,以及新旧两个版本的数据(已经解析好的)
go-mysql这个包可以做的事情有很多,例如:数据备份、数据迁移、主从同步等,是一个很方便的工具,go-mysql地址,有兴趣大家可以了解一下。

消息通知

这个使用的是钉钉的机器人进行的消息通知,具体调用的API可参考钉钉这篇文档文档地址,这里面提供了丰富的消息格式,就是对markdown语法的支持不是很好,这里发送消息安全设置是通过一个加签的方式,所以你需要按照上面使用的第二步存储密钥及webhook。


http://www.kler.cn/a/306853.html

相关文章:

  • 深入探索React合成事件(SyntheticEvent):跨浏览器的事件处理利器
  • Windows C++ TCP/IP 两台电脑上互相传输字符串数据
  • redis7.x源码分析:(1) sds动态字符串
  • npm list @types/node 命令用于列出当前项目中 @types/node 包及其依赖关系
  • 编写红绿起爆线指标(附带源码下载)
  • 应用于新能源汽车NCV4275CDT50RKG车规级LDO线性电压调节器芯片
  • Gartner发布报告揭秘微软数据安全功能和许可
  • (CVPR-2022)感知优先的扩散模型训练
  • 基于51单片机的倒计时音乐播放系统设计
  • Android libui新加接口,编译报错:error: Please update ABI references
  • 鸿蒙开发之ArkTS 基础八 联合类型
  • 搭建Eureka高可用集群 - day03
  • 智能工厂的设计软件 “程序”的完整框架
  • JAVA学习笔记02-integer
  • 二叉树算法
  • 掌握单片机,其实并不难
  • LeetCode70:爬楼梯
  • 【算法】 滑动窗口—最长无重复子串
  • iPhone手机备忘录转移到Windows电脑上的方法
  • adb devices不显示连接设备怎么解决
  • AI+教育|拥抱AI智能科技,让课堂更生动高效
  • 直播相关03-录制麦克风声音, ffmpeg 命名,使用命令行完成录音
  • 速通汇编(五)认识段地址与偏移地址,CS、IP寄存器和jmp指令,DS寄存器
  • “MIME 媒体类型“用来标识网络传输内容的格式标准
  • [Python办公]常用Python数据采集爬虫技术对比
  • java开发中间件学习记录(持续更新中~)