Zabbix运用Pycurl模块监控web页面状况

访客5年前黑客工具475

因为 *** 的问题,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]  黑客接单网

相关文章

一份来源未知的数据,揭秘了OilRig组织的全部信息(下)-黑客接单平台

Webshells Webshell用于与受感染服务器交互。走漏数据中包含了三个webshell,分别为HyperShell、HighShell和Minion,Minion很可能是HighShell的...

针对HTTP的躲藏攻击面剖析(中)

为了增强用户体会度,现代Web网站架构中都包含了各式各样的“躲藏体系”,这些体系不只能够给用户供给各种额定的服务,并且还能够协助管理员提取网站各方面的剖析数据。可是,这些躲藏体系相同也是近些年里常常被...

Nmap备忘单:从探究到缝隙使用 Part1

在侦办过程中,信息搜集的初始阶段是扫描。 侦办是什么? 侦办是尽或许多的搜集方针网络的信息。从黑客的视点来看,信息搜集对进犯十分有协助,一般来说能够搜集到以下信息: 电子邮件、端口号、操作体系、运转...

代码审计第三讲实战发掘sql注入缝隙

 为了更好去发掘php缝隙,关于盛行的结构,咱们也要了解一下,这样才干发掘到高位缝隙。关于结构学习,不同公司有不同结构,所以关于结构,也因人而应,别的看公司需求,假如你的公司大部分选用某一种结构,你来...

第六届全国网络安全大赛代码审计全解

 XDCTF是一项面向全国在校大学生的信息安全类竞赛,由西电信息安全协会与网络攻防实训基地联合举行。旨在增强学生对网络常识的爱好,进步学生学习网络技术的积极性,培育学生的立异 认识、协作精力和理论联系...

阿里如此盾Web使用防火墙深度测评

在本年的WitAwards 2019互联网安全年度评选中,阿里如此盾Web运用防火墙(WAF)以其技能和服务赢得了群众和评委的认可,斩获「年度云安全产品及服务」奖项。实际上,WAF已经成为企业看护we...