需求背景
在项目上线前后,一般往往需要对一些重要的指标数据,需要做一定的阈值预警,本文章主要是对其实现原理做了一定的补充和线下测试,可供参考
环境
Linux version 3.10.0-1160.59.1.el7.x86_64
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
MySQL 5.7.30-log
shell脚本下载链接:
https://download.youkuaiyun.com/download/u010438126/85099228
实现原理
通过sh脚本,实现对数据库执行日志邮件预警的功能
实现邮件发送的方式很多,也可以用kettle工具实现,本章节也做了详细的操作和流程展示,以下主要是shell脚本如何实现邮件发送。
step1:把数据库执行日志存储到日志表中.
读取库表内容有两种方式(请按照实际情况选择):
1、shell脚本读取 .sql文件
2、把SQL语句写入shell脚本中
注意事项:
1、连接db不成功,如何处理,成功后如何处理,需要做判断
step2:通过sh脚本查询日志表,把日志表的内容存储到临时文件中
注意事项:
1、判断日志文件是否存在
2、日志文件内容是覆盖,还是内容累加,需要分情景处理
step3:通过sh脚本cat日志文本,把内容通过mail命令发送邮件
注意事项:
1、邮件发送不成功,需要做日志跟踪,发送失败后,需不需要做shell脚本轮询执行处理
step4: 设置服务器发件人"root@dongjj-2003.localdomain 是白名单,不然网易邮箱会认为是垃圾邮件,给屏蔽。
Linux+Oracle 环境验证
1、执行 #sh ./monitor_dblog.sh
执行 #sh ./monitor_log.sh
验证是否邮件接收成功:
Linux+MySQL环境验证