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

访客5年前黑客工具478

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

相关文章

极客必知:iPhone备份番外篇-黑客接单平台

假如你长时刻混迹于暗码破解的第一线,那么就十分清楚破解相同内容的不同文件格局对破解的速度的影响是十分大的。例如,破解维护RAR文档暗码所需的时刻是破解具有相同内容的ZIP文档暗码的十倍,而破解保存在O...

向Web服务器投递恶意挖矿软件的蠕虫-黑客接单平台

实践中,面向公共互联网供给服务的体系或服务器,都是处于边际方位的。所以无论是物联网设备仍是企业级服务器,只要能被外界访问到,那就会无时无刻被进犯。 最近,咱们发现了一种进犯方法,多个公司Apache...

我的日志剖析之道:简略的Web日志剖析脚本

长话短说,作业的原因是这样的,因为作业原因需求剖析网站日志,服务器是windows,iis日志,在网上找了找,github找了找,竟然没找到,看来只要自己着手锦衣玉食。 那么剖析办法我大致可分为三种:...

网站被挂木马与777权限的微妙

 某天VIP大讲堂微信群里的一位同学说网站被人挂马了,查了半响也查不到原因。艺龙SEO负责人刘明问了一句“是不是技能把linux体系里网站的中心目录设置777文件权限了”,同学查后发现不出所料。那么,...

2019 神盾杯 final Writeup(二)-黑客接单平台

前语 接之前的剖析文章,本篇文章将2019 神盾杯线下赛后续两道web题也解析一下。 web3 预置后门扫描 翻开源码发现是干流cms typecho,先上东西扫一波: 一起注意到版别号: 依...

浅谈精准提取日志中的URL-黑客接单平台

布景 在剖析日志的时分发现有些日志中参数中包括其他的URL,例如: http://www.xxx.cn/r/common/register_tpl_shortcut.php?ico_url=http:...