web服务监控邮件告警python程序

状态码基本类型:

100-199 用于指定客户端应相应的某些动作。 
200-299 用于表示请求成功。 
300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。 
400-499 用于指出客户端的错误。 
500-599 用于支持服务器错误。

我这个监控主要是监控网站首页的状态码200,这个简单一点,没有301跳转啊什么的。虽然有zabbix监控,但感觉自己写的一个还是挺简单的。就是根据上一篇的linux监控python程序扩展了一下。用之前先检查一下看看要监控的web的状态码是不是200啊!我这是有三台阿里云的网站,所以用了一个for循环三个网站的首页地址。

#/usr/bin/env python
# -*- coding: utf-8 -*-
import os,sys
import smtplib
import fcntl
import struct
import pycurl
import string

list=["http://www.xxx","http://xxx/forum.php","http://xxx/index.html","http://xxxx/"]
for URL in list:
    c = pycurl.Curl()
    c.setopt(pycurl.URL, URL)
    indexfile = open(os.path.dirname(os.path.realpath(__file__))+"/content.txt", "wb")
    c.setopt(pycurl.WRITEHEADER, indexfile)
    c.setopt(pycurl.WRITEDATA, indexfile)
    try:
        c.perform()
    except Exception,e:
        print "connecion error:"+str(e)
        indexfile.close()
        c.close()
        sys.exit()               
    HTTP_CODE =  c.getinfo(c.HTTP_CODE)
    print "HTTP状态码:%s" % (HTTP_CODE)#这一句可以不要,调试用的

HOST = "smtp.qq.com"
SUBJECT = "网站服务状态信息"
TO = "xxxx@xx.com"

FROM = "xxxx@xx.com"
text = "网站挂了快跑啊 http server is down"
BODY = string.join((
                   "From: %s" % FROM,
                   "To: %s" % TO,
                   "Subject: %s" % SUBJECT ,
                   "",
                   text
                   ),"\r\n")

def sendemail():
    server = smtplib.SMTP()
    server.connect(HOST,"25")
    server.starttls()
    server.login("xxxx@xx.com","password")
    if HTTP_CODE != 200:
        server.sendmail(FROM, [TO], BODY)
        server.quit()
    else:
        print "http server is ok"
if __name__ == '__main__':
    sendemail()

为了发邮件测试我特别加了一个有跳转的网页,哇咔咔!Game  over

175441_M0Eh_2460176.png

转载于:https://my.oschina.net/luoyedao/blog/515363

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值