• 欢迎访问蜷缩的蜗牛博客 蜷缩的蜗牛
  • 微信搜索: 蜷缩的蜗牛 | 联系站长 kbsonlong@qq.com
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

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

Zabbix 蜷缩的蜗牛 7个月前 (02-27) 56次浏览 已收录

    之前觉得没必要写这个,这两天有同学问到 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 告警


蜷缩的蜗牛 , 版权所有丨如未注明 , 均为原创丨 转载请注明利用微信公众号实现 zabbix 告警
喜欢 (0)
[]
分享 (0)