mysql 告警日志_错误日志监控报警脚本

错误日志监控报警脚本

发布时间:2020-06-16 20:48:31

来源:51CTO

阅读:572

作者:insist_way

写在前面:

在实际工作中,定期检查数据库错误日志是必不可少的工作项。但是检查的时候却不一定产生了新的错误信息,或者说我们更加希望永远不要有错误信息才好,因为这表示我们的数据库是健壮的。这种情况下,无法预知错误信息什么时候产生,而如果我们检查错误日志又经常是正常的,很容易形成思维惯性,久而久之没有报错信息,我们很容易忽略这一工作项。但是错误日志对于我们来说又是必不可少的,此时,我们就希望,什么时候产生错误信息,就直接邮件报警通知我,我就可以腾出时间来做一些更有意义的事情了。如果你也有这种需求,那么本文可能会帮到你。

脚本文件:

cat monitor_errorlog.sh

#!/bin/bash

#错误日志监控报警脚本

#监控日期

time=`date +%F`

#time=2018-06-02

cd /home/dbalzb

#按照日期生成error日志监控文件,首先检测当天error日志是否生成过

ls errorlog-$time.txt &> /dev/null

#状态返回值为非0,即表示当天未生成过

if [ $? -ne 0 ];then

cat /home/data/mysql/error.log | grep "$time" | egrep -i 'error|warning' > errorlog-$time.txt

#判断当天是否有错误日志

num=`cat errorlog-$time.txt |wc -l`

if [ $num -ne 0 ];then

mutt lizibin_1@126.com -s "errorlog3306" < errorlog-$time.txt

fi

md5sum errorlog-$time.txt > md5-errorlog-$time.txt

else

cat /home/data/mysql/error.log | grep "$time" | egrep -i 'error|warning' > errorlog-$time-new.txt

#第二次及以后执行的脚本文件会生成新的errorlog文件,并生成新的md5sum值

md5sum errorlog-$time-new.txt >> md5-errorlog-$time.txt

str1=`cat md5-errorlog-$time.txt | sed -n '1p' | awk '{print $1}'`

str2=`cat md5-errorlog-$time.txt | sed -n '2p' | awk '{print $1}'`

#num1=`cat errorlog-$time-new.txt |wc -l`

#cat errorlog-$time.txt >> errorlog-$time-history.txt

#对比两个文件的md5sum值来判断是否有新的错误日志生成

if [ $str1 != $str2 ];then

mutt lizibin_1@126.com -s "new-errorlog3306" < errorlog-$time-new.txt

#cat errorlog-$time-new.txt >> errorlog-$time-history.txt

fi

/bin/rm -f errorlog-$time-new.txt

sed -i '2d' md5-errorlog-$time.txt

fi

添加计划任务:(每小时执行一次,可自行调整)

5 */1 * * * sh /home/dbalzb/monitor_errorlog.sh

条条大路通罗马,你是怎么动态监控数据库错误日志的呢?欢迎下方留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值