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

访客5年前黑客工具517

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

相关文章

剪贴板鬼魂瞄准虚拟钱银,出师不利1个月亏本4000万?

一、木马概述 360安全中心近期监控到一类虚拟钱银类木马十分活泼,该木马不断监控用户的剪贴板内容,判别是否为比特币、以太坊等虚拟钱银地址,然后在用户买卖的时分将方针地址修改成自己的地址,悄然施行偷盗,...

使用视觉含糊测验技能探究zalgoscript

请咱们先调查下面这条JavaScript句子: ̀̀̀̀̀́́́́́̂̂̂̂̂̃̃̃̃̃̄̄̄̄̄̅̅̅̅̅̆̆̆̆̆̇̇̇̇̇̈̈̈̈̈̉̉̉̉̉̊̊̊̊̊ͅͅͅͅͅͅͅͅͅͅͅalert(̋̋̋ͅ...

记载一次使用事务规划缺点缝隙的精彩实战测验

前语 前次的那篇文章《一名代码审计新手的实战阅历与感悟》得到了不少读者的支撑,也得到了FreeBuf这个渠道的必定,这给了我这个菜的不能再菜的小菜鸟很大的决心。可是,不足之处仍是许多,比方文章中呈现的...

HTML5 安全问题解析

HTML5 安全问题解析 标签: html html5 web安全 本文参阅: w3school:html5相关基础知识(w3school.com.cn)...

8个增强 PHP 程序安全的函数

 安满是编程十分重要的一个方面。在任何一种编程言语中,都供给了许多的函数或许模块来保证程序的安全性。在现代网站运用中,常常要获取来自世界各地用户的输入,可是,咱们都知道“永久不能信任那些用户输入的数据...

30秒攻破恣意密码保护的PC:深化了解5美元黑客神器PoisonTap

近来,闻名硬件黑客Samy Kamkar运用5美元设备打造的黑客东西PoisonTap,只需30秒,就可以攻破设置有恣意暗码的电脑体系,并完成长时间后门装置。PoisonTap不是暴力破解暗码,而是...