一个非常简单的Flask项目,可定时执行监控sql并发送邮件报警。
具备以下特性:
- 监控数据库可配置
- cron表达式控制执行频率
- 执行结果智能邮件报警
(默认已安装好python3环境,若未安装,请自行百度)
- 在项目根目录运行
pip3 install -r requirements.txt
安装依赖 - config.yaml文件配置发件人邮箱及密码
- 在项目根目录运行
python monitor_server.py
启动项目,启动端口可在monitor_server.py文件中修改,默认为5001。 - 浏览器输入 http://localhost:5001 ,访问监控首页。
-
配置数据源
数据源可指定mysql的主机地址,端口,数据库名,用户名和密码。 配置完成后可测试是否可成功连接。 -
配置报警sql
在监控主页配置报警的sql,每个字段都是必选字段。多个邮箱收件人用英文逗号分隔,cron表达式为linux格式,只能精确到分钟。如每天早上9点可配置为0 9 * * *。 然后选中配置的数据源,填入写好的报警sql。
sql结尾不可带分号。报警的机制是校验当前sql查出的数据条数是否大于0,如果大于0则向指定的邮箱发送邮件报警。 如果查询出的结果条数大于10,则 邮件结果只展示前10条 。(应改为可配置)
报警邮箱格式见下图 -
测试报警
配置好报警sql后,则点击立即执行来测试一下效果。页面上会展示出本次执行的结果,同时如果结果条数大于0还会发送报警邮件。 -
开始监控
当保存好sql之后,系统会自动检测cron表达式下次运行的时间,并加入到执行队列中。