监控url python脚本

 python代码:

#!/usr/bin/python
#coding:utf-8
import StringIO
import pycurl
import sys
import os
class urlpass:
    def __init__(self):
        self.contents = ‘‘
    def body_callback(self,buf):
        self.contents = self.contents + buf
def urlgzip(input_url):
    t = urlpass()
    c = pycurl.Curl()
    c.setopt(pycurl.WRITEFUNCTION,t.body_callback)
    c.setopt(pycurl.ENCODING, ‘gzip‘)
    c.setopt(pycurl.URL,input_url)
    c.perform()
    http_code = c.getinfo(pycurl.HTTP_CODE)#响应代码
    http_conn_time = c.getinfo(pycurl.CONNECT_TIME)#远程服务器连接时间
    http_pre_tran = c.getinfo(pycurl.PRETRANSFER_TIME)#连接上后开始传输的时间
    http_start_tran = c.getinfo(pycurl.STARTTRANSFER_TIME)#接收第一个字节的时间
    http_total_time = c.getinfo(pycurl.TOTAL_TIME)#上一请求总时间
    http_size = c.getinfo(pycurl.SIZE_DOWNLOAD)#下载数据大小
    #print ‘http_code http_size conn_time pre_tran start_tran total_time‘
    return "http_code:%d,http_size:%d,conn_time:%f,pre_tran:%f,start_tran:%f,total_time:%f"%(http_code,http_size,http_conn_time,http_pre_tran,http_start_tran,http_total_time)
if __name__ == ‘__main__‘:
    #input_url = sys.argv[1]
    input_url=‘http://www.testurl.com‘
    urlinfo=urlgzip(input_url)
    print type(urlinfo)
    print urlinfo

pycurl.NAMELOOKUP_TIME 域名解析时间

pycurl.CONNECT_TIME 远程服务器连接时间

pycurl.PRETRANSFER_TIME 连接上后到开始传输时的时间

pycurl.STARTTRANSFER_TIME 接收到第一个字节的时间

pycurl.TOTAL_TIME 上一请求总的时间

pycurl.REDIRECT_TIME 如果存在转向的话,花费的时间

pycurl.EFFECTIVE_URL

pycurl.HTTP_CODE HTTP 响应代码

pycurl.REDIRECT_COUNT 重定向的次数

pycurl.SIZE_UPLOAD 上传的数据大小

pycurl.SIZE_DOWNLOAD 下载的数据大小

pycurl.SPEED_UPLOAD 上传速度

pycurl.HEADER_SIZE 头部大小

pycurl.REQUEST_SIZE 请求大小

pycurl.CONTENT_LENGTH_DOWNLOAD 下载内容长度

pycurl.CONTENT_LENGTH_UPLOAD 上传内容长度

pycurl.CONTENT_TYPE 内容的类型

pycurl.RESPONSE_CODE 响应代码

pycurl.SPEED_DOWNLOAD 下载速度

pycurl.SSL_VERIFYRESULT

pycurl.INFO_FILETIME 文件的时间信息

pycurl.HTTP_CONNECTCODE HTTP 连接代码

pycurl.HTTPAUTH_AVAIL

pycurl.PROXYAUTH_AVAIL

pycurl.OS_ERRNO

pycurl.NUM_CONNECTS

pycurl.SSL_ENGINES

pycurl.INFO_COOKIELIST

pycurl.LASTSOCKET

pycurl.FTP_ENTRY_PATH

发微信告警

#!/usr/bin/python
#coding:utf-8
import StringIO
import pycurl
import sys
import os
import requests
import json
class urlpass:
    def __init__(self):
        self.contents = ‘‘
    def body_callback(self,buf):
        self.contents = self.contents + buf
def urlgzip(input_url):
    t = urlpass()
    c = pycurl.Curl()
    c.setopt(pycurl.WRITEFUNCTION,t.body_callback)
    c.setopt(pycurl.ENCODING, ‘gzip‘)
    c.setopt(pycurl.URL,input_url)
    c.perform()
    http_code = c.getinfo(pycurl.HTTP_CODE)#响应代码
    http_conn_time = c.getinfo(pycurl.CONNECT_TIME)#远程服务器连接时间
    http_pre_tran = c.getinfo(pycurl.PRETRANSFER_TIME)#连接上后开始传输的时间
    http_start_tran = c.getinfo(pycurl.STARTTRANSFER_TIME)#接收第一个字节的时间
    http_total_time = c.getinfo(pycurl.TOTAL_TIME)#上一请求总时间
    http_size = c.getinfo(pycurl.SIZE_DOWNLOAD)#下载数据大小
    #print ‘http_code http_size conn_time pre_tran start_tran total_time‘
    return "状态码:%d,页面下载大小KB:%d,连接时间秒:%f,开始传输时间:%f,总时长秒:%f"%(http_code,http_size,http_conn_time,http_start_tran,http_total_time)

def get_token():

  url=‘https://qyapi.weixin.qq.com/cgi-bin/gettoken‘
  values = {‘corpid‘ : ‘weixin corpid‘ ,
      ‘corpsecret‘:‘weixin token‘,
       }#asia monitor
  req = requests.post(url, params=values)
  data = json.loads(req.text)
  return data["access_token"]

def send_msg(info01):
  url="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="+get_token()
  values = """{"touser" : "1" ,
      "toparty":"1",
      "msgtype":"text",
      "agentid":"1",
      "text":{
        "content": "新加坡API:{%s}"
      },
      "safe":"0"
      }""" %(info01)

  data = json.loads(values)
  req = requests.post(url, values)

if __name__ == ‘__main__‘:
    #input_url = sys.argv[1]
    input_url=‘http://www.test.com‘

    urlinfo=urlgzip(input_url)
    send_msg(urlinfo)
    print type(urlinfo)
    print urlinfo

  

时间: 2024-10-13 05:39:51

监控url python脚本的相关文章

zabbix监控利用Python脚本发邮件

最近实施了zabbix监控,开源软件杠杠的,甩nagios 好几条街-- 环境:centos6.6 + Zabbix 2.4.5 + Python 2.6.6 cd /usr/local/zabbix/share/zabbix/alertscripts #进入脚本存放目录vi SendAlertEmail.sh #编辑,添加以下代码#!/bin/shecho "$3" | mail -s "$2" $1:wq! #保存退出chown zabbix.zabbix /u

监控redis python脚本

#!/bin/env python#-*- coding:utf-8 -*- import jsonimport timeimport socketimport osimport reimport sysimport commandsimport urllib2, base64 class RedisStats: redis_cli = '/data/redis/bin/redis-cli' stat_regex = re.compile(ur'(\w+):([0-9]+\.?[0-9]*)\r

lamp环境加glusterfs存储集群自动化监控自动修复python脚本

#!/usr/bin/python#coding:utf-8import osimport sysimport reimport paramikoimport commandsimport timeimport datetime def apache_connect_perform(ip,command):client = paramiko.SSHClient()client.set_missing_host_key_policy(paramiko.AutoAddPolicy())client.

shell vs python脚本监控http请求

各写一个shell和python脚本来监控http请求,并在服务不可用的时候重启服务. 监控的连接为: http://192.168.1.101:5022/product http://192.168.1.101:5024/module shell脚本如下,配合crontab计划任务每一分钟执行一次检查: #!/bin/bash # This shell is used to moniter 192.168.1.101 port 5022 & 5024 date  #在crontab里用来记录l

用 Python 脚本实现对 Linux 服务器的监控

hon 分享到:8 原文出处: 曹江华 目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件).glances(资源监控工具)在实际工作中,Linux 系统管理员可以根据自己使用的服务器的具体情况编写一下简单实用的脚本实现对 Linux 服务器的监控. 本文介绍一下使用 Python 脚本实现对 Linux 服务器 CPU 内存 网络的监控脚本的编写. Python 版本说明 Python 是由 Guido va

用 Python 脚本实现对 Linux 服务器的网卡流量监控

*这篇文章网上已经有相关代码,为了加深印象,我做了相关注释,希望对朋友们有帮助 工作原理:基于/proc文件系统 Linux 系统为管理员提供了非常好的方法,使其可以在系统运行时更改内核,而不需要重新引导内核系统,这是通过/proc 虚拟文件系统实现的./proc 文件虚拟系统是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做"/proc"),这个伪文件系统允许与内核内部数据结构交互,获取有关进程的有用信息,在运行中(on the fly)改变设置(通过改变内核参

python实现监控URL的一个值小于规定的值--邮件报警

监控URL的一个值小于规定的值--邮件报警 #!/usr/bin/env python #-*- coding:utf-8 -*- __author__ = 'liudong' import urllib,sys,urllib,json,smtplib from email.mime.text import MIMEText mailto_list=['[email protected]'] mail_host="smtp.exmail.qq.com" mail_user="

Redis之使用python脚本监控队列长度

编辑python脚本redis_conn.py #!/usr/bin/env python #ending:utf-8 import redis def redis_conn(): pool = redis.ConnectionPool(host="192.168.56.11",port=6379,db=3,password=123456) conn = redis.Redis(connection_pool=pool) data = conn.llen("system-lo

一个简单的监控redis性能的python脚本

一个简单的监控redis性能的python脚本 上一篇已经讲了如何监控memcached了,现在也顺带讲如何监控redis. 首先介绍下监控redis那些信息: Redis ping:检验ping Redis alive:查看检查端口是否alive Redis connections:查看连接数 Redis blockedClients:正在等待阻塞客户端数量 Redis connectionsUsage:redis的连接使用率 Redis memoryUsage:redis内存使用量 Redi