首 页最新软件下载排行文章资讯投稿发布下载专题
维维下载站
您的位置:首页编程开发网络编程编程其它 → 教你如何利用Python+微信接口实现日常运维报警例子

教你如何利用Python+微信接口实现日常运维报警例子

来源:维维整理 发布时间:2016-8-29 7:27:31 人气:

怎么用Python+微信接口实现日常运维报警?要说到运维报警这个话题,我认为都能够写一个长篇历史来详细解释了报警的前世来生了,例如最早报警的大多是用邮件,可是邮件的实时性太低了,例如下班回家之后总不能人一直盯着邮箱吧,因此邮件这一种报警方式并不适合于用来报紧急的故障,日常磁盘利用率监控什么的可用它来报警倒是没什么问题,而网站宕机不能访问这种紧急情况的故障,用它就十分的不合适了。

那么对于这种业务稳定性要求十分高的业务,后来就发展成了用短信了,就是公司买个短信机,提供一个http接口,然后运维人员写脚本将收集到的异常数据写入文件,接着脚本实时检测如果这一个文件不为空,就调用短信机接口把文件里的内容发送出去,这种短信的报警方式持续了好多年,现在转眼到了移动端时代,随着微信的横空出世,这种短信的方式现在也在慢慢的发生转变了,为什么这样说呢,

最简单的一条,因为这玩意有成本,用不是白用的,每个月就要交短信费的,假如你说这短信费用能有很多吗,1条不就是1毛吗,不过你想想要是机器规模发展到了上万台的公司,每一台服务器按照按从底层硬件监控、系统层监控、应用层这三个维度去部署监控脚本,这里每一项都又分为N个细小项,可想而知的是每天发的短信数该有多恐怖,当然,这惊人的数据里还有一部分是无效报警,可是同样得付钱呀,每月领导批钱时都会被报警短信数量所震惊,然后感叹一下就回复了OK,因此在没有更好的方法以前,这种方式有成本可是为了业务稳定也必需要投入,不过现在微信来了,直接宣布利用我这个平台发消息免费,因为终端还是手机,及时性又没有降低,成本又没有,没有不用的道理,因此本文咱们就来看看怎么样调微信接口来实现日常运维消息的报警。

首先,需要去注册一个微信企业号,地址是:https://qy.weixin.qq.com/cgi-bin/loginpage

注册过程中假如是为企业使用要选择企业,然后上传企业的资质证明,假如是个人注册,选择团队,并输入自己的身份证号就可以完成注册了,其它关键步骤在注册过程中已提示的十分的清楚,例如企业号的名字不能修改等。

注册完进入第二步,在应用中心新建一个应用,比如:运维报警,然后在设置–功能设置–权限管理中点击左边的运维报警应用,在右边会出现CorpID和Secret,这个要记好,脚本中会用到,然后“应用权限“”选择运维报警这个应用,“”通讯录权限“”选择可读,到这里企业号的在平台上的设置完毕,接下来进入代码步骤。

平台上都设置好了,怎么才可以发信息呢,这就需要使用到python去调用发消息的接口了,要给微信企业号发消息,首先要获得一个token,这个是平台提供给的,获得了这个token以后才可以发消息,因此我们的脚本分2部分,第一要获取token,第二是发消息,代码如下:

#! /usr/bin/env python
 
import requests
import json
 
def get_token():
 
  url='https://qyapi.weixin.qq.com/cgi-bin/gettoken'
  values = {'corpid' : 'your corpid' ,
      'corpsecret':'your corpsecret',
       }
  req = requests.post(url, params=values) 
  data = json.loads(req.text)
  return data["access_token"]
 
def send_msg():
  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": "%s"
      },
      "safe":"0"
      }""" %(str("10.1.1.8 is down"))
 
  data = json.loads(values)
  req = requests.post(url, values) 
 
if __name__ == '__main__':
  send_msg()

脚本用到了第三方模块requests,  这一个模块要比python标准模块urllib,urllib2更加的简洁,能够直接用get(), post(),put(), delete(), head() ,options(),方法对url操作,json模块就是来解析返回的json串,转成python可操作的数据类型,关于怎么调用微信发消息就写到这里了,大家可以参考下。

相关下载
栏目导航
本类热门阅览