Jean - 记录成长历程

  • 关于
  • Language
  • RSS Feed
  • 微博
  • 豆瓣
10
Sep

监控服务器日志滚动

By admin|Linux系统|Be the first to comment!

需求

完成一个 java日志监控脚本, 发现10分钟日志不滚动就发送报警邮件和报警短
信.

日志地址: web1-4 的
/home/test/software/java/Jtest/log/*/M.log

邮件报警标题
[监控][JAVA]未滚动日志列表 [20090907_125901] 发给xxx

思路

tail 日志的最后3-10行. 算出md5sum值. 对比前后两次是否一致, 如果一致就说明有问题.

?View Code SHELL
#!/bin/bash
#转载请注明出处,谢谢合作
#writen by jeantoe
#jeantoe@gmail.com
#2009/09/08
 
#Information
sendtime=`date +%Y%m%d_%H%M%S`
MAIL='jeantoe@gmail.com'
MAILFILE='/usr/local/nagios/toJAVAmail'
#MBS='your cell phone number'
 
HOSTLIST='web1 web2 web3 web4'
FILES='
test.osgi.common
test.osgi.core.buy
test.osgi.core.follow
test.osgi.service.buy
test.osgi.core.lottery
test.osgi.core.lottery.analyzer
test.osgi.core.notify
test.osgi.ice.buy.server
test.osgi.core.s2m
test.osgi.core.schedule
test.osgi.core.tds
'
FILESNUMBER=11
COMMANDLOG='tail -n 3'
SLEEP_SEC=600
 
#collect A
for i in $HOSTLIST
do
/usr/bin/ssh $i "
echo "start $i " > /logs/javalog/$i.a.all
"
for b in $FILES
do
/usr/bin/ssh $i "
$COMMANDLOG /home/test/software/java/Jtest/log/${b}/M.log > /logs/javalog/$i.a.${b}
/usr/bin/md5sum /logs/javalog/$i.a.${b}| sed "s@$i.a.${b}@$i.${b}@" >> /logs/javalog/$i.a.all
scp /logs/javalog/$i.a.all test00:/logs/javalog
"
done
done
 
#sleep $SLEEP_SEC
 
#collect B
for i in $HOSTLIST
do
/usr/bin/ssh $i "
echo "start $i " > /logs/javalog/$i.b.all
"
for b in $FILES
do
/usr/bin/ssh $i "
$COMMANDLOG /home/test/software/java/Jtest/log/${b}/M.log > /logs/javalog/$i.b.${b}
echo "start $i " > $i.b.all
/usr/bin/md5sum /logs/javalog/$i.b.${b}| sed "s@$i.b.${b}@$i.${b}@" >> /logs/javalog/$i.b.all
scp /logs/javalog/$i.b.all test00:/logs/javalog
"
done
done
 
#send mail
 
echo "To: $MAIL" >$MAILFILE
echo "From: autopost@gmail.com" >>$MAILFILE
echo "Subject: [Monitor][JAVA]未滚动日志列表[$sendtime] " >> $MAILFILE
for i in $HOSTLIST
do
a_ALL=`cat  /logs/javalog/$i.a.all | wc -l`
b_ALL=`cat  /logs/javalog/$i.b.all | wc -l`
DIFF=`diff -y --suppress-common-lines /logs/javalog/$i.a.all /logs/javalog/$i.b.all | wc -l`
if (( $a_ALL != $b_ALL ));then
echo "${i}日志文件错误"
elif (( $DIFF <= $FILESNUMBER ));then
echo "THIS IS ${i}" >> $MAILFILE
echo "JAVA日志十分钟没滚了,赶紧踢他一脚" >> $MAILFILE
for x in `awk '$1 ~ /[^start]/{print $1}' /logs/javalog/$i.a.all`
do
grep $x /logs/javalog/$i.b.all | sed 's@\(.*\)\(/logs/javalog/web...\)\(.*\)@/home/test/software/java/Jtest/log/\3/M.log \1@'>> $MAILFILE
done
echo "             ">> $MAILFILE
#   此处可插入手机短信通知
else
exit 0
fi
done
cat $MAILFILE | /usr/lib/sendmail -t

脚本写的很一般,偷懒了,变量不太规范可能除了我没人能对它修改了。

无觅相关文章插件,快速提升流量

Tagged as: shell
Add your comment →

0 Comments

Leave your comment below! Cancel Reply

点击取消回复

View More Posts:
  • ←
  • →

分类

  • Linux系统 (61)
  • Linux集群 (4)
  • Web服务器 (26)
  • 创业相关 (6)
  • 工作笔记 (34)
  • 我爱折腾 (16)
  • 日记 (46)
  • 网络 (3)
  • 脚本编程 (49)

最新日志

  • 使用w3 total cache给wordpress提速
  • 从零开始,我的创业感悟
  • 为大众创造更美好的日常生活
  • 我的站立式工作平台
  • 阿里云计算使用简评

最新评论

  • Espn on 死了把软件外包这条心吧
  • Rain on 死了把软件外包这条心吧
  • Ricky on 阿里云计算使用简评
  • admin on 从零开始,我的创业感悟
  • Kovlala on 从零开始,我的创业感悟

博客互联

  • HackLog
  • leapsoul
  • Myredhat
  • Ninth element
  • Ti’blog
  • William Hua
  • young001
  • 懒人运维
  • 曙光博客
  • 月夜
  • 月影
  • 杂货店一号铺
  • 王先进’s blog
  • 疯中舞步
  • 菜鸟的技术站
  • 运维进行时

技术

  • DBA BLOG
  • 回忆未来[张宴]
  • 扶凯
  • 王炜's Blog
  • 百变贝贝

Powered by the inLine Minimal WordPress Theme