1. 程式人生 > >2018-7-18

2018-7-18

sendmai 告警 u+ process lin 日誌 說明 error -h

20.23/20.24/20.25 告警系統郵件引擎
20.26 運行告警系統



20.23/20.24/20.25 告警系統郵件引擎

pyhton腳本 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.qq.com'

gport = 25

try:

msg = MIMEText(unicode(content).encode('utf-8'))

msg['from'] = mailfrom

msg['to'] = mailto

msg['Reply-To'] = mailfrom

msg['Subject'] = subject

smtp = 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('[email protected]','aaaaaaaaaa','[email protected]',to,subject,content)

if __name__ == "__main__":

main()

#####腳本使用說明######

#1. 首先定義好腳本中的郵箱賬號和密碼

#2. 腳本執行命令為:python mail.py 目標郵箱 "郵件主題" "郵件內容"

腳本中主要註意這兩點

gserver = 'smtp.qq.com' //如果用163 就把qq改成163

sendqqmail('[email protected]','aaaaaaaaaa','[email protected]',to,subject,content) // 郵箱,郵箱密碼更換自己所要用的

mail.sh 作用告警收斂,假如服務出現問題一直沒有恢復現實10分鐘發一次郵件

內容:

log=$1

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.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.py $1 "trouble continue 10 min $2" "$3"

echo "0" > /tmp/$log.txt

fi

fi

#核心思想:計時:3600秒 計數:十次






20.26 運行告警系統

每分鐘一次

技術分享圖片技術分享圖片

技術分享圖片技術分享圖片

需要這樣 才能正常的執行成功

cd /usr/local/sbin/mon/bin

sh -x mian.sh

技術分享圖片技術分享圖片

有錯誤

技術分享圖片技術分享圖片

更改文件 502不需要監控to_mon_502=0

技術分享圖片技術分享圖片





2018-7-18