告警系统邮件引擎
2019獨角獸企業重金招聘Python工程師標準>>>
20.23-20.25 告警系統郵件引擎
創建發郵件的腳本——mail.py
[root@localhost mail]# pwd /usr/local/sbin/mon/mail[root@localhost mail]# vim mail.py #!/usr/bin/env python #-*- coding: UTF-8 -*- import os,sys reload(sys) sys.setdefaultencoding('utf8') import getopt import smtplib from email.MIMEText import MIMEText from email.MIMEMultipart import MIMEMultipart from subprocess import * def sendqqmail(username,password,mailfrom,mailto,subject,content):gserver = 'smtp.163.com'gport = 25try:msg = MIMEText(unicode(content).encode('utf-8'))msg['from'] = mailfrommsg['to'] = mailtomsg['Reply-To'] = mailfrommsg['Subject'] = subjectsmtp = smtplib.SMTP(gserver, gport)smtp.set_debuglevel(0)smtp.ehlo()smtp.login(username,password)smtp.sendmail(mailfrom, mailto, msg.as_string())smtp.close()except Exception,err:print "Send mail failed. Error: %s" % err def main():to=sys.argv[1]subject=sys.argv[2]content=sys.argv[3] ##定義QQ郵箱的賬號和密碼,你需要修改成你自己的賬號和密碼(請不要把真實的用戶名和密碼放到網上 公開,否則你會死的很慘)sendqqmail('asdgsfsdl@163.com','sdfsd2.','asdgsfsdl@163.com',to,subject,content) if __name__ == "__main__":main()#####腳本使用說明###### #1. 首先定義好腳本中的郵箱賬號和密碼 #2. 腳本執行命令為:python mail.py 目標郵箱 "郵件主題" "郵件內容"創建郵件引擎的配置文件
#本腳本用于做告警收斂 #Written by Adai log=$1 t_s=`date +%s` #時間戳1 t_s2=`date -d "2 hours ago" +%s` #時間戳2(兩個小時之前的時間) #定義該時間戳的目的是保證第一次執行該腳本時v大于一小時 #保證第一次執行的時候能報警 #因為只有發生故障的時候才會執行該腳本,所以第一次執行必須要報警 if [ ! -f /tmp/$log ] thenecho $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 #如果時間間隔大于1小時,則啟動報警系統./mail.py $1 $2 $3echo "0" > /tmp/$log.txt #$log.txt為計數器文件: elseif [ ! -f /tmp/$log.txt ]thenecho "0" > /tmp/$log.txtfi #查看計數器文件中的數字nu=`cat /tmp/$log.txt`nu2=$[$nu+1]echo $nu2>/tmp/$log.txt #重置$log.txt數值if [ $nu2 -gt 10 ]then #告警收斂:該故障持續十分鐘,開始報警./mail.py $1 "trouble continue 10 min $2" "$3"echo "0" > /tmp/$log.txt #告警結束后重新開始計數fi fi20.26 運行告警系統
執行告警系統,將告警任務寫入計劃任務中,每分鐘執行一次。
[root@localhost mail]# crontab -e * * * * * cd /usr/local/sbin/mon/bin; bash main.sh轉載于:https://my.oschina.net/adailinux/blog/1540025
總結
- 上一篇: 【管理】日报,周报,会议记录模板
- 下一篇: matlab二元一次方程求解_2-函数的