文档章节

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

落叶刀
 落叶刀
发布于 2015/10/10 17:56
字数 439
阅读 324
收藏 9

状态码基本类型:

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

© 著作权归作者所有

共有 人打赏支持
落叶刀
粉丝 41
博文 126
码字总数 107596
作品 2
浦东
运维
私信 提问
添加自定义监控项目、配置邮件警告

添加自定义监控项目 需求:监控某台wev的80端口连接数,并出图 两步:(1)zabbix监控弄中心创建监控项目;(2)针对该监控项目以图形展现 服务端ip:192.168.159.131 客户端ip:192.168.159...

豆渣锅
2018/06/26
0
0
2018-4-16 16周4次课 zabbix邮件告警

19.12 添加自定义监控项目 ·需求:监控某台web的80端口连接数,并出图 两步:1)zabbix监控中心创建监控项目;2)针对该监控项目以图形展现 ·对于第一步,需要到客户端定义脚本 [root@loca...

alexis7gunner
2018/10/30
0
0
Grafana单图表告警邮件&面板图(Dashboard)日报邮件

Grafana是一套开源的监控图表显示框架,可以很方便地和监控框架结合来显示精美的监控图,比如常见的基于Zabbix监控来显示图表,这方面本文不细说了。 单图表(panel)告警邮件 说到监控就一定...

Cloudox_
01/13
0
0
19.12添加自定义监控项目19.13-14配置邮件告警19.15测试告警19.16不发邮件问题处理

19.12添加自定义监控项目 客户端上编辑配置文件 vim /etc/zabbix/zabbixagentd.conf//增加 UnsafeUserParameters=1 //表示使用自定义脚本 UserParameter=my.estab.count[],/usr/local/sbin/e...

cwliang
2018/06/29
0
0
2018-4-16 Linux学习笔记

19.12 添加自定义监控项目 思路: 客户端设置脚本获取数据->服务端用zabbix_get验证客户端收集的监控数据->zabbix管理界面配置监控项->zabbix管理界面配置成图形->zabbix管理界面配置告警(如果...

XiaoluHuang
01/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java单例模式学习记录

在项目开发中经常能遇见的设计模式就是单例模式了,而实现的方式最常见的有两种:饿汉和饱汉(懒汉)。由于日常接触较多而研究的不够深入,导致面试的时候被询问到后有点没底,这里记录一下学习...

JerryLin123
昨天
4
0
VSCODE 无法调试

VSCODE 无法调试 可以运行 可能的原因: GCC 的参数忘了加 -g

shzwork
昨天
5
0
理解去中心化 稳定币 DAI

随着摩根大通推出JPM Coin 稳定币,可以预见稳定币将成为区块链落地的一大助推器。 坦白来讲,对于一个程序员的我来讲(不懂一点专业经济和金融),理解DAI的机制,真的有一点复杂。耐心看完...

Tiny熊
昨天
4
0
5.线程实现

用于线程实现的Python模块 Python线程有时称为轻量级进程,因为线程比进程占用的内存少得多。 线程允许一次执行多个任务。 在Python中,以下两个模块在一个程序中实现线程 - _thread 模块 th...

Eappo_Geng
昨天
7
0
ServiceLoader

创建一个接口文件在resources资源目录下创建META-INF/services文件夹在services文件夹中创建文件,以接口全名命名创建接口实现类 内容me.zzp.ar.d.PostgreSQLDialectme.zzp.ar.d.Hype...

Cobbage
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部