一, 告警系统邮件引擎
之前写过一个 python 的发邮件脚本, 这里直接复制过来使用, 脚本详细信息见
- http://blog.51cto.com/13569831/2121331
- cp /usr/lib/zabbix/alertscripts/mail.py /usr/local/sbin/mon/mail/mail.py
- cd /usr/local/sbin/mon/mail
- vim mail.sh
- log=$2
- t_s=`date +%s`
- t_s2=`date -d "2 hours ago" +%s`
- if [! -f /tmp/$log]
- then
- echo $t_s2> /tmp/$log
- fi
- t_s2=`tail -1 /tmp/$log|awk '{print $1}'`
- echo $t_s>> /tmp/$log
- v=$[$t_s-$t_s2]
- echo $v
- if [ $v -gt 3600 ]
- then
- ../mail/mail.py $1 $2 "$3"
- echo "0"> /tmp/$log.txt
- else
- if [ ! -f /tmp/$log.txt ]
- then
- echo "0"> /tmp/$log.txt
- fi
- nu=`cat /tmp/$log.txt`
- nu2=$[$nu+1]
- echo $nu2> /tmp/$log.txt
- if [ $nu2 -gt 10 ]
- then
- ../mail/mail.py $1 "trouble continue 10 min $2" "$3"
- echo "0"> /tmp/$log.txt
- fi
- fi
以上脚本大致逻辑为发送报错邮件后, 如果 10 分钟未处理则再次发送告错邮件
运行告警系统
首先将 / usr/local/sbin/mon/bin/main.sh 中的 exec 一行注释掉, 便于测试
- cd /usr/local/sbin/mon/bin/
- sh -x main.sh
将 //usr/local/sbin/mon/shares/load.sh 中判断规则改为 - eq 0 用于测试.
来源: http://www.bubuko.com/infodetail-2632751.html