因为 *** 的问题,zabbix自带web模块用不了,后台研制2b,老是更新正式环境安装包,导致一向出问题,老是给他们擦 *** ,早说过这事,他们不合作,现在出问题了,挺爽j_0025.gif,这锅我表明不背,就找了pycurl这个模块写个监控。
pycurl模块用法:
(这块是抄的j_0023.gif,引证地址:http://blog.csdn.net/xsj_blog/Article/details/52102652)
c = pycurl.Curl() #创立一个curl目标
c.setopt(pycurl.CONNECTTIMEOUT, 5) #衔接的等候时刻,设置为0则不等候
c.setopt(pycurl.TIMEOUT, 5) #恳求超时时刻
c.setopt(pycurl.NOPROGRESS, 0) #是否屏蔽下载进度条,非0则屏蔽
c.setopt(pycurl.MAXREDIRS, 5) #指定HTTP重定向的更大数
c.setopt(pycurl.FORBID_REUSE, 1) #完结交互后强制断开衔接,不重用
c.setopt(pycurl.FRESH_CONNECT,1) #强制获取新的衔接,即代替缓存中的衔接
c.setopt(pycurl.DNS_CACHE_TIMEOUT,60) #设置保存DNS信息的时刻,默以为120秒
c.setopt(pycurl.URL,"http://www.baidu.com") #指定恳求的URL
c.setopt(pycurl.USERAGENT,"Mozilla/5.2 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50324)") #装备恳求HTTP头的User-Agent
c.setopt(pycurl.HEADERFUNCTION, getheader) #将回来的HTTP HEADER定向到回调函数getheader
c.setopt(pycurl.WRITEFUNCTION, getbody) #将回来的内容定向到回调函数getbody
c.setopt(pycurl.WRITEHEADER, fileobj) #将回来的HTTP HEADER定向到fileobj文件目标
c.setopt(pycurl.WRITEDATA, fileobj) #将回来的HTML内容定向到fileobj文件目标
c.getinfo(pycurl.HTTP_CODE) #回来的HTTP状况码
c.getinfo(pycurl.TOTAL_TIME) #传输完毕所耗费的总时刻
c.getinfo(pycurl.NAMELOOKUP_TIME) #DNS解析所耗费的时刻
c.getinfo(pycurl.CONNECT_TIME) #树立衔接所耗费的时刻
c.getinfo(pycurl.PRETRANSFER_TIME) #从树立衔接到预备传输所耗费的时刻
c.getinfo(pycurl.STARTTRANSFER_TIME) #从树立衔接到传输开端耗费的时刻
c.getinfo(pycurl.REDIRECT_TIME) #重定向所耗费的时刻
c.getinfo(pycurl.SIZE_UPLOAD) #上传数据包巨细
c.getinfo(pycurl.SIZE_DOWNLOAD) #下载数据包巨细
c.getinfo(pycurl.SPEED_DOWNLOAD) #均匀 ***
c.getinfo(pycurl.SPEED_UPLOAD) #均匀上传速度
c.getinfo(pycurl.HEADER_SIZE) #HTTP头部巨细
代码如下:
#!/usr/bin/env python
# __*__coding:utf8__*__
#Author:wangpengtai
#Blog:http://wangpengtai.blog.51cto.com/
import pycurl
import sys
import StringIO #引证该模块的原因是:运用pycurl后会打印出页面内容,咱们不需要看到这个内容,只需要获取页面反应信息就行了,只能将其写入缓存中,现在没找到好办法,学艺不精,不会运用重定向写到os.devnull中,无法初度下策。。。
#开端运用的是写入临时文件,可是会有权限问题,导致zabbix无法获取到数据。
class WebStatus(object):
def __init__(self, url):
self.url = url
self.curl = pycurl.Curl()
self.string = StringIO.StringIO()
# 衔接等候时刻,0则不等候
self.curl.setopt(pycurl.CONNECTTIMEOUT, 5)
# 超时时刻
self.curl.setopt(pycurl.TIMEOUT, 5)
# 下载进度条,非0则屏蔽
self.curl.setopt(pycurl.NOPROGRESS, 1)
# 指定HTTP重定向更大次数
self.curl.setopt(pycurl.MAXREDIRS, 5)
# 完结交互后强制断开衔接,不重用
self.curl.setopt(pycurl.FORBID_REUSE, 1)
# 设置DNS信息保存时刻,默以为120秒
self.curl.setopt(pycurl.DNS_CACHE_TIMEOUT, 60)
# 设置恳求的Url
self.curl.setopt(pycurl.URL, self.url)
self.curl.setopt(pycurl.WRITEFUNCTION, self.string.write)#将页面内容写入缓存
self.curl.perform()
def request_value(self):
[1] [2] 黑客接单网
Rust是一门体系编程言语,专心于安全,尤其是并发安全,支撑函数式和指令式以及泛型等编程范式的多范式言语。Rust在语法上和C++类似,可是设计者想要在确保功用的一起供给更好的内存安全。 由于Rust...
最近,我发现自己需求对完好内存转储进行一些查询。通过一段时间的搜索,我发现了Volatility-Labs的这篇文章,依据其间的辅导办法,我能够很好的来评价内存转储。当然,你或许会有更好、更深度的内存...
因为一向在做 Web 缝隙扫描器的开发, 那么就必定少不了 Web 的缝隙测验环境, 其中就包含 bWAPP、DVWA、OWASP WebGoat 等这些国际品牌。 这些缝隙环境一般建立比较繁琐, 并...
发现网上公开过安全狗的办法少之又少,并且根本都是给个大约点就完毕,本文章是将整个进程记录了一遍,因为一开始我也没想到我能成功的绕过去,大约进程是这样:Mysql根底有必要要有–>定位—>f...
在这篇文章中,咱们将从攻击者的视点介绍怎么运用Azure信息维护(Azure Information Protection,AIP)来改善网络垂钓技能。这个主意是在一次测验作业进程中发生的,其时我正在...
网络犯罪分子常常会选用多层的加密或混杂技能来躲避安全产品的检测。对加密器和封装器的运用在当今歹意软件范畴正变得越来越盛行,它们不只能为歹意代码供给所谓的“FUD”(彻底无法检测)功用,而且还能躲藏额定...