专栏首页linux运维学习linux学习第六十八篇:告警系统邮件引擎,运行告警系统

linux学习第六十八篇:告警系统邮件引擎,运行告警系统

告警系统邮件引擎

/usr/local/sbin/mon/mail目录下 创建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'  #这里我们用的是163邮箱
    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('1234567@163.com','这里填邮箱的授权码','1234567@163.com',to,subject,content)
if __name__ == "__main__":
    main()


#####脚本使用说明######
#1. 首先定义好脚本中的邮箱账号和密码
#2. 脚本执行命令为:python mail.py 目标邮箱 "邮件主题" "邮件内容"

在mail目录下创建脚本mail.sh 当系统服务异常的时候就会调用mail.sh

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  

运行告警系统

我们手动执行了10次mail.sh脚本后会自动给我们的邮箱发邮件,前提就mail.py脚本记得设置755权限

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • linux学习第六十四篇:Shell脚本中的逻辑判断,文件目录属性判断, if特殊用法,case判断

    Shell脚本中的逻辑判断 格式1:if 条件 ; then 语句; fi 格式2:if 条件; then 语句; else 语句; fi 格式3:if …; ...

    用户1215343
  • linux学习第六十六篇:shell中的函数,shell中的数组,告警系统需求分析

    shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可。 格式: function ...

    用户1215343
  • linux学习第四十七篇:Nginx负载均衡,ssl原理,生产ssl密钥对,Nginx配置ssl

    Nginx负载均衡 负载均衡,将用户的所有HTTP请求均衡的分配到每一台机器上,充分发挥所有机器的性能,提高服务的质量和用户体验。 ? vim /usr/l...

    用户1215343
  • 机器学习优化算法之爬山算法小结

     简言        机器学习的项目,不可避免的需要补充一些优化算法,对于优化算法,爬山算法还是比较重要的.鉴于此,花了些时间仔细阅读了些爬山算法的paper....

    Gxjun
  • 用线程池执行定时任务

    每次用户请求都会判断当前值在不在集合里面,集合数据来自于数据库,不用做缓存,每隔几分钟从数据库load一下数据放到内存就行.

    呼延十
  • 足不出户了解疫情实时状况:腾讯云图10分钟实现疫情数据实时可视化展示

    今天朋友圈被双黄连可抑制冠状病毒刷屏了,数据君温馨提示:大家千万不要在疫情扩散期去药店集中排队“抢药”,双黄连尚无有力证据证明疗效,但是它的广告语对“预防病毒...

    腾讯云数据库 TencentDB
  • 开源工具 DotnetRSA 快速生成和转换RSA秘钥

    晓晨
  • 已经重写,源码和文章请跳转http://www.cnblogs.com/ymnets/p/5621706.html

    文章由于写得比较仓促 已经重写,源码和文章请跳转 http://www.cnblogs.com/ymnets/p/5621706.html  前言: 导入导出实...

    用户1149182
  • 腾讯Q歌Q魅品牌设定

    腾讯ISUX
  • 除了逃离北上广,新世相还做了个「不为人知」的小程序

    我们要学会促使自己注意生活中的美好事物,否则我们就会认为很多事是理所当然的。如果你每天都能心怀感恩,结果一定会让你惊喜。——奥普拉

    知晓君

扫码关注云+社区

领取腾讯云代金券