一、注册企业号【体验号】

打开页面 http://qydev.weixin.qq.com/try?t=experience   (2016年注册的时候的连接)现在可能变了。进行注册操作,默认有90天的期限。

填写相关资料后你会收到一封邮件,进行体验账号激活,如下图:

注意,这里激活需要绑定在你的微信号上进行激活,激活后会有如下显示:

扫描完成后,进入登陆界面,这里的登陆信息就是你刚刚注册用的邮箱和密码,登入:

二、配置企业号

进入企业号后,需要进行相关配置:

A、导入用户

选择通讯录,进入我的企业,添加子部门,我这里添加运维平台部。

添加部门后,进行成员添加,也就是后续会受到微信的成员了。

新增成员信息填写:

这里关机是身份验证信息部分,一定要准确。

B、邀请关注

填写成员后,需要进行要求关注,微信受到邀请链接后,即进行关注。

D、设定管理员

指定应用的管理员。点击设置-> 权限管理 -> 管理 -> 新建管理组 --> 添加管理员和权限。

三、API测试

有了前面的corpID和Sectet后,可以根据官方文档进行API测试。

A.文档阅读链接

http://qydev.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5

我只读了建立连接、管理通讯录、发送消息。

B、建立连接获取access_token。

这个token是一个有有效时间的密钥用于后续操作认证。

Https请求方式: GET

https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=id&corpsecret=secrect

正常情况下就会反馈一个json并得到access_token

C、API测试

可以进行很多测试,不过这里需要用到上面提到的corpID和Secret。

我这里只要发送报警短信,而且是文本格式的,所以就只需要进行发送消息测试就OK了。

然后就坐等微信受到消息吧。

四、编写脚本结合API进行告警测试

编写报警脚本,和之前通过短信网关类似,
#!/usr/local/bin/python
#fileencoding:utf-8
import sys
import urllib2
import time
import json
import requests reload(sys)
sys.setdefaultencoding('utf-8') title = sys.argv[2] # 位置参数获取title 适用于zabbix
content = sys.argv[3] # 位置参数获取content 适用于zabbix class Token(object):
# 获取token
def __init__(self, corpid, corpsecret):
self.baseurl = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}'.format(
corpid, corpsecret)
self.expire_time = sys.maxint def get_token(self):
if self.expire_time > time.time():
request = urllib2.Request(self.baseurl)
response = urllib2.urlopen(request)
ret = response.read().strip()
ret = json.loads(ret)
if 'errcode' in ret.keys():
print >> ret['errmsg'], sys.stderr
sys.exit(1)
self.expire_time = time.time() + ret['expires_in']
self.access_token = ret['access_token']
return self.access_token def send_msg(title, content):
# 发送消息
corpid = "88888888888888" # 填写自己应用的
corpsecret = "88888888888888888888888" # 填写自己应用的
qs_token = Token(corpid=corpid, corpsecret=corpsecret).get_token()
url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={0}".format(
qs_token)
payload = {
"touser": "@all",
"msgtype": "text",
"agentid": "",
"text": {
"content": "{0}\n {1}".format(title, content) },
"safe": ""
}
ret = requests.post(url, data=json.dumps(payload, ensure_ascii=False))
print ret.json() if __name__ == '__main__':
# print title, content
  send_msg(title, content)

脚本命名为wexin_sendms.py,存放位置为zabbix报警目录,我这里为

/usr/lib/zabbix/alertscripts,具体设置在zabbix_server里进行设置。然后在zabbix的web界面进行配置。

测试微信报警接收,我这里停掉了线上一台puppetmaster的agnet服务,会报出一个5分钟不可达报警。

至此,微信告警测试完毕。

五、参考文献和文件索引

a、微信告警脚本位于github:

https://github.com/loveqx/zabbix-doc/blob/master/zabbix-scripts/zabbix-install/weixin_sendms.py

b、参考文章

Zabbix实战-简易教程--通过公众平台企业号发送短信的更多相关文章

  1. Zabbix实战-简易教程系列

    一.基础篇(安装和接入) Zabbix实战-简易教程--总流程  Zabbix实战-简易教程--整体架构图 Zabbix实战-简易教程--DB安装和表分区 Zabbix实战-简易教程--Server端 ...

  2. Zabbix实战-简易教程(6)--Server端高可用

    3.4 server前端高可用    至此,单台Zabbix server环境已经搭建完成,为了达到高可用效果,我们需要通过2台服务器之间通过HA软件进行探测,一旦检测到主的server挂掉后,从的s ...

  3. JAVA 调用第三方短信平台接口发送短信

    做了几个调用三方短信平台发送短信的例子,大部分需要 携带参数,向指定URL发送请求 回顾对接第一个平台时痛苦的乱码经历,这里放一份代码,算是个模版,再用到的时候过来copy一下就OK. 在进入主题之前 ...

  4. Zabbix实战-简易教程--订阅类

    一.需求提出 最近数据中心有一个新的需求,有一批后台任务需要在每天固定时间点运行(凌晨8:00),现在希望能够把这个任务执行的结果定时上报给他. 说明:执行的任务为一个sql查询,查询出来的是每个任务 ...

  5. Zabbix实战-简易教程--动作(Actions)--自动发现

    一.概述 Zabbix提供了有效和非常灵活的网络自动发现功能. 设置网络发现后你可以: 加快Zabbix部署(自动添加主机.添加模板) 简化管理(自动删除主机.删除模板.禁用主机) 无需过多管理就能在 ...

  6. Zabbix实战-简易教程--低层次发现(LLD)

    一.概述 自动发现(LLD)提供了一种在为不同实体自动创建监控项,触发器和图形的方法.例如,Zabbix可以在你的机器上自动监控磁盘或网卡,而无需为每个磁盘或网卡手动创建监控项.(LLD) 此外,可以 ...

  7. Zabbix实战-简易教程--聚合(Aggreate)

    使用场景 当你需要将一组主机的某个指标进行统计时,zabbix聚合就派上用场了.例如:你要将Mysql组的所有/data分区的已用空间进行统计,你就可以使用zabbix聚合的grpsum函数进行统计. ...

  8. Zabbix实战-简易教程(1)--总流程

    序 玩zabbix已经几年了,一直想分享一些相关的使用经验和心得,但是总以各种借口而拖延,最近准备重新整理,记录一些实际工作环境中的示例,一方面希望能够帮助正在学习或者正在寻找这方面资料的朋友,另一方 ...

  9. Zabbix实战-简易教程(3)--DB安装和表分区

    一.DB安装环境 主机角色 主机IP VIP 操作系统版本 软件版本 DB Master A 192.168.1.97 (主从) CentOS 6.5 64bit mysql-5.6.21 DB Sl ...

随机推荐

  1. MongoDB 数据库备份与恢复

    1.MongoDB数据库备份     1.语法:         mongodump -h dbhost -d dbname -o dbdirectory         参数说明:         ...

  2. 「mysql优化专题」优化之路高级进阶——表的设计及优化(6)

    正文:表的设计及优化(真技术文) 优化①:创建规范化表,消除数据冗余 数据库范式是确保数据库结构合理,满足各种查询需要.避免数据库操作异常的数据库设计方式.满足范式要求的表,称为规范化表,范式产生于2 ...

  3. mysql优化专题」90%程序员都会忽略的增删改优化(2)

    补充知识点:操作数据语句优化的认识 通常情况下,当访问某张表的时候,读取者首先必须获取该表的锁,如果有写入操作到达,那么写入者一直等待读取者完成操作(查询开始之后就不能中断,因此允许读取者完成操作). ...

  4. OpenCASCADE构造一般曲面

    OpenCASCADE构造一般曲面 eryar@163.com Abstract. 本文主要介绍常见的曲面如一般柱面(拉伸曲面).旋转面在OpenCASCADE中的构造方法,由此思考一般放样算法的实现 ...

  5. docker容器自动退出的问题

    如果用了一段时间的docker就会发现,我们的容器经常用了一段时间就自动退出了,docker ps已经找不到了,在docker ps -a里面了,然后我们docker start containerI ...

  6. 图片验证码(Struts2中使用)

    写在前面: 最近在项目中做了一个登录页面,用到了图片验证码的功能,所以记录一下.方便之后再有用到,直接拿来用即可.其实图片验证码的生成都是有固定步骤的,网上也有很多的例子,有的时候,如果不想深究,都是 ...

  7. ASP.NET MVC下自定义错误页和展示错误页的几种方式

    在网站运行中,错误是不可避免的,错误页的产生也是不可缺少的. 这几天看了博友的很多文章,自己想总结下我从中学到的和实际中配置的. 首先,需要知道产生错误页的来源,一种是我们的.NET平台抛出的,一种是 ...

  8. 关于js代码执行顺序

    上网查了一下关于这个方面的资料,大部分都是关于两个script标签中的js代码和变量以及函数提升方面的知识. 1.两个script标签 <script> alert("我是代码块 ...

  9. linux 写U盘出现的问题

    在写U盘的时候,报了这样的错,记录如下: umount /dev/sdb // 提示未挂载 mkfs.vfat /dev/sdb // device or resource busy umount / ...

  10. vue基础入门

    Hello World   <body> <!-- 在angularJS中用ng-model --> <!-- {{mseeage?message:11}}支持三元表达式 ...