Zabbix实战-简易教程--通过公众平台企业号发送短信
一、注册企业号【体验号】
打开页面 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实战-简易教程--通过公众平台企业号发送短信的更多相关文章
- Zabbix实战-简易教程系列
一.基础篇(安装和接入) Zabbix实战-简易教程--总流程 Zabbix实战-简易教程--整体架构图 Zabbix实战-简易教程--DB安装和表分区 Zabbix实战-简易教程--Server端 ...
- Zabbix实战-简易教程(6)--Server端高可用
3.4 server前端高可用 至此,单台Zabbix server环境已经搭建完成,为了达到高可用效果,我们需要通过2台服务器之间通过HA软件进行探测,一旦检测到主的server挂掉后,从的s ...
- JAVA 调用第三方短信平台接口发送短信
做了几个调用三方短信平台发送短信的例子,大部分需要 携带参数,向指定URL发送请求 回顾对接第一个平台时痛苦的乱码经历,这里放一份代码,算是个模版,再用到的时候过来copy一下就OK. 在进入主题之前 ...
- Zabbix实战-简易教程--订阅类
一.需求提出 最近数据中心有一个新的需求,有一批后台任务需要在每天固定时间点运行(凌晨8:00),现在希望能够把这个任务执行的结果定时上报给他. 说明:执行的任务为一个sql查询,查询出来的是每个任务 ...
- Zabbix实战-简易教程--动作(Actions)--自动发现
一.概述 Zabbix提供了有效和非常灵活的网络自动发现功能. 设置网络发现后你可以: 加快Zabbix部署(自动添加主机.添加模板) 简化管理(自动删除主机.删除模板.禁用主机) 无需过多管理就能在 ...
- Zabbix实战-简易教程--低层次发现(LLD)
一.概述 自动发现(LLD)提供了一种在为不同实体自动创建监控项,触发器和图形的方法.例如,Zabbix可以在你的机器上自动监控磁盘或网卡,而无需为每个磁盘或网卡手动创建监控项.(LLD) 此外,可以 ...
- Zabbix实战-简易教程--聚合(Aggreate)
使用场景 当你需要将一组主机的某个指标进行统计时,zabbix聚合就派上用场了.例如:你要将Mysql组的所有/data分区的已用空间进行统计,你就可以使用zabbix聚合的grpsum函数进行统计. ...
- Zabbix实战-简易教程(1)--总流程
序 玩zabbix已经几年了,一直想分享一些相关的使用经验和心得,但是总以各种借口而拖延,最近准备重新整理,记录一些实际工作环境中的示例,一方面希望能够帮助正在学习或者正在寻找这方面资料的朋友,另一方 ...
- Zabbix实战-简易教程(3)--DB安装和表分区
一.DB安装环境 主机角色 主机IP VIP 操作系统版本 软件版本 DB Master A 192.168.1.97 (主从) CentOS 6.5 64bit mysql-5.6.21 DB Sl ...
随机推荐
- [转]ubuntu下安装fiddler
转 ubuntu下安装fiddler biangbiang 因为工作中需要用到fiddler工具 现在工作环境迁移到ubuntu14 下 发现fiddler只支持windows网上也有很多推荐 ...
- CentOS中安装配置Nginx
一.安装Nginx '首先我们需要在nginx官网中下载nginx安装包,在这就下载最新版 nginx-1.13.7版本 下载完成以后我们进入下载页面进行查看 下载文件目录为 home/userNam ...
- jar包后台启动--nohup篇
直接java -jar TestHttps-0.0.1-SNAPSHOT.jar的话是前段启动,但是窗口关闭之类的程序也就关闭了 我们可以nohup java -jar TestHttps-0.0.1 ...
- 3D位置语音,引领吃鸡游戏体验升级
欢迎大家前往云加社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯游戏云 导语:在刚刚结束的首届腾讯用户开放日上,腾讯音视频实验室带着3D位置音效解决方案,向所有用户亮相,为用户提供360度立体空间的 ...
- 设计模式——外观模式(Facade)
1. 概述 外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性. 例子1:一个电源总开关可以控制四盏灯 ...
- bzoj 4537 HNOI2016 最小公倍数
Description 给定一张N个顶点M条边的无向图(顶点编号为1,2,-,n),每条边上带有权值.所有权值都可以分解成2^a*3^b的形式.现在有q个询问,每次询问给定四个参数u.v.a和b,请你 ...
- 4.sass的分支结构、循环结构、函数
分支结构 在sass里,可以使用@if让我们根据一些条件来应用特定的样式 结构: @if 条件 { } 如果条件为真的话,括号里的代码就会释放出来 例如: $use-refixes:true; .ro ...
- Using F2 to Rename Open Files
Copy to your User keymap { "keys": ["shift+f2"], "command": "rena ...
- css scroll bug
滚动区域不能设置overflow var doc = $(document), win = $(window), h = $("#head"), b = $("#body ...
- C# DataGridView 的UserDeletingRow事件,删除
DialogResult dr = MessageBox.Show("确认删除记录吗?", "提示", MessageBoxButtons.YesNo); ...