继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

巧用手机邮件来设置报警短信息

largeQ
关注TA
已关注
手记 960
粉丝 92
获赞 585

spacer.gif很早之前就喜欢用移动的139的手机邮件来设置nagios报警邮件,当时联通的手机邮件短信功能还不是特别成熟,我尝试了如下的一些用法,感觉还是非常方便的;139的手机邮配置比较简单,而且短信报警很快,曾经系统组的同事为这个问题投拆过,在这里我以用了5年多的邮通号为例,这个其实在http://mail.wo.com.cn/smsmail/index.html的“邮件到达通知”一项,我们按照如下图示设置:

151224275.jpg

一、在公网服务器上实时监控重要的网站。

这个可以作为Nagios的辅助功能,这样我们就没有必要去购买配置的即时扫描网站的预警服务了,脚本内容如下:

#!/bin/bash

while :

do

status=`curl -s --head http://www.1paituan.com/index.jsp | awk '/HTTP/ {print $2}'`

if [ "$status" == "200" ]

then

   :

else

  echo "1paituan.com is critical" | mail -s "1paituan.com is critical.please check " 1309889xxxx@wo.com.cn

fi

sleep 5

done

然后我们将些脚本放在后台执行,命令如下:

nohup sh /root/monitor.sh &

二、我帮许多朋友配置网站时,用的都是MySQL主从方案,有时顺便把他们监测下,以前发过此监控脚本第一版,这个是更改后的第二版,增加了DATA参数,可以准确定位是哪一个时间点MySQL主从出现了问题,并修正了第一版的一些bug,脚本内容如下:

#crontab time 00:10

#!/bin/bash

#check MySQL_Slave Status

#crontab time 00:10

MYSQLPORT=`netstat -na|grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $4}'`

MYSQLIP=`ifconfig eth0|grep "inet addr" | awk -F[:" "]+ '{print $4}'`

IO_env=`echo $STATUS | grep IO | awk  ' {print $2}'`

SQL_env=`echo $STATUS | grep SQL | awk  '{print $2}'`

DATA=`date +"%y-%m-%d %H:%M:%S"`

if [ "$MYSQLPORT" == "3306" ]

then

  echo "mysql is running"

else

  echo $MYSQLIP mysql is down" | mail -s "warn!server: $MYSQLIP mysql is down" 1309889xxxx@wo.com.cn

fi

if [ "$IO_env" = "Yes" -a "$SQL_env" = "Yes" ]

then

  echo "Slave is running!"

else

echo "Slave is not running!" | mail -s "warn! $DATA $MYSQLIP MySQL Slave is not running" 1309889xxxx@wo.com.cn

fi

然后每10分钟运行一次,我们编辑/etc/crontab文件,添加内容如下所示:

*/10 * * * * root sh /root/mysql_slave.sh

大家如果考虑用手机邮的话,有些事情也请注意一下:

一、Linux服务器本身就有sendmaiil服务的,它发送邮件的功能的效果就不错,没必要再经过公司的邮箱服务器中转,我们以前尝试过,失败了;

二、发现联通的号延迟问题、到达问题还是很多,建议大家还是以移动的号为主;

三、这种报警策略只是作为Nagios监控系统的辅助手段而已。

©著作权归作者所有:来自51CTO博客作者抚琴煮酒的原创作品,如需转载,请注明出处,否则将追究法律责任

职场休闲手机邮件Linux开源系统


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP