python实现简单的系统监控

最近系统出现一次宕机,因为部署环境不受自己控制,但是短时间内系统稳定性要求比较高,所以就写了个python脚本,每隔一段时间访问系统的一个固定地址,如果访问失败就给自己发一封邮件。(此方案属于临时性监控,和运维监控无关,仅是个人学习python的一个实践)

1、发送邮件的python代码 <mail.py>

#coding: utf-8
import smtplib
from email.mime.text import MIMEText
from email.header import Header
mailto_list=["xxx@xxx.com 接收预警邮件"]
mail_host="smtp.163.com"
mail_user="xxxx 发送邮件的账号"
mail_pass="xxx 发送邮件的密码"
mail_postfix="163.com"
def send_mail(sub,content):
        me="Monitor<"+mail_user+"@"+mail_postfix+">"
        msg=MIMEText(content,_subtype='plain',_charset='gb2312')
        msg['Subject']=sub
        msg['From']=me
        msg['To']=";".join(mailto_list)
        try:
                server=smtplib.SMTP()
                server.connect(mail_host)
                server.login(mail_user,mail_pass)
                server.sendmail(me,mailto_list,msg.as_string())
                server.close()
                return True
        except Exception,e:
                print str(e)
                return False
if __name__=="__main__":
        if send_mail("Monitor","System Failed"):
                print "finished"
        else:
                print "error"


2、监控系统URL的python代码 <monitor.py>

import urllib2
import mail
try:
        s=urllib2.urlopen("http://xxx.xxx.xxx/xxxx.do").read()
        if "xxxx  页面内某段内容是否输出了" in s:
                print "System is ok"
        else:
                print "System is down"
                mail.send_mail("Monitor","System Failed")
except Exception,e:
        print str(e)


3、在服务器上执行crontab -e

输入*/30 * * * * python /home/monitor/monitor.py

每隔30分钟调用一次,mail.py和monitor.py都放在一个目录下

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值