监控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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值