您的位置:首页 > 运维架构

定时监控服务,告警,并启动服务

2015-06-08 11:47 225 查看
脚本功能:每5分钟监控服务进程,本次进程为3个tomcat服务,当服务挂起时,发送报警邮件,并启动服务

1:创建日志文件脚本

[root@shell ~]# cat a.sh
#!/bin/bash
b=a.`date +%Y%m%d-%T`.log

echo -n "-------------------------$b"

[root@shell ~]# sh a.sh
-------------------------a.20150604-18:04:20.log

2:创建服务启动脚本

#!/bin/bash

b=a.`date +%Y%m%d-%T`.log

#sh /opt/apache-tomcat-6.0.35/bin/startup.sh && tail -f /opt/apache-tomcat-6.0.35/logs/catalina.out >> $b &

sh /opt/apache-tomcat-6.0.35/bin/startup.sh >> $b &

sleep 30

echo "tomcat8081 start ********************************************************************" >>$b &

#sh /opt/apache-tomcat-6.0.35_8082/bin/startup.sh && tail -f /opt/apache-tomcat-6.0.35_8082/logs/catalina.out >> $b &

##如果采用tail 日志输出,会把所有的日志都输入到这个文件中##

sh /opt/apache-tomcat-6.0.35_8082/bin/startup.sh >> $b &

sleep 60

echo "tomcat8082 start over********************************************************************" >>$b &

#sh /opt/apache-tomcat-6.0.35_8083/bin/startup.sh && tail -f /opt/apache-tomcat-6.0.35_8083/logs/catalina.out >>$b &

sh /opt/apache-tomcat-6.0.35_8083/bin/startup.sh >>$b &

sleep 90
echo "tomcat8083 start ********************************************************************" >>$b &

3.通过外部smtp服务,发送报警短信

yum -y install mailx

yum -y install sendmail

启动sendmail服务。

service sendmail start

配置mail.rc外部smtp服务

set from=111@qq.com
set smtp=mail.qq.com
set smtp-auth-user=111@qq.com
set smtp-auth-password=qq
set smtp-auth=login

测试echo java stop,please check | mail -s "title" benren@qq.com

我们看到上面邮件已经发送成功!

4:修改服务启动脚本,当服务挂起得时候,发送报警短信,并启动服务

start_java(){

killall -9 java
b=a.`date +%Y%m%d-%T`.log

sh /opt/apache-tomcat-6.0.35/bin/startup.sh && tail -f /opt/apache-tomcat-6.0.35/logs/catalina.out >> $b &

sleep 30

echo "tomcat8081 start ********************************************************************" >>$b &

sh /opt/apache-tomcat-6.0.35_8082/bin/startup.sh && tail -f /opt/apache-tomcat-6.0.35_8082/logs/catalina.out >> $b &

echo "tomcat8082 start **********************************************************************" >>$b &

sh /opt/apache-tomcat-6.0.35_8083/bin/startup.sh && tail -f /opt/apache-tomcat-6.0.35_8083/logs/catalina.out >>$b &

echo "tomcat8083 start **************************************************************************" >>$b &
}

proess_num=`ps -C java --no-header|wc -l`

if [ $proess_num -ne 3 ];then
echo "'HOSTNAME=$HOSTNAME' '$IP' error,please check" | mail -s "wheat-conver" 11@qq.com 22@qq.com
start_java
fi

5:加入定时任务,每5分钟检测一次

crontab -e

  

5:mail命令的用法简介

使用mail发邮件时,必须先将sendmail服务启动。

mail –s “邮件主题” –c”抄送地址” –b “密送地址” -- -f 发送人邮件地址 –F 发件人姓名 < 要发送的邮件内容

mail -s test yangfang@fudan.edu.cn #第一种方法,你可以把当前shell当成编辑器来用,编辑完内容后Ctrl-D结束

echo “mail content”|mail -s test yangfang@fudan.edu.cn #第二种方法,我用的最多,可能是喜欢管道的缘故吧

mail -s test yangfang@fudan.edu.cn < file #第三种方法,以file的内容为邮件内容发信
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: