码迷,mamicode.com
首页 > 数据库 > 详细

Linx监控分享--重点进程监控(mysqld)+邮件提醒

时间:2015-07-14 00:08:24      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:

重点进程监控

mysqld:进程退出了,报警。没有退出则监控mysqld的(cpu(>=100%)|| mem(>=80%))开始提醒,同时收集和分析mysql状态信息;连接数(>=max_connections * 0.8)开始提醒;打开的句柄数(>=8192*0.8?)开始提醒。

待完善。。。

如果是单机多实例的话,只需要增加一个for循环就好了。

在手机上安装网易的邮件客户端,就可以达到实时提醒的效果。

关于mail的配置,见之前的文章:http://blog.csdn.net/rookie_ceo/article/details/46559195


#!/bin/sh
source /etc/profile


IP=`/sbin/ifconfig|sed -n '/inet addr/s/^[^:]*:\([0-9.]\{7,15\}\) .*/\1/p'|grep -v '127.0.0.1'`
warn_pct=1 #75
warn_name=[mysqld]
performance_path=/monitor/performance
mailtmp=/u01/soft/smonitor/mailtmplet/"$warn_name"tmp.mail
infotmp=/u01/soft/smonitor/mailtmplet/"$warn_name"tmp.tmp
maillist=490073687@qq.com,zhou.xiangxing210@163.com 

DT=`date +"%Y-%m-%d %H:%M:%S"`
mysqld_pid=`ps -ef|grep  mysqld|grep -E "basedir|datadir" |grep -vE "mysqld_|grep"|awk '{print $2}'`
#mysqld_pid=`ps -ef|grep  mysqld|grep -E "basedir|datadir" |grep -vE "mysqld_|grep|mysqld"|awk '{print $2}'`
if [ "0" = "0$mysqld_pid" ]
then 
             echo "您好:" >$mailtmp
             echo "     [$DT]服务器:$IP mysqld进程已经退出,请注意。" #>>"$performance_path"/performance_$warn_name_$(date +%Y%m%d).log
             echo "     [$DT]服务器:$IP mysqld进程已经退出,请注意。"  >> $mailtmp
             
             ps -ef|grep mysql  >>$mailtmp
             echo -e "[$DT]$p1" >>$mailtmp
             echo -e "\nBest Wishes! \n------------------------------------ \nCA system Monitor \n$DT" >> $mailtmp
             cat $mailtmp| mailx -s "$warn_name[告警]:服务器:$IP" $maillist
else 
      echo "mysqld_pid=$mysqld_pid"
      top -b -n 1 -p  $mysqld_pid >$infotmp
      #cpu >= 100% 或者 mem >=80%  ##这里是约等于
      over_pct_flag=`cat $infotmp | grep "^ *[1-9]" | awk '{ if($9 > 99 || $10 > 79) {print 1} else {print 2}}'`
      echo "over_pct_flag==$over_pct_flag"

      if [ 1 -eq "$over_pct_flag" ]
      then
             echo "您好:" >$mailtmp
             echo "     [$DT]服务器:$IP mysqld进程CPU和Mem超过警戒值(cpu >= 100% 或者 mem >=80%),请注意。" #>>"$performance_path"/performance_$warn_name_$(date +%Y%m%d).log
             echo "     [$DT]服务器:$IP mysqld进程CPU和Mem超过警戒值(cpu >= 100% 或者 mem >=80%),请注意。"  >> $mailtmp
             
             echo -e "[$DT]$p1" >>$mailtmp
             cat $infotmp  >>$mailtmp
             DT=`date +"%Y-%m-%d %H:%M:%S"`
             echo -e "\nBest Wishes! \n------------------------------------ \nCA system Monitor \n$DT" >> $mailtmp
             cat $mailtmp| mailx -s "$warn_name[告警]:服务器:$IP" $maillist
      fi
fi


邮件提醒

技术分享

版权声明:本文为博主原创文章,未经博主允许不得转载。

Linx监控分享--重点进程监控(mysqld)+邮件提醒

标签:

原文地址:http://blog.csdn.net/rookie_ceo/article/details/46869463

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!