自动化运维、大数据、Docker

利用微信公众号实现zabbix告警

    之前觉得没必要写这个,这两天有同学问到zabbix关于微信告警的相关问题,于是昨天就注册了一个微信公众号,当做学习交流一下;

    首先;我们要明白我们创建微信公众号发送消息到底需要哪些参数,这样我们再创建时候注意生成就可以了,需要的有如下几个参数:

    1、通讯用户:touser

    2、用于生成token的:corpid,secret

    3、用于ID

开始操作:企业号注册连接:https://qy.weixin.qq.com/cgi-bin/loginpage

1、点击注册,然后选择团队主从即可:

wKioL1etaPKAc7RrAADBARlsruc254.png-wh_50

wKiom1etaR6hLjR8AABOF53CVw4196.png-wh_50

wKioL1etaXHSV_oYAAEIMD_nIC4344.png-wh_50

2、创建企业号名称之后,默认需要创建一个通信账号,要是没有可以点击通讯录创建(touser):

wKiom1etaj7xDh5NAABQCutgxVQ128.png-wh_50

3、点击应用中心,新建应用,消息应用(获取应用ID):

wKiom1etasbybLNRAABJbGVTTLg465.png-wh_50

wKioL1etawfT1KzWAABaF8sytwQ711.png-wh_50

wKiom1etaxehED-UAABaxYHLozA910.png-wh_50

可以看到已经生成应用ID:

wKioL1eta2GCmYGvAABJa_Kam_A180.png-wh_50

4、开始添加应用权限,生成corpid,secret

点击设置–》权限管理–》进来分组管理的名称和用户用xiaoluo即可:

wKiom1eta_uD5H9rAAA1efPqGcE147.png-wh_50

创建之后可以查看看到corpid和secret了:

wKiom1etbEWAP8_YAABO5ZZsi24566.png-wh_50

然后把应用权限和通讯录权限都添加进去即可,不然可能会报权限错误:

wKioL1etbI7BP1gQAABuaV0tHOg063.png-wh_50

上面的步骤修改通讯录权限,添加我们的用户即可:下面我们用curl来测试一下是否可以

1、通过corpid和secret获取token,发送get请求:

[root@monitor weixin]# curl "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wx026430a7e676a190&corpsecret=tbb9lAJRS-tY96qzH0q8hcecCx563GceEKXTWmrvUQYXb52v90AeVBNxBP1O2dq1"
{"access_token":"-z6APpKnSGFgPHNjPgX24Nu9ph7uexsFQOjj2-I8YWZ0F-9_CJ5CgF2WnkX901Lu","expires_in":7200}

2、通过tokenid 发送数据:

[root@monitor weixin]# cat port_data.py 
#!/usr/bin/env python
import requests
url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=WkLoCGsyUk7ItDtwG2P5KqX6EPvhIXlzgc4BbUAROAfjAJBD1ZRebeuIOG-_ylUF"
data = { 
   "touser": "xiaoluo", 
   "msgtype": "text", 
   "agentid": 1, 
   "text": { 
       "content": "hello ,xiaoluoge" 
   }, 
   "safe":"0" 
}
r = requests.post(url,json=data)
print r.status_code
print r.content

执行结果:

[root@monitor weixin]# python port_data.py 
200
{"errcode":0,"errmsg":"ok"}

    到此没问题的话,那么说明微信公众号的收发数据功能已经做好了,接下来就是设置zabbix的步骤了

1、添加媒介,设置成我们的脚本:

wKiom1etlB_C7wpYAAA1YFGfQhA915.png-wh_50

备注:{ALERT.SENDATO}和{ALERT.MESSAGE}是两个内置宏。

2、创建动作和执行操作:

wKiom1etlJ6DftEEAAA19DaQiwQ031.png-wh_50

wKioL1etlL7QfG9SAABsz8MqcNc399.png-wh_50

3、用户添加媒介:

wKioL1etlN-yxBHBAAAqO-vDgPc287.png-wh_50

#备注:xiaoluo是传参的第一个参数,就是我们创建的用户。

4、脚本:

[root@monitor alertscripts]# cat post_data.py 
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import json
import sys
class weChat:
    def __init__(self,Corpid,Secret): 
        url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s' % (Corpid,Secret)
        res = self.url_req(url)
        self.token = res["access_token"]
    def url_req(self,url):
        req = requests.get(url)
        res = json.loads(req.text)
        return res

    def send_message(self,user,content): 
        url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % self.token
        data = { 
                "touser": user, 
                "msgtype": "text", 
                "agentid": 1, 
                "text": { 
                        "content": content
                        }, 
                "safe":"0" 
                }

        res = requests.post(url,json=data)
        if json.loads(res.content)['errmsg'] == 'ok':
            return "send message sucessed"
        else:
            return res


if __name__ == '__main__': 
    user = sys.argv[1]
    content = sys.argv[2]
    get_token = weChat(id,Secret)
    print get_token.send_message(user,content)

5、执行效果:

wKiom1etlgfzaJgkAAGBsYaAiEQ813.png-wh_50

zabbix视频请移步:http://www.roncoo.com/details/fb3050a5b34b42f39ccad83ebebc89c1

zabbix自动化课程目录(需求更新中):

1、zabbix生产环境如何使用

2、saltstack批量部署zabbix_agent

3、zabbix API简单使用讲解

4、web UI讲解

5、开始监控之添加一个简单的linux监控

6、zabbix 强大的内置key讲解

7、内置key的使用、 端口、用户数、磁盘读取状态出图

8、trigger表达式学习,实现用户登录数,端口检查告警

9、zabbix邮件告警设置与维护周期

10、zabbix自定义Key添加,tcp状态模板编写

11、自定义监控之、监控nginx解析与实现

12、自定义监控之php-fpm监控

13、自定义监控之mysql状态监控

14、自定义监控之缓存服务器memcached,redis监控

15、自动化之saltstack管理zabbix,批量推送key生效

16、zabbix自动发现绑定删除模板,自动注册

17、zabbix lld发现讲解以及端口发现监控告警出图

18、zabbix lld 发现web站点以及批量获取状态码

19、zabbix lld复习和监控磁盘的运行状况

20、zabbix生成环境规范和按月生成报表资源统计

21、微信公众号告警

本文转载自 利用微信公众号实现zabbix告警

赞(0) 打赏
蜷缩的蜗牛 , 版权所有丨如未注明 , 均为原创丨 转载请注明蜷缩的蜗牛 » 利用微信公众号实现zabbix告警
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏