设为首页 收藏本站
查看: 1342|回复: 0

[经验分享] 利用微信公众号实现zabbix告警

[复制链接]

尚未签到

发表于 2019-1-25 09:23:56 | 显示全部楼层 |阅读模式
  之前觉得没必要写这个,这两天有同学问到zabbix关于微信告警的相关问题,于是昨天就注册了一个微信公众号,当做学习交流一下;
  首先;我们要明白我们创建微信公众号发送消息到底需要哪些参数,这样我们再创建时候注意生成就可以了,需要的有如下几个参数:
  1、通讯用户:touser
  2、用于生成token的:corpid,secret
  3、用于ID
  

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

  

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


  


  


  

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

  

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


  


  

  


  

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


  

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

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


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


  

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


  

  上面的步骤修改通讯录权限,添加我们的用户即可:下面我们用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、添加媒介,设置成我们的脚本:
  


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

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


  


  

  3、用户添加媒介:
  


  

  #备注: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、执行效果:
  


  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、微信公众号告警
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-667274-1-1.html 上篇帖子: zabbix3.0 安装部署 使用yum方式 下篇帖子: linux监控系统_Zabbix安装步骤及配置V1.1(3)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表